Orchestra
Steerable Harnesses for DeepAgents — Orchestra🪶
Install / Use
/learn @ruska-ai/OrchestraQuality Score
Category
Development & EngineeringSupported Platforms
README
Steerable Harnesses for DeepAgents
<a href="https://discord.com/invite/QRfjg4YNzU"><img src="https://img.shields.io/badge/Join-Discord-purple"></a>
<a href="https://chat.ruska.ai/api"><img src="https://img.shields.io/badge/View-API Docs-blue"></a>
<a href="https://ruska.ai/socials"><img src="https://img.shields.io/badge/Follow-Social-black"></a>
Open-source AI agent orchestration platform built on LangGraph and powered by the MCP & A2A protocols.
Self-host for free or let us deploy it for you. Your agents, your data, your infrastructure.
🚀 Deployment Options
| Option | Best For | Get Started |
|--------|----------|-------------|
| Community (Free) | Developers, self-hosting | docker pull ghcr.io/ruska-ai/orchestra:latest |
| Managed Cloud | Teams wanting convenience | chat.ruska.ai |
| Enterprise | Organizations needing SSO, compliance, SLA | Contact Us |
📖 Table of Contents
This project includes tools for running shell commands and Docker container operations. For detailed information, please refer to the following documentation:
🐳 Docker Deployment (GHCR)
We publish the backend image to GitHub Container Registry (GHCR). For the full Docker/Docker Compose deployment guide (env setup, services, migrations, troubleshooting), jump to Docker Deployment details.
docker pull ghcr.io/ruska-ai/orchestra:latest
📋 Prerequisites
- Docker Installed
- Python 3.11 or higher
- Access to OpenAI API (for GPT-4o model) or Anthropic API (for Claude 3.5 Sonnet)
🛠️ Development
Quick Reference
| Command | Description |
|-------------------|----------------------------------|
| make dev | Start backend server (port 8000) |
| make dev.worker | Start TaskIQ worker |
| make test | Run all backend tests |
| make format | Format code with Ruff |
| make seeds.user | Seed default users |
| make migrate.up | Apply all pending migrations |
For all commands, see backend/Makefile.
-
Environment Variables:
Create a
.envfile in the root directory and add your API key(s):# Backend cd <project-root>/backend cp .example.env .env # Frontend cd <project-root>/frontend cp .example.env .envEnsure that your
.envfile is not tracked by git by checking the.gitignore: -
Start Docker Services
Below will start the database service.
cd <project-root> docker compose up postgres
Dockerized Dev Stack
For containerized local development with hot reload, the backend, frontend, worker, and supporting services can all run under docker-compose.dev.yml.
cd <project-root>
BACKEND_ENV_FILE=$HOME/.env/orchestra/.env.backend \
FRONTEND_ENV_FILE=$HOME/.env/orchestra/.env.frontend \
make dev.docker.up
Useful endpoints while debugging:
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:8000/docs - Dozzle log viewer:
http://localhost:8088
Tail the main service logs in one stream:
make dev.docker.logs
If you also want the sandbox exec server inside the stack, start with COMPOSE_PROFILES=tools make dev.docker.up.
-
Setup Server Environment
<details> <summary>Manual setup (if Makefile unavailable)</summary>cd <project-root>/backend make devAssumes you're using astral uv.
</details>cd <project-root>/backend uv venv source .venv/bin/activate uv sync bash scripts/dev.sh -
Setup Client Environment
# Change Directory cd <project-root>/frontend # Install npm install # Run npm run dev
Database Migrations
This project uses Alembic for database migrations. Here's how to work with migrations:
Initial Setup
-
Create the database (if not exists):
cd backend alembic upgrade headpython -m seeds.user_seeder -
Create new
alembic revision -m "description_of_changes"### Appliy Next alembic upgrade +1 ### Speicif revision alembic upgrade <revis_id> ### Appliy Down alembic downgrade -1 ### Appliy Down alembic downgrade <revis_id> ### History alembic history
Run Playwright MCP Locally
-
Start Ngrok on port 8931
ngrok http 8931 -
Run MCP server
npx @playwright/mcp@latest \ --port 8931 \ --executable-path $HOME/.cache/ms-playwright/chromium-<version>/chrome-linux/chrome \ --vision
🤝 Integrations
🗺️ Roadmap
Stay up to date on Discord. Full release history in Changelog.md.
March 2026
| Feature | Category | Status | |---------|----------|--------| | Human-In-The-Loop | Agent Control | 🔵 Planned |
February 2026
| Feature | Category | Status | |---------|----------|--------| | Search Threads | UX | ✅ Shipped | | Migrate Memories Seeder | Data | ✅ Shipped | | Docs Agent Guidance | Docs | 🟡 In Progress | | RLM Skill | Skills | ✅ Shipped | | Frontend Schedule Refactor | Scheduling | ✅ Shipped |
January 2026
| Feature | Category | Status | |---------|----------|--------| | Distributed Workers (TaskIQ) | Infra | ✅ Shipped | | Public Agents | Agents | ✅ Shipped | | File Tree Sidebar | UX | ✅ Shipped | | AWS Model Support | Integrations | ✅ Shipped | | Shareable Thread Links | UX | ✅ Shipped | | Subagent Tool Calls | UX | ✅ Shipped | | User Default Settings | Settings | ✅ Shipped | | Speech Dictation | UX | ✅ Shipped |
<details> <summary>📦 Archive (Dec 2025 and earlier)</summary>See Changelog.md for the full release history.
</details>🏢 Enterprise
For organizations needing managed deployment, compliance, or dedicated support:
| Feature | Description | |---------|-------------| | SSO/SAML | Integrate with your identity provider | | Audit Logging | Comprehensive logs for compliance | | Air-Gapped Deployment | Run in isolated environments | | Priority Support | SLA-backed response times | | Custom Integrations | Connect to your internal tools |
We partner with you to deploy Orchestra inside your infrastructure. Contact us to discuss your requirements.
🐳 Docker Deployment (GHCR / Docker Compose)
This section covers deploying the Orchestra backend using Docker. For local development, see the sections above.
📋 Prerequisites
- Docker installed
- Docker Compose installed
- Access to AI provider API keys (OpenAI, Anthropic, etc.)
🚀 Quick Start
Using Pre-built Image
Pull the latest image from GitHub Container Registry:
docker pull ghcr.io/ruska-ai/orchestra:latest
1. Environment Setup
Create a .env.docker file in the backend/ directory:
cd backend
cp .example.env .env.docker
Update the following values for Docker networking:
# Database - use container name instead of localhost
POSTGRES_CONNECTION_STRING="postgresql://admin:test1234@postgres:5432/orchestra?sslmode=disable"
# Tools - use container names for internal services
SEARX_SEARCH_HOST_URL="http://search_engine:8080"
SHELL_EXEC_SERVER_URL="http://exec_server:3005/exec"
2. Start Services
From the project root directory:
# Start database and backend
docker compose up postgres orchestra
# Or start all services
docker compose up
3. Verify Deployment
The API will be available at http://localhost:8000
- API Docs:
http://localhost:8000/docs - Health
