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.4.0.tar.gz (450.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.4.0-py3-none-any.whl (295.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: boxxkite_sandbox-0.4.0.tar.gz
  • Upload date:
  • Size: 450.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.4.0.tar.gz
Algorithm Hash digest
SHA256 83c0da347c7cd1e12c9a3536158263aa96aabfc64a53b7878eded16ea64b0ed0
MD5 3d828f500d5f967df833b4a9037a45da
BLAKE2b-256 95c09f999a712c8d290b7dbfc81e7a61f6aafaa3eab44d11d5e8435b674dc6d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for boxxkite_sandbox-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06886cdf70ab77968dbc81e811ca7d141a6dc7233434192712530777ffd9f538
MD5 fc70c4b3384bd7ed8c2243d825d5c0a7
BLAKE2b-256 0dd8e182fd2accba7f5ee042d98f805f87a243536f1ecf1f2d486df8069095ea

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