boxkite
Runtime

Can I import pandas?

Yes — and here's the exact, complete list of everything else pre-installed in the sandbox container, straight from src/boxkite/preset_packages.py. This is the whole list; nothing here is abbreviated.

Python

Python packages, by category

Data processing

pandasnumpypolars

Visualization

matplotlibseabornplotly

Scientific computing

scipyscikit-learnstatsmodels

Excel & spreadsheet

openpyxlxlrdxlsxwriter

Document processing

python-docxpython-pptxpypdfpdfplumberreportlabpypdfium2pdf2imagepytesseractdefusedxmlmarkitdown

HTML & XML parsing

lxmlbeautifulsoup4html5lib

Data serialization

pyyamltomlorjson

Image processing

pillow

Date & time

python-dateutilpytz

Output formatting

tabulatetqdm

Templating

jinja2markdownify

Text processing

chardetregexftfyanyasciiunidecode

HTTP clients

requestshttpx
Node.js

Node.js packages

docxfontkitlinebreakmathjax-fullpdf-libpdfjs-distplaywrightpptxgenjsprismjsreactreact-domreact-iconssharpskia-canvas
System tools

Command-line tools available on PATH

python3nodejqsqlite3libreofficepoppler-utilsqpdfpandoctesseract-ocrimagemagickghostscriptheif-convert

This list is closed by design — not an oversight you can work around.

Why the list can't grow at runtime

Agents cannot install additional packages at runtime — the sandbox has no network access, and pip/npm are removed from the container entirely. Everything usable has to be in the preset list above; a pip install attempt fails, and a missing-module error points back at this same list.

If you need something that isn't listed, the fix is to rebuild the sandbox image with it added — this is a deliberate tradeoff of the isolation model, not a gap to route around from inside a session.

"Rebuild the image" doesn't have to mean hand-editing a Dockerfile — there's a self-serve API for it.

Need your own packages?

The declarative builder lets you request a pinned-version python_packages/apt_packages/npm_packages list on top of one of four pre-approved bases, and get back a digest-pinned image_idto create sandboxes from — no raw Dockerfile access, no arbitrary base image. It's opt-in and off by default pending a live-cluster security review (see the custom images guide for exact scope and current status), but the mechanism itself is real, shipped code today, not a roadmap item.