Agents execute code, make HTTP requests, and manage credentials. In production, every session needs its own isolated environment with persistent state and governance. Building that yourself means stitching together containers, proxies, secret managers, and logging.
Superserve gives every agent a governed workspace out of the box.
- Isolated by default - Every session runs in its own Firecracker microVM. Nothing leaks between sessions or touches your infrastructure
- Nothing disappears - The
/workspacefilesystem persists across turns, restarts, and days. Resume where you left off - Credentials stay hidden - A credential proxy injects API keys at the network level. The agent never sees them - they never appear in LLM context, logs, or tool outputs
- Any framework - Claude Agent SDK, OpenAI Agents SDK, LangChain, Mastra, Pydantic AI, or plain stdin/stdout
- One command -
superserve deploy agent.py. No Dockerfile, no server code, no config files - Real-time streaming - Stream tokens and tool calls as they happen
- Sub-second cold starts - Pre-provisioned containers mean your agent starts almost instantly
Install the CLI:
curl -fsSL https://superserve.ai/install | shOr via npm:
npm install -g @superserve/cliOr via Homebrew:
brew install superserve-ai/tap/superserveLog in and deploy:
superserve login
superserve deploy agent.pySet your secrets:
superserve secrets set my-agent ANTHROPIC_API_KEY=sk-ant-...Run your agent:
superserve run my-agentYou > What is the capital of France?
Agent > The capital of France is Paris.
Completed in 1.2s
You > And what's its population?
Agent > Paris has approximately 2.1 million people in the city proper.
Completed in 0.8s
| Command | Description |
|---|---|
superserve login |
Authenticate with Superserve |
superserve init |
Generate superserve.yaml for your project |
superserve deploy |
Deploy your agent |
superserve run AGENT |
Run an interactive session |
superserve secrets set AGENT KEY=VALUE |
Set encrypted environment variables |
superserve secrets list AGENT |
List secret key names |
superserve agents list |
List deployed agents |
superserve agents get AGENT |
Get agent details |
superserve agents delete AGENT |
Delete an agent |
superserve sessions list |
List sessions |
See the full CLI Reference for all flags and options.
This repo is a monorepo managed with Bun workspaces and Turborepo.
- Bun workspaces - single
bun.lockat the root, sharednode_modules, workspace packages reference each other withworkspace:* - Turborepo - runs tasks across packages in the correct order, caches outputs, and parallelizes where possible
apps/
playground/ # React + Vite playground app
packages/
cli/ # TypeScript CLI (@superserve/cli)
sdk/ # TypeScript SDK (@superserve/sdk)
typescript-config/ # Shared tsconfig presets
biome-config/ # Shared Biome config
bun install # install all dependenciesRun tasks across all packages from the repo root:
bun run build # build all packages
bun run dev # start all dev servers
bun run lint # lint all packages
bun run typecheck # type check all packages
bun run test # run all testsTarget a specific package with --filter:
bunx turbo run dev --filter=@superserve/playground
bunx turbo run build --filter=@superserve/sdkThe CLI doesn't have a dev server. Run it directly with Bun:
bun packages/cli/src/index.ts deploy --help
bun packages/cli/src/index.ts loginAlways add dependencies from the repo root using --filter:
bun add zod --filter @superserve/cli
bun add react --filter @superserve/playground
bun add -d @types/node --filter @superserve/sdkNote: Do not
cdinto a package directory and runbun adddirectly - this creates a separatebun.lockthat conflicts with the monorepo's root lockfile.
TypeScript and Biome configs are shared across packages:
@superserve/typescript-config- extend intsconfig.jsonwith"extends": "@superserve/typescript-config/base.json"@superserve/biome-config- extend inbiome.jsonwith"extends": ["@superserve/biome-config/biome.json"]
When updating linting rules or compiler options, prefer updating the shared config so all packages stay consistent.
The Python CLI in src/superserve/ is being replaced by the TypeScript CLI. It uses uv for dependency management (independent from the Bun workspace):
uv sync --dev # install Python dependencies
uv run pytest # run tests
uv run ruff check . # lintContributions are welcome! See CONTRIBUTING.md for guidelines.
This project is licensed under the Open Core Ventures Source Available License (OCVSAL) 1.0 - see the LICENSE file for details.
If you find Superserve useful, please consider giving us a star!