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