We open-sourced the Sandbox Agent SDK based on tools we built internally to solve 3 problems:
1. Universal agent API: interact with any coding agent using the same API
2. Running agents inside the sandbox: Agent Sandbox provides a Rust binary that serves the universal agent API over HTTP, instead of having to futz with undocumented interfaces
3. Universal session schema: persisting sessions is always problematic, since we don’t want the source of truth for the conversation to live inside the container in a schema we don’t control
Agent Sandbox SDK has:
- Any coding agent: Universal API to interact with all agents with full feature coverage
- Server or SDK mode: Run as an HTTP server or with the TypeScript SDK
- Universal session schema: Universal schema to store agent transcripts
- Supports your sandbox provider: Daytona, E2B, Vercel Sandboxes, and more
- Lightweight, portable Rust binary: Install anywhere with 1 curl command
- OpenAPI spec: Well documented and easy to integrate
We will be adding much more in the coming weeks – would love to hear any feedback or questions.
Furthermore, it exposes both the main session manager API, allowing it to spawn new sessions, as well as the API to chat with any given session directly. (Many wrappers allow you to wrap a single Claude code session in an API, driven by tmux under the covers, but don’t expose the meta-API to manage the sessions themselves)
I would use it to write a mobile or web client for my “agents” running remotely, either on sprites.dev, or on my MacBook over tailscale. (I currently use a mobile terminal for this, and have a list of Claude Code wrappers to try, but this “feels” like a cleaner abstraction primitive to build around.)
The above might be wishful thinking on my part, but hopefully the OP will correct me.