Experimental — This project is in an early experimental phase and under active development. APIs, data models, and features may change without notice. Use at your own risk. Not recommended for production workloads.
Tip: This project is designed to be explored with AI coding assistants. Try prompts like
read core and explain me how agent credentials are workingto navigate the codebase and understand any feature in depth. If you're using an AI assistant other than Claude Code, make sure to includeCLAUDE.mdin the context — it contains the project conventions and navigation instructions.
Open-source platform for building, running, and orchestrating AI agents.
Create custom AI agents with their own prompts, credentials, and tools — each running in an isolated Docker environment. Chat with them, schedule them, connect them to email, expose them via APIs, or wire them into multi-agent teams.
AI "skills" require LLM inference on every run — each execution costs tokens, needs careful prompt tuning, and can hallucinate. Cinna takes a different approach: agents run prebuilt scripts in persistent environments. Once an agent's workflow is built, routine tasks execute as deterministic code with zero token cost — effectively becoming a standalone application. You get the flexibility of AI for building and iterating, with the predictability and reliability of traditional software for day-to-day operation.
For a detailed point-by-point comparison (credentials, isolation, persistence, scheduling, and more), see Skills & Plugins vs. Cinna Agents.
Cloud providers now offer managed agent APIs (like Anthropic's Claude Managed Agents) — you call an endpoint, they run the agent in a hosted container, you get results back. Cinna is the opposite: a self-hosted platform where you own the infrastructure, the data, and the full agent lifecycle. Managed APIs are great for embedding agent capabilities into your product; Cinna is for teams that need persistent automation, multi-provider flexibility, bidirectional protocol support (A2A, MCP), and a complete web UI — without handing control to a third party.
For a detailed comparison (architecture, persistence, credentials, multi-agent, protocols, and more), see Claude Managed Agents vs. Cinna Agents.
Cinna gives you the full operational layer on top (not just SDK):
- Isolated runtime per agent — each agent runs in its own Docker container with a persistent workspace, so agents can create files, install packages, and maintain state across sessions
- Two-mode architecture — build your agent interactively (building mode with full context), then switch to a lightweight conversation mode for production use at lower cost
- Multi-SDK support — use Claude Code (with Anthropic) or OpenCode (with OpenAI, Google, and many other providers). Switch between them without changing your agent
- No vendor lock-in — self-hosted, GPL-3.0 licensed, runs anywhere Docker runs
- Create agents with custom system prompts, credentials, and SDK configuration
- Multiple environment templates (general, Python-advanced, custom Dockerfiles)
- Blue-green deployments — switch between environments instantly for rollback
- Plugin marketplace for extending agent capabilities
- Persistent chat sessions with streaming responses
- File upload/download within agent workspace
- Slash commands (
/files,/rebuild-env,/session-reset) - Markdown rendering with tool call visualization
- CRON-based scheduling with natural language input
- Email-to-agent automation (IMAP/SMTP integration)
- Webhook triggers for external system integration
- Agent-to-agent handover for task delegation
- A2A Protocol — expose agents as Agent-to-Agent services for cross-platform communication
- MCP Server — make any agent available as a tool server for external LLM clients (Claude Desktop, Cursor, etc.)
- MCP Connectors — connect agents to external MCP servers for additional tools
- Git-based knowledge sources with automatic article indexing
- Vector embeddings and semantic search
- Public/private knowledge scoping
- Clone-based agent sharing between users
- Guest access via shareable links (no account required)
- Agent webapps — lightweight dashboards served from agent workspace
- Customizable monitoring dashboards with per-agent blocks
- Visual org-chart builder for multi-agent orchestration
- Directed connections with handover prompts
- Team-scoped task management with short-code IDs
- CLI tool (cinna-cli) for local agent development
- Workspace sync, Docker build context, credential pull
- MCP knowledge proxy for AI coding tools
User ──> Frontend (React) ──> Backend API (FastAPI) ──> Services ──> PostgreSQL
|
|──> Docker Environments ──> Agent SDK (Claude/OpenAI/Google)
|──> WebSocket (Socket.IO) ──> Real-time Events
|──> A2A Protocol ──> External Agents
|──> MCP Server ──> External LLM Clients
+──> Email (IMAP/SMTP) ──> Email Automation
| Layer | Technology |
|---|---|
| Backend | FastAPI (Python), PostgreSQL, SQLModel ORM, Alembic migrations |
| Frontend | React, TypeScript, TanStack Router & Query, Tailwind CSS, shadcn/ui |
| Agent Runtime | Claude SDK, OpenAI SDK, Google ADK, OpenAI-compatible providers |
| Isolation | Docker containers with mounted volumes |
| Real-time | Socket.IO (WebSocket) |
| Auth | JWT tokens, Google OAuth, bcrypt |
git clone https://github.com/opencinna/cinna-core.git
cd cinna-core
make installThe install wizard will walk you through configuring admin credentials, database settings, and security keys. It copies .env.example, applies your values, builds Docker images, runs migrations, and seeds the admin user — everything needed to go from clone to running instance.
Open http://localhost:5173 and log in with the admin credentials you chose during setup.
See DEVELOPMENT.md for the full development setup, workflow, and Makefile reference.
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
