
code-interpreter
Test and prototype code in a sandboxed environment. Use for debugging, verifying logic, or installing packages.
- Installs
- 158
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/aws-samples/sample-strands-agent-with-agentcore --skill code-interpreter- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads code-interpreter automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Code Interpreter
A general-purpose code execution environment powered by AWS Bedrock AgentCore Code Interpreter. Run code, execute shell commands, and manage files in a secure sandbox.
Available Tools
- execute_code(code, language, output_filename): Execute Python, JavaScript, or TypeScript code.
- execute_command(command): Execute shell commands.
- file_operations(operation, paths, content): Read, write, list, or remove files in the mounted session workspace.
Tool Parameters
execute_code
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
code | string | Yes | Code to execute. Use print() for text output. | |
language | string | No | "python" | "python", "javascript", or "typescript" |
output_filename | string | No | "" | File to publish as a durable session file. Code must save a file with this exact name. |
execute_command
| Parameter | Type | Required | Description |
|---|---|---|---|
command | string | Yes | Shell command to execute (e.g., "ls -la", "pip install requests"). |
file_operations
| Parameter | Type | Required | Description |
|---|---|---|---|
operation | string | Yes | "read", "write", "list", or "remove" |
paths | list | For read/list/remove | File paths. read: ["file.txt"], list: ["."], remove: ["old.txt"] |
content | list | For write | Entries with path and text: [{"path": "out.txt", "text": "hello"}] |
tool_input Examples
execute_code — text output
{
"code": "import pandas as pd\ndf = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})\nprint(df.describe())",
"language": "python"
}
execute_code — generate chart
{
"code": "import matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt\nimport numpy as np\nx = np.linspace(0, 10, 100)\nplt.figure(figsize=(10,6))\nplt.plot(x, np.sin(x))\nplt.title('Sine Wave')\nplt.savefig('sine.png', dpi=300, bbox_inches='tight')\nprint('Done')",
"language": "python",
"output_filename": "sine.png"
}
execute_command — install a package
{
"command": "pip install yfinance"
}
execute_command — check environment
{
"command": "python --version && pip list | head -20"
}
file_operations — write a file
{
"operation": "write",
"content": [{"path": "config.json", "text": "{\"key\": \"value\"}"}]
}
file_operations — list files
{
"operation": "list",
"paths": ["."]
}
file_operations — read a file
{
"operation": "read",
"paths": ["output.csv"]
}
When to Use This Skill
Use code-interpreter as a sandbox for testing and prototyping code. For production tasks (creating documents, charts, presentations), prefer specialized skills.
Do NOT use for:
- Formatting or displaying code examples (respond directly with markdown code blocks)
- Explaining code or algorithms (respond directly with text)
- Simple calculations you can do mentally (just provide the answer)
- Any task that doesn't require actual code execution
| Task | Recommended Skill | Notes |
|---|---|---|
| Create charts/diagrams | visual-design | Use this first for production charts |
| Create Word documents | word-documents | Has template support and styling |
| Create Excel spreadsheets | excel-spreadsheets | Has formatting pipeline and validation |
| Create PowerPoint | powerpoint-presentations | Has layout system and design patterns |
| Test code snippets | code-interpreter | Debug, verify logic, check output |
| Prototype algorithms | code-interpreter | Experiment before implementing |
| Install/test packages | code-interpreter | Check compatibility, test APIs |
| Debug code logic | code-interpreter | Isolate and test specific functions |
| Verify calculations | code-interpreter | Quick math or data checks |
Code Interpreter vs Code Agent
| Code Interpreter | Code Agent | |
|---|---|---|
| Nature | Sandboxed execution environment | Autonomous agent (Claude Code) |
| Best for | Quick scripts, data analysis, prototyping | Multi-file projects, refactoring, test suites |
| File persistence | Files in /mnt/workspace persist across interpreter restarts | All files auto-synced to S3 |
| Session state | Variables persist within one interpreter session; workspace files persist for the chat session | Files + conversation persist across sessions |
| Autonomy | You write the code | Agent plans, writes, runs, and iterates |
| Use when | You need to run a specific piece of code | You need an engineer to solve a problem end-to-end |
Workspace Integration
The chat session has a persistent filesystem mounted at /mnt/workspace.
Relative file paths used by Code Interpreter tools resolve inside this directory.
Files written there are scratch files and remain available when the interpreter
session is restarted. They are not user-downloadable artifacts unless
output_filename is supplied.
The mount is required. If it cannot be configured or attached, Code Interpreter returns an error instead of starting an isolated non-persistent session.
Create persistent files directly:
{
"tool": "execute_code",
"code": "from pathlib import Path\nPath('/mnt/workspace/results.json').write_text('{\"ok\": true}')"
}
Use output_filename whenever a generated file must appear in Generated Files
or be downloadable by the user. The tool publishes and verifies that file before
returning success. Do not create Markdown links to /mnt/workspace or describe
raw workspace paths as download links; the application renders the file action.
Uploaded files:
Files uploaded by the user are available in the mounted workspace without
manual loading or base64 transfer under /mnt/workspace/inputs. JSON, JSONL,
and NDJSON attachments may be represented by a bounded text excerpt in the
conversation; use the mounted file when the full dataset is needed.
Use file_operations for scratch-file inspection. Published files are surfaced
by the application and should be referenced by their displayed filename.
Environment
- Languages: Python (recommended, 200+ libraries), JavaScript, TypeScript
- Shell: Full shell access via
execute_command - File system:
/mnt/workspacepersists across Code Interpreter restarts for the chat session - Session state: Variables persist within one interpreter session; files persist in the mounted workspace
- Network: Internet access available (can use
requests,urllib,curl)
Supported Languages
- Python (recommended) — 200+ pre-installed libraries covering data science, ML, visualization, file processing
- JavaScript — Node.js runtime, useful for JSON manipulation, async operations
- TypeScript — TypeScript runtime with type checking
Pre-installed Python Libraries
Data Analysis & Visualization
| Library | Common Use |
|---|---|
pandas | DataFrames, CSV/Excel I/O, groupby, pivot |
numpy | Arrays, linear algebra, random, statistics |
matplotlib | Line, bar, scatter, histogram, subplots |
plotly | Interactive charts, 3D plots |
bokeh | Interactive visualization |
scipy | Optimization, interpolation, signal processing |
statsmodels | Regression, time series, hypothesis tests |
sympy | Algebra, calculus, equation solving |
Machine Learning & AI
| Library | Common Use |
|---|---|
scikit-learn | Classification, regression, clustering, pipelines |
torch / torchvision / torchaudio | Deep learning, computer vision, audio |
xgboost | High-performance gradient boosting |
spacy / nltk / textblob | NLP, tokenization, NER, sentiment |
scikit-image | Image processing, filters, segmentation |
Mathematical & Optimization
| Library | Common Use |
|---|---|
cvxpy | Convex optimization, portfolio optimization |
ortools | Scheduling, routing, constraint programming |
pulp | Linear programming |
z3-solver | SAT solving, formal verification |
networkx / igraph | Graph algorithms, network analysis |
File Processing & Documents
| Library | Common Use |
|---|---|
openpyxl / xlrd / XlsxWriter | Excel read/write with formatting |
python-docx | Word document creation/modification |
python-pptx | PowerPoint creation/modification |
PyPDF2 / pdfplumber / reportlab | PDF read/write/generate |
lxml / beautifulsoup4 | XML/HTML parsing |
markitdown | Convert various formats to Markdown |
Image & Media
| Library | Common Use |
|---|---|
pillow (PIL) | Image resize, crop, filter, conversion |
opencv-python (cv2) | Computer vision, feature detection |
imageio / moviepy | Image/video I/O and editing |
pydub | Audio manipulation |
svgwrite / Wand | SVG creation, ImageMagick |
Data Storage & Formats
| Library | Common Use |
|---|---|
duckdb | SQL queries on DataFrames and files |
SQLAlchemy | SQL ORM and database abstraction |
pyarrow | Parquet and Arrow format processing |
orjson / ujson / PyYAML | Fast JSON/YAML parsing |
Web & API
| Library | Common Use |
|---|---|
requests / httpx | HTTP requests, API calls |
beautifulsoup4 | Web scraping |
fastapi / Flask / Django | Web frameworks |
Utilities
| Library | Common Use |
|---|---|
pydantic | Data validation, schema definition |
Faker | Test data generation |
rich | Pretty printing, tables |
cryptography | Encryption, hashing |
qrcode | QR code generation |
boto3 | AWS SDK |
For the full list of 200+ libraries with versions, run:
execute_command(command="pip list")
Usage Patterns
Pattern 1: Data Analysis
import pandas as pd
import numpy as np
df = pd.DataFrame({
'date': pd.date_range('2024-01-01', periods=100),
'revenue': np.random.normal(1000, 200, 100),
'costs': np.random.normal(700, 150, 100),
})
df['profit'] = df['revenue'] - df['costs']
print("=== Summary Statistics ===")
print(df.describe())
print(f"\nTotal Profit: ${df['profit'].sum():,.2f}")
print(f"Profit Margin: {df['profit'].mean() / df['revenue'].mean() * 100:.1f}%")
Pattern 2: Visualization (with output_filename)
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(2, 2, figsize=(14, 10))
categories = ['Q1', 'Q2', 'Q3', 'Q4']
values = [120, 150, 180, 210]
axes[0,0].bar(categories, values, color='#2196F3')
axes[0,0].set_title('Quarterly Revenue')
x = np.linspace(0, 10, 50)
axes[0,1].plot(x, np.sin(x), 'b-', linewidth=2)
axes[0,1].set_title('Trend')
sizes = [35, 30, 20, 15]
axes[1,0].pie(sizes, labels=['A','B','C','D'], autopct='%1.1f%%')
axes[1,0].set_title('Market Share')
x = np.random.normal(50, 10, 200)
y = x * 1.5 + np.random.normal(0, 15, 200)
axes[1,1].scatter(x, y, alpha=0.5, c='#FF5722')
axes[1,1].set_title('Correlation')
plt.tight_layout()
plt.savefig('dashboard.png', dpi=300, bbox_inches='tight')
print('Dashboard saved')
Pattern 3: Machine Learning
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
from sklearn.datasets import load_iris
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(
iris.data, iris.target, test_size=0.3, random_state=42
)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred, target_names=iris.target_names))
Pattern 4: SQL with DuckDB
import duckdb
import pandas as pd
orders = pd.DataFrame({
'order_id': range(1, 101),
'customer': [f'Customer_{i%20}' for i in range(100)],
'amount': [round(50 + i * 3.5, 2) for i in range(100)],
})
result = duckdb.sql("""
SELECT customer, COUNT(*) as cnt, ROUND(SUM(amount), 2) as total
FROM orders GROUP BY customer
HAVING COUNT(*) >= 3 ORDER BY total DESC LIMIT 10
""").df()
print(result.to_string(index=False))
Pattern 5: Fetch Data from Web
import requests
import pandas as pd
response = requests.get("https://api.example.com/data")
data = response.json()
df = pd.DataFrame(data)
print(df.head())
Pattern 6: Multi-step Workflow (session state persists)
Call 1: execute_code → load and clean data, store in variable `df`
Call 2: execute_code → analyze `df`, generate chart, save as PNG
Call 3: execute_code → export results to CSV
Call 4: file_operations(operation="read") → download the CSV
Variables (df) and files persist across calls in the same session.
Important Rules
matplotlib.use('Agg')beforeimport matplotlib.pyplot— sandbox has no display.- Use
print()for text output — stdout is how results are returned. output_filenamemust match exactly — the filename inplt.savefig()orwb.save()must match theoutput_filenameparameter.- Use
execute_commandfor shell tasks —ls,pip install,curl, etc. - Use
file_operationsfor file management — read/write/list/remove files explicitly. - Session state persists — variables and files remain across calls. Use this for multi-step workflows.
Common Mistakes to Avoid
- Forgetting
matplotlib.use('Agg')beforeimport matplotlib.pyplot as plt - Using
plt.show()instead ofplt.savefig()— there is no display - Typo in
output_filename— must match the file saved by the code exactly - Using
execute_codefor shell tasks — useexecute_commandinstead - Writing binary files via
file_operations— useexecute_codeto generate binary files, then download withoutput_filename
FAQ
What does the code-interpreter skill do?
Test and prototype code in a sandboxed environment. Use for debugging, verifying logic, or installing packages.
How do I install code-interpreter?
Run npx skills add https://github.com/aws-samples/sample-strands-agent-with-agentcore --skill code-interpreter in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/code-interpreter/ (personal) or .claude/skills/code-interpreter/ (project).
Which AI agents can use code-interpreter?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is code-interpreter safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains code-interpreter?
It is published by aws-samples in aws-samples/sample-strands-agent-with-agentcore. It has 158 recorded installs.
More from aws-samples/sample-strands-agent-with-agentcore
financial-news
aws-samples/sample-strands-agent-with-agentcore
Open the skill to read its SKILL.md instructions.
word-documents
aws-samples/sample-strands-agent-with-agentcore
Open the skill to read its SKILL.md instructions.
google-maps
aws-samples/sample-strands-agent-with-agentcore
Open the skill to read its SKILL.md instructions.
wikipedia-search
aws-samples/sample-strands-agent-with-agentcore
Open the skill to read its SKILL.md instructions.
arxiv-search
aws-samples/sample-strands-agent-with-agentcore
Open the skill to read its SKILL.md instructions.
powerpoint-presentations
aws-samples/sample-strands-agent-with-agentcore
Open the skill to read its SKILL.md instructions.
Popular devops & cloud skills
microsoft-foundry
microsoft/azure-skills
Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd ai agent, azd provision/deploy, hosted agent scaffold/develop/run/deploy/troubleshoot, prompt agent create, managed harness agent create, GitHub Copilot harness agent, create agent, update agent, add tool to agent, invoke agent, agent insights, evaluate agent, batch eval, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, Agent Optimizer scaffold, dataset curation from traces, deploy model, model fine-tuning (SFT/DPO/RFT), Foundry project, RBAC, role assignment, permissions, quota, capacity, region, deployment failure, AI Services, create Foundry resource, knowledge index, customize deployment, onboard, availability, training-data, grader, distillation, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure
azure-diagnostics
microsoft/azure-skills
Debug Azure production issues on Azure using AppLens, Azure Monitor, resource health, and safe triage. WHEN: debug production issues, troubleshoot app service, app service high CPU, app service deployment failure, troubleshoot container apps, container app 503 or target port mismatch, troubleshoot functions, function telemetry missing or stopped after a config/connection-string change, troubleshoot AKS, VM RDP, Linux SSH, VM black screen, can't connect to VM, reset VM password, NSG or firewall blocking, kubectl cannot connect, kube-system/CoreDNS failures, pod pending, crashloop, node not ready, upgrade failures, analyze logs, KQL, insights, image pull failures, cold start issues, health probe failures, resource health, root cause of errors, troubleshoot event hubs, troubleshoot service bus, messaging SDK error, AMQP connection failure, message lock lost, lock renewal during long-running processing, service bus dead letter.
azure-prepare
microsoft/azure-skills
Prepare azd-based Azure projects for deployment: generates azure.yaml, infrastructure (Bicep/Terraform), and Dockerfiles for the Azure Developer CLI (azd) workflow. USE ONLY when the user explicitly wants to use azd as the deployment tool, or the project already has an azure.yaml file. DO NOT USE FOR: non-azd deployments, Python App Service code-only deploys (use python-appservice-deploy), or cross-cloud migration (use azure-cloud-migrate). WHEN: prepare app for azd, create azure.yaml, set up azd infrastructure, modernize app for Azure with azd, deploy with azd, function app, timer trigger, service bus trigger, event-driven function, managed identity, generate Bicep, generate Terraform, create and deploy to Azure.
azure-ai
microsoft/azure-skills
Use for Azure AI: Search, Speech, OpenAI, Document Intelligence. Helps with search, vector/hybrid search, speech-to-text, text-to-speech, transcription, OCR. WHEN: AI Search, query search, vector search, hybrid search, semantic search, speech-to-text, text-to-speech, transcribe, OCR, convert text to speech.
azure-deploy
microsoft/azure-skills
Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT use this skill when the user asks to CREATE a new application — use azure-prepare instead. This skill runs azd up, azd deploy, terraform apply, and az deployment commands with built-in error recovery. Requires .azure/deployment-plan.md from azure-prepare and validated status from azure-validate. WHEN: "run azd up", "run azd deploy", "execute deployment", "push to production", "push to cloud", "go live", "ship it", "bicep deploy", "terraform apply", "publish to Azure", "launch on Azure". DO NOT USE WHEN: "create and deploy", "build and deploy", "create a new app", "set up infrastructure", "create and deploy to Azure using Terraform" — use azure-prepare for these.
azure-validate
microsoft/azure-skills
Pre-deployment validation for Azure readiness. Run deep checks on configuration, infrastructure (Bicep or Terraform), RBAC role assignments, managed identity permissions, and prerequisites before deploying. WHEN: validate my app, check deployment readiness, run preflight checks, verify configuration, check if ready to deploy, validate azure.yaml, validate Bicep, test before deploying, troubleshoot deployment errors, validate Azure Functions, validate function app, validate serverless deployment, verify RBAC roles, check role assignments, review managed identity permissions, what-if analysis, validate Container Apps deployment.