Python Code Executor
Execute Python code in a safe, sandboxed environment with 100+ pre-installed libraries.
Quick Start
Requires inference.sh CLI (belt). Install instructions
belt login
# Run Python code
belt app run infsh/python-executor --input '{
"code": "import pandas as pd\nprint(pd.__version__)"
}'
App Details
| Property |
Value |
| App ID |
infsh/python-executor |
| Environment |
Python 3.10, CPU-only |
| RAM |
8GB (default) / 16GB (high_memory) |
| Timeout |
1-300 seconds (default: 30) |
Input Schema
{
"code": "print('Hello World!')",
"timeout": 30,
"capture_output": true,
"working_dir": null
}
Pre-installed Libraries
Web Scraping & HTTP
requests, httpx, aiohttp - HTTP clients
beautifulsoup4, lxml - HTML/XML parsing
selenium, playwright - Browser automation
scrapy - Web scraping framework
Data Processing
numpy, pandas, scipy - Numerical computing
matplotlib, seaborn, plotly - Visualization
Image Processing
pillow, opencv-python-headless - Image manipulation
scikit-image, imageio - Image algorithms
Video & Audio
moviepy - Video editing
av (PyAV), ffmpeg-python - Video processing
pydub - Audio manipulation
3D Processing
trimesh, open3d - 3D mesh processing
numpy-stl, meshio, pyvista - 3D file formats
Documents & Graphics
svgwrite, cairosvg - SVG creation
reportlab, pypdf2 - PDF generation
Examples
Web Scraping
belt app run infsh/python-executor --input '{
"code": "import requests\nfrom bs4 import BeautifulSoup\n\nresponse = requests.get(\"https://example.com\")\nsoup = BeautifulSoup(response.content, \"html.parser\")\nprint(soup.find(\"title\").text)"
}'
Data Analysis with Visualization
belt app run infsh/python-executor --input '{
"code": "import pandas as pd\nimport matplotlib.pyplot as plt\n\ndata = {\"name\": [\"Alice\", \"Bob\"], \"sales\": [100, 150]}\ndf = pd.DataFrame(data)\n\nplt.bar(df[\"name\"], df[\"sales\"])\nplt.savefig(\"outputs/chart.png\")\nprint(\"Chart saved!\")"
}'
Image Processing
belt app run infsh/python-executor --input '{
"code": "from PIL import Image\nimport numpy as np\n\n# Create gradient image\narr = np.linspace(0, 255, 256*256, dtype=np.uint8).reshape(256, 256)\nimg = Image.fromarray(arr, mode=\"L\")\nimg.save(\"outputs/gradient.png\")\nprint(\"Image created!\")"
}'
Video Creation
belt app run infsh/python-executor --input '{
"code": "from moviepy.editor import ColorClip, TextClip, CompositeVideoClip\n\nclip = ColorClip(size=(640, 480), color=(0, 100, 200), duration=3)\ntxt = TextClip(\"Hello!\", fontsize=70, color=\"white\").set_position(\"center\").set_duration(3)\nvideo = CompositeVideoClip([clip, txt])\nvideo.write_videofile(\"outputs/hello.mp4\", fps=24)\nprint(\"Video created!\")",
"timeout": 120
}'
3D Model Processing
belt app run infsh/python-executor --input '{
"code": "import trimesh\n\nsphere = trimesh.creation.icosphere(subdivisions=3, radius=1.0)\nsphere.export(\"outputs/sphere.stl\")\nprint(f\"Created sphere with {len(sphere.vertices)} vertices\")"
}'
API Calls
belt app run infsh/python-executor --input '{
"code": "import requests\nimport json\n\nresponse = requests.get(\"https://api.github.com/users/octocat\")\ndata = response.json()\nprint(json.dumps(data, indent=2))"
}'
File Output
Files saved to outputs/ are automatically returned:
# These files will be in the response
plt.savefig('outputs/chart.png')
df.to_csv('outputs/data.csv')
video.write_videofile('outputs/video.mp4')
mesh.export('outputs/model.stl')
Variants
# Default (8GB RAM)
belt app run infsh/python-executor --input input.json
# High memory (16GB RAM) for large datasets
belt app run infsh/python-executor@high_memory --input input.json
Use Cases
- Web scraping - Extract data from websites
- Data analysis - Process and visualize datasets
- Image manipulation - Resize, crop, composite images
- Video creation - Generate videos with text overlays
- 3D processing - Load, transform, export 3D models
- API integration - Call external APIs
- PDF generation - Create reports and documents
- Automation - Run any Python script
Important Notes
- CPU-only - No GPU/ML libraries (use dedicated AI apps for that)
- Safe execution - Runs in isolated subprocess
- Non-interactive - Use
plt.savefig() not plt.show()
- File detection - Output files are auto-detected and returned
Related Skills
# AI image generation (for ML-based images)
npx skills add inference-sh/skills@ai-image-generation
# AI video generation (for ML-based videos)
npx skills add inference-sh/skills@ai-video-generation
# LLM models (for text generation)
npx skills add inference-sh/skills@llm-models
Documentation
1---
2name: python-executor
3description: "Execute Python code in a safe sandboxed environment via [inference.sh](https://inference.sh). Pre-installed: NumPy, Pandas, Matplotlib, requests, BeautifulSoup, Selenium, Playwright, MoviePy, Pillow, OpenCV, trimesh, and 100+ more libraries. Use for: data processing, web scraping, image manipulation, video creation, 3D model processing, PDF generation, API calls, automation scripts. Triggers: python, execute code, run script, web scraping, data analysis, image processing, video editing, 3D models, automation, pandas, matplotlib"
4allowed-tools: Bash(belt *)
5---
6
7# Python Code Executor
8
9Execute Python code in a safe, sandboxed environment with 100+ pre-installed libraries.
10
11
12
13## Quick Start
14
15> Requires inference.sh CLI (`belt`). [Install instructions](https://raw.githubusercontent.com/inference-sh/skills/refs/heads/main/cli-install.md)
16
17```bash
18belt login
19
20# Run Python code
21belt app run infsh/python-executor --input '{
22 "code": "import pandas as pd\nprint(pd.__version__)"
23}'
24```
25
26
27## App Details
28
29| Property | Value |
30|----------|-------|
31| App ID | `infsh/python-executor` |
32| Environment | Python 3.10, CPU-only |
33| RAM | 8GB (default) / 16GB (high_memory) |
34| Timeout | 1-300 seconds (default: 30) |
35
36## Input Schema
37
38```json
39{
40 "code": "print('Hello World!')",
41 "timeout": 30,
42 "capture_output": true,
43 "working_dir": null
44}
45```
46
47## Pre-installed Libraries
48
49### Web Scraping & HTTP
50- `requests`, `httpx`, `aiohttp` - HTTP clients
51- `beautifulsoup4`, `lxml` - HTML/XML parsing
52- `selenium`, `playwright` - Browser automation
53- `scrapy` - Web scraping framework
54
55### Data Processing
56- `numpy`, `pandas`, `scipy` - Numerical computing
57- `matplotlib`, `seaborn`, `plotly` - Visualization
58
59### Image Processing
60- `pillow`, `opencv-python-headless` - Image manipulation
61- `scikit-image`, `imageio` - Image algorithms
62
63### Video & Audio
64- `moviepy` - Video editing
65- `av` (PyAV), `ffmpeg-python` - Video processing
66- `pydub` - Audio manipulation
67
68### 3D Processing
69- `trimesh`, `open3d` - 3D mesh processing
70- `numpy-stl`, `meshio`, `pyvista` - 3D file formats
71
72### Documents & Graphics
73- `svgwrite`, `cairosvg` - SVG creation
74- `reportlab`, `pypdf2` - PDF generation
75
76## Examples
77
78### Web Scraping
79
80```bash
81belt app run infsh/python-executor --input '{
82 "code": "import requests\nfrom bs4 import BeautifulSoup\n\nresponse = requests.get(\"https://example.com\")\nsoup = BeautifulSoup(response.content, \"html.parser\")\nprint(soup.find(\"title\").text)"
83}'
84```
85
86### Data Analysis with Visualization
87
88```bash
89belt app run infsh/python-executor --input '{
90 "code": "import pandas as pd\nimport matplotlib.pyplot as plt\n\ndata = {\"name\": [\"Alice\", \"Bob\"], \"sales\": [100, 150]}\ndf = pd.DataFrame(data)\n\nplt.bar(df[\"name\"], df[\"sales\"])\nplt.savefig(\"outputs/chart.png\")\nprint(\"Chart saved!\")"
91}'
92```
93
94### Image Processing
95
96```bash
97belt app run infsh/python-executor --input '{
98 "code": "from PIL import Image\nimport numpy as np\n\n# Create gradient image\narr = np.linspace(0, 255, 256*256, dtype=np.uint8).reshape(256, 256)\nimg = Image.fromarray(arr, mode=\"L\")\nimg.save(\"outputs/gradient.png\")\nprint(\"Image created!\")"
99}'
100```
101
102### Video Creation
103
104```bash
105belt app run infsh/python-executor --input '{
106 "code": "from moviepy.editor import ColorClip, TextClip, CompositeVideoClip\n\nclip = ColorClip(size=(640, 480), color=(0, 100, 200), duration=3)\ntxt = TextClip(\"Hello!\", fontsize=70, color=\"white\").set_position(\"center\").set_duration(3)\nvideo = CompositeVideoClip([clip, txt])\nvideo.write_videofile(\"outputs/hello.mp4\", fps=24)\nprint(\"Video created!\")",
107 "timeout": 120
108}'
109```
110
111### 3D Model Processing
112
113```bash
114belt app run infsh/python-executor --input '{
115 "code": "import trimesh\n\nsphere = trimesh.creation.icosphere(subdivisions=3, radius=1.0)\nsphere.export(\"outputs/sphere.stl\")\nprint(f\"Created sphere with {len(sphere.vertices)} vertices\")"
116}'
117```
118
119### API Calls
120
121```bash
122belt app run infsh/python-executor --input '{
123 "code": "import requests\nimport json\n\nresponse = requests.get(\"https://api.github.com/users/octocat\")\ndata = response.json()\nprint(json.dumps(data, indent=2))"
124}'
125```
126
127## File Output
128
129Files saved to `outputs/` are automatically returned:
130
131```python
132# These files will be in the response
133plt.savefig('outputs/chart.png')
134df.to_csv('outputs/data.csv')
135video.write_videofile('outputs/video.mp4')
136mesh.export('outputs/model.stl')
137```
138
139## Variants
140
141```bash
142# Default (8GB RAM)
143belt app run infsh/python-executor --input input.json
144
145# High memory (16GB RAM) for large datasets
146belt app run infsh/python-executor@high_memory --input input.json
147```
148
149## Use Cases
150
151- **Web scraping** - Extract data from websites
152- **Data analysis** - Process and visualize datasets
153- **Image manipulation** - Resize, crop, composite images
154- **Video creation** - Generate videos with text overlays
155- **3D processing** - Load, transform, export 3D models
156- **API integration** - Call external APIs
157- **PDF generation** - Create reports and documents
158- **Automation** - Run any Python script
159
160## Important Notes
161
162- **CPU-only** - No GPU/ML libraries (use dedicated AI apps for that)
163- **Safe execution** - Runs in isolated subprocess
164- **Non-interactive** - Use `plt.savefig()` not `plt.show()`
165- **File detection** - Output files are auto-detected and returned
166
167## Related Skills
168
169```bash
170# AI image generation (for ML-based images)
171npx skills add inference-sh/skills@ai-image-generation
172
173# AI video generation (for ML-based videos)
174npx skills add inference-sh/skills@ai-video-generation
175
176# LLM models (for text generation)
177npx skills add inference-sh/skills@llm-models
178```
179
180## Documentation
181
182- [Running Apps](https://inference.sh/docs/apps/running) - How to run apps via CLI
183- [App Code](https://inference.sh/docs/extend/app-code) - Understanding app execution
184- [Sandboxed Code Execution](https://inference.sh/blog/tools/sandboxed-execution) - Safe code execution for agents
185