code-runner
Execute Python code snippets with best-effort resource limits. Supports data analysis, visualization, and quick scripts.
来源信息
- 仓库
- fuyuxiang/echo-agent
- 最近来源活动
- 2026年10月1日 03:25
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 1,059
- 分支
- 27
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
文件资源管理器
2 个文件正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- code-runner
- description
- Execute Python code snippets with best-effort resource limits. Supports data analysis, visualization, and quick scripts.
- version
- 1.0.0
- metadata
- {"echo":{"tags":["Python","Code","Execute","Sandbox","DataAnalysis"]}}
# Code Runner
Python code execution with resource limits and import restrictions; this is not an isolation boundary.
## Usage
```bash
python3 scripts/safe_exec.py "print(sum(range(100)))"
python3 scripts/safe_exec.py --file script.py
python3 scripts/safe_exec.py --timeout 10 "import time; time.sleep(5); print('done')"
```
## Security
Best-effort guards (NOT a true sandbox — code can still read the filesystem):
- **Timeout**: default 30 seconds, configurable
- **Memory limit**: 256MB on Linux (via resource.setrlimit); not enforced on macOS
- **Blocked patterns**: `os.system`, `subprocess`, `shutil.rmtree`, `__import__('os')`
- **AST check**: scans code for dangerous import patterns before execution
- **Isolated working dir**: runs in a fresh tmpdir, cleaned up after execution
- **Minimal env**: only PATH/HOME/LANG passed to subprocess
**Limitations**: This is NOT a security sandbox. The child process can read arbitrary
files on the host filesystem. For untrusted code, use a container-based executor
(e.g., docker-manage skill) instead.
## Allowed Libraries
Safe for use (common data/analysis):
- `math`, `statistics`, `decimal`, `fractions`
- `json`, `csv`, `re`, `datetime`, `collections`
- `pandas`, `numpy` (if installed)
- `matplotlib` (saves to file, no display)
## Blocked Patterns
```python
BLOCKED = [
"os.system", "os.exec", "os.popen", "os.remove",
"subprocess", "shutil.rmtree", "importlib",
"__import__", "eval(", "exec(",
"open('/etc", "open('/root",
]
```
## Example Workflows
Data analysis:
```python
import pandas as pd
df = pd.read_csv("/tmp/data.csv")
print(df.describe())
print(df.groupby("category")["amount"].sum())
```
Quick plot (saved to file):
```python
import matplotlib.pyplot as plt
plt.plot([1,2,3,4], [1,4,2,3])
plt.savefig("/tmp/plot.png")
print("Plot saved to /tmp/plot.png")
```
在 GitHub 查看