We’ve been working with automating coding agents in sandboxes as of late. It’s bewildering how poorly standardized and difficult to use each agent varies between each other.
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.
Can I think of it as ACP(agent-client-protocol)-over-HTTP? I know ACP is an editor-oriented local protocol, but I think it's similar to the design idea of this project.
Congratulations on open sourcing this. Is there a small video explaining how it feels?
For the newly initiated - can you help explain some common use cases? I’m not sure I fully grok practical usage of this
I’ll take a stab after just reading documentation. I’ve been waiting for a good open source “wrapper” for Claude Code that allows me to run it somewhere and expose it as an API to be driven by a thin client elsewhere, and this appears to be that.
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.
[dead]