Skip to main content

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

Note the PyPI name is boxxkite-sandbox, not boxxkite (already taken) — the import path is unaffected: import boxxkite.

Quickstart

git clone https://github.com/EvAlssment/boxxkite.git boxxkite && cd boxxkite
pip install -e .
boxxkite up
boxxkite exec "python3 -c 'print(1 + 1)'"
from uuid import uuid4
from boxxkite import SandboxManager
from boxxkite.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 boxxkite")

boxxkite.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 boxxkite CLI) in the full README.

Security

boxxkite 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

Apache 2.0 — permissive with an explicit patent grant, no restriction on self-hosting or competing hosted use.

Links

GitHub · Full README · Docs · Issues · Discord

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boxxkite_sandbox-0.3.1.tar.gz (448.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boxxkite_sandbox-0.3.1-py3-none-any.whl (291.7 kB view details)

Uploaded Python 3

File details

Details for the file boxxkite_sandbox-0.3.1.tar.gz.

File metadata

  • Download URL: boxxkite_sandbox-0.3.1.tar.gz
  • Upload date:
  • Size: 448.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for boxxkite_sandbox-0.3.1.tar.gz
Algorithm Hash digest
SHA256 9878e3c2f7de681392f95bb6657d53aa414c41cdbc93bd178dc73144425bc406
MD5 395d18e57bbbeb04580a4dd8e1163281
BLAKE2b-256 11c3d25fc8562ab41dcabaf33fa0b910613b70f3faf927f7ae829af6e4f078fb

See more details on using hashes here.

File details

Details for the file boxxkite_sandbox-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for boxxkite_sandbox-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 40211dac2557b779cbda137a368231cade5b1f94eb08d632edf3bca3ebe614b0
MD5 fe8d5253f2f3f79df75cbf404d0a2054
BLAKE2b-256 15dd956a12a29d2befd73c2b322e5bc1cc186f4cb227ab665ffa240e29e4eacd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page