A self-hostable, Kubernetes-native sandbox for agent code execution — pod-per-session isolation plus a complete bash/python/file tool surface.
Project description
boxkite-sandbox
The missing batteries-included, self-hostable sandbox for agent code execution.
Most "agent sandbox" projects give you raw isolation — a pod, a VM, a
container — and leave you to build the tool surface an LLM agent needs on
top of it. boxkite is the other half: a complete bash/python/file/
search/process tool surface (15 framework-agnostic tools — LangChain,
LangGraph, CrewAI, AutoGen, LlamaIndex, or plain OpenAI-style function
calling) running inside real Kubernetes pod isolation, hardened with
non-root execution, dropped Linux capabilities, a read-only root
filesystem, default-deny network egress, and secret-scrubbed command
output.
Who this is for: teams building their own agent products that need isolated, multi-tenant code execution at scale — one Kubernetes pod per session, many sessions, many tenants. If you just want your own coding assistant to run shell commands on your own machine, this is the wrong layer.
Install
pip install boxkite-sandbox
Note the PyPI name is boxkite-sandbox, not boxkite (already taken) —
the import path is unaffected: import boxkite.
Quickstart
git clone https://github.com/EvAlssment/boxkite.git boxkite && cd boxkite
pip install -e .
boxkite up
boxkite exec "python3 -c 'print(1 + 1)'"
from uuid import uuid4
from boxkite import SandboxManager
from boxkite.tools import create_sandbox_tool_specs
manager = SandboxManager()
session_id = str(uuid4())
await manager.create_session(organization_id=uuid4(), session_id=session_id)
specs = create_sandbox_tool_specs(sandbox_manager=manager, session_id=session_id)
bash_tool = next(s for s in specs if s.name == "bash_tool")
result = await bash_tool.handler(command="echo hello from boxkite")
boxkite.tools.adapters converts the same tool specs for LangChain,
LlamaIndex, the OpenAI Agents SDK, or plain OpenAI/Anthropic/Gemini/Mistral
function-calling schemas — see the full integration table and every other
runtime mode (real Kubernetes, docker-compose, the boxkite CLI) in the
full README.
Security
boxkite executes arbitrary, agent-generated code — its security posture is
layered defense in depth (non-root, dropped capabilities, read-only
filesystem, per-exec network isolation, no credential injection into
/exec). See SECURITY.md
for the full model and known follow-ups before deploying this beyond local dev.
License
MIT — fully permissive, no restriction on self-hosting or competing hosted use.
Links
GitHub · Full README · Docs · Issues
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file boxkite_sandbox-0.2.1.tar.gz.
File metadata
- Download URL: boxkite_sandbox-0.2.1.tar.gz
- Upload date:
- Size: 393.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f822d971998cda788bd7c65509b8dc95fcf88bedcbbe3af8b5ddf56801057ad9
|
|
| MD5 |
a2648a5c8d3951c94ab5c94dab623b15
|
|
| BLAKE2b-256 |
2c7bc4def804fc46fd92d316a3b4ef9b6bfde27836168e0d15873a70cd47bbd4
|
File details
Details for the file boxkite_sandbox-0.2.1-py3-none-any.whl.
File metadata
- Download URL: boxkite_sandbox-0.2.1-py3-none-any.whl
- Upload date:
- Size: 254.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78adb756d04acf1d0c98ee94c27b61cd56aae47a70513a9c665209503b6bf3d6
|
|
| MD5 |
732a02b43d849dedd976b6863444f2c5
|
|
| BLAKE2b-256 |
0f76e8511bad0df54c5af607467bd1715bbeb2e1352b7b3153fe22fd8dd4e479
|