askill
code-interpreter

code-interpreterSafety --Repository

Test and prototype code in a sandboxed environment. Use for debugging, verifying logic, or installing packages.

108 stars
2.2k downloads
Updated 3/5/2026

Package Files

Loading files...
SKILL.md

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

Tool Parameters

execute_code

ParameterTypeRequiredDefaultDescription
codestringYesCode to execute. Use print() for text output.
languagestringNo"python""python", "javascript", or "typescript"
output_filenamestringNo""File to download after execution. Code must save a file with this exact name. Saved to workspace automatically.

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

Environment

  • Languages: Python (recommended, 200+ libraries), JavaScript, TypeScript
  • Shell: Full shell access via execute_command
  • File system: Persistent within session; use file_operations to manage files
  • Session state: Variables and files persist across multiple calls within the same session
  • 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 tasksls, 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

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

AI review pending.

Metadata

Licenseunknown
Version-
Updated3/5/2026
Publisheraws-samples

Tags

apici-cddatabasegithub-actionsobservabilitytesting