MCPInstall

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
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads code-interpreter automatically when relevant.

  3. 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

ParameterTypeRequiredDefaultDescription
codestringYesCode to execute. Use print() for text output.
languagestringNo"python""python", "javascript", or "typescript"
output_filenamestringNo""File to publish as a durable session file. Code must save a file with this exact name.

execute_command

ParameterTypeRequiredDescription
commandstringYesShell command to execute (e.g., "ls -la", "pip install requests").

file_operations

ParameterTypeRequiredDescription
operationstringYes"read", "write", "list", or "remove"
pathslistFor read/list/removeFile paths. read: ["file.txt"], list: ["."], remove: ["old.txt"]
contentlistFor writeEntries 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
TaskRecommended SkillNotes
Create charts/diagramsvisual-designUse this first for production charts
Create Word documentsword-documentsHas template support and styling
Create Excel spreadsheetsexcel-spreadsheetsHas formatting pipeline and validation
Create PowerPointpowerpoint-presentationsHas layout system and design patterns
Test code snippetscode-interpreterDebug, verify logic, check output
Prototype algorithmscode-interpreterExperiment before implementing
Install/test packagescode-interpreterCheck compatibility, test APIs
Debug code logiccode-interpreterIsolate and test specific functions
Verify calculationscode-interpreterQuick math or data checks

Code Interpreter vs Code Agent

Code InterpreterCode Agent
NatureSandboxed execution environmentAutonomous agent (Claude Code)
Best forQuick scripts, data analysis, prototypingMulti-file projects, refactoring, test suites
File persistenceFiles in /mnt/workspace persist across interpreter restartsAll files auto-synced to S3
Session stateVariables persist within one interpreter session; workspace files persist for the chat sessionFiles + conversation persist across sessions
AutonomyYou write the codeAgent plans, writes, runs, and iterates
Use whenYou need to run a specific piece of codeYou 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/workspace persists 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

LibraryCommon Use
pandasDataFrames, CSV/Excel I/O, groupby, pivot
numpyArrays, linear algebra, random, statistics
matplotlibLine, bar, scatter, histogram, subplots
plotlyInteractive charts, 3D plots
bokehInteractive visualization
scipyOptimization, interpolation, signal processing
statsmodelsRegression, time series, hypothesis tests
sympyAlgebra, calculus, equation solving

Machine Learning & AI

LibraryCommon Use
scikit-learnClassification, regression, clustering, pipelines
torch / torchvision / torchaudioDeep learning, computer vision, audio
xgboostHigh-performance gradient boosting
spacy / nltk / textblobNLP, tokenization, NER, sentiment
scikit-imageImage processing, filters, segmentation

Mathematical & Optimization

LibraryCommon Use
cvxpyConvex optimization, portfolio optimization
ortoolsScheduling, routing, constraint programming
pulpLinear programming
z3-solverSAT solving, formal verification
networkx / igraphGraph algorithms, network analysis

File Processing & Documents

LibraryCommon Use
openpyxl / xlrd / XlsxWriterExcel read/write with formatting
python-docxWord document creation/modification
python-pptxPowerPoint creation/modification
PyPDF2 / pdfplumber / reportlabPDF read/write/generate
lxml / beautifulsoup4XML/HTML parsing
markitdownConvert various formats to Markdown

Image & Media

LibraryCommon Use
pillow (PIL)Image resize, crop, filter, conversion
opencv-python (cv2)Computer vision, feature detection
imageio / moviepyImage/video I/O and editing
pydubAudio manipulation
svgwrite / WandSVG creation, ImageMagick

Data Storage & Formats

LibraryCommon Use
duckdbSQL queries on DataFrames and files
SQLAlchemySQL ORM and database abstraction
pyarrowParquet and Arrow format processing
orjson / ujson / PyYAMLFast JSON/YAML parsing

Web & API

LibraryCommon Use
requests / httpxHTTP requests, API calls
beautifulsoup4Web scraping
fastapi / Flask / DjangoWeb frameworks

Utilities

LibraryCommon Use
pydanticData validation, schema definition
FakerTest data generation
richPretty printing, tables
cryptographyEncryption, hashing
qrcodeQR code generation
boto3AWS 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

  1. matplotlib.use('Agg') before import matplotlib.pyplot — sandbox has no display.
  2. Use print() for text output — stdout is how results are returned.
  3. output_filename must match exactly — the filename in plt.savefig() or wb.save() must match the output_filename parameter.
  4. Use execute_command for shell tasks — ls, pip install, curl, etc.
  5. Use file_operations for file management — read/write/list/remove files explicitly.
  6. Session state persists — variables and files remain across calls. Use this for multi-step workflows.

Common Mistakes to Avoid

  • Forgetting matplotlib.use('Agg') before import matplotlib.pyplot as plt
  • Using plt.show() instead of plt.savefig() — there is no display
  • Typo in output_filename — must match the file saved by the code exactly
  • Using execute_code for shell tasks — use execute_command instead
  • Writing binary files via file_operations — use execute_code to generate binary files, then download with output_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

View all →

financial-news

aws-samples/sample-strands-agent-with-agentcore

Open the skill to read its SKILL.md instructions.

Business & Finance260 installs

word-documents

aws-samples/sample-strands-agent-with-agentcore

Open the skill to read its SKILL.md instructions.

Docs & Writing130 installs

google-maps

aws-samples/sample-strands-agent-with-agentcore

Open the skill to read its SKILL.md instructions.

DevOps & Cloud96 installs

wikipedia-search

aws-samples/sample-strands-agent-with-agentcore

Open the skill to read its SKILL.md instructions.

DevOps & Cloud79 installs

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.

Docs & Writing68 installs

Popular devops & cloud skills

View category →

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

OfficialDevOps & Cloud579.1K installs

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.

OfficialDevOps & Cloud569.8K installs

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.

OfficialDevOps & Cloud569K installs

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.

OfficialDevOps & Cloud568.8K installs

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.

OfficialDevOps & Cloud568.6K installs

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.

OfficialDevOps & Cloud568K installs