A client-server architecture for the Claude Agent SDK that separates SDK logic into a stateful API server and provides lightweight clients (CLI and web).
- Python 3.12+
- uv - Fast Python package installer
- Node.js 18+ (for web client)
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync
# Start the server
uv run backend/server.py
# Or use the convenience script
./start.shCLI Client:
uv run cli_client/client.pyWeb Client:
cd web_client
npm install
npm run devVisit http://localhost:8080 to use the web interface.
Production Deployment:
./serve # Runs on 0.0.0.0:8080- Multi-session support with session restoration
- RESTful API with FastAPI
- Interactive CLI and web clients
- Permission callback system
- LiteLLM proxy for multi-provider support
- Workspace management with S3 sync
- Docker support
For detailed documentation, see the claude/ directory:
- Quick Start Guide - Get started quickly
- Architecture - System design and components
- Workspace Sync - S3 workspace management
- Web Client - Web interface documentation
- User Registration - AWS Cognito user signup configuration
- CLI Client - Command-line interface
- Docker - Container deployment
POST /sessions- Create new sessionPOST /sessions/{id}/messages- Send messageGET /sessions/{id}/status- Get statusPOST /invocations- Unified invocation endpointGET /health- Health check
Full API documentation: http://localhost:8000/docs (when server is running)
# Start server with hot reload
uv run uvicorn backend.server:app --host 127.0.0.1 --port 8000 --reload
# Run tests
uv run pytest
# Format code
uv run ruff format backend/Same as the parent Claude Agent SDK project.