Multi-Agent Code Orchestration - Intelligent AI Agent Coordination
Features • Installation • Quick Start • Architecture • Commands • Contributing • License
Orion Code is a multi-agent orchestration system that acts as a virtual Tech Lead, coordinating specialized AI agents to collaborate on software projects. It provides an interactive TUI (Terminal User Interface) for seamless interaction, with a REST API backend and a modern landing page.
- Interactive TUI - Beautiful terminal interface with Ink 5/React 18
- Mouse Wheel Scroll - Scroll message history with mouse wheel or Page Up/Down
- Multi-Agent Orchestration - AI-powered task orchestration via Ollama (free, local)
- Inline Bash Mode - Execute shell commands directly from TUI with
!prefix - DDD Architecture - Clean, maintainable codebase with Domain-Driven Design
- REST API Backend - Fastify 5-based backend with JWT + API Key authentication
- Persistent Login - Tokens persist on device until explicit logout
- PostgreSQL Database - Full persistence with Drizzle ORM
- Intelligent Orchestration - AI-powered task planning and implementation via
/implement - Natural Language Input - Type natural language to create and execute tasks
- Interactive Selection Menus - Arrow-key navigation for commands
- Landing Page - Modern React landing page with Tailwind CSS
- Docker Support - Containerized deployment with docker-compose
- Node.js >= 18.0.0
- npm >= 10.0.0
- PostgreSQL (for production)
# Clone the repository
git clone https://github.com/vinnytherobot/orion-code.git
cd orion-code
# Install dependencies
npm install
# Build all packages
npm run build
# Start development servers
npm run devCopy .env.example to .env and configure:
cp .env.example .envRequired variables:
DATABASE_URL- PostgreSQL connection string (defaults shown matchdocker-compose.yml:postgresql://orion:orion@localhost:5432/orion)JWT_SECRET- Secret key for JWT tokens (generate one, e.g.openssl rand -hex 32)ORION_API_URL- Backend API URL (default: http://localhost:3000)
Optional LLM provider variables (default is local Ollama):
ORION_PROVIDER-ollama|openai|anthropic|groq(default:ollama)ORION_OLLAMA_BASE_URL- Ollama endpoint (default:http://127.0.0.1:11434)ORION_PROVIDER_API_KEY- API key for cloud providers; ignored by OllamaORION_<NAME>_API_KEY/ORION_<NAME>_BASE_URL/ORION_<NAME>_MODEL- per-provider overrides
Docker:
docker compose up -dstarts Postgres and the API. The API runs migrations on startup and resolves the LLM provider from environment variables, so no plaintext config file is written inside the container. Ollama is not containerized — it is expected to run on the host (http://127.0.0.1:11434) and the API connects to it viaORION_OLLAMA_BASE_URL.
# Start all development servers
npm run dev# Start the TUI
npm run dev:tui
# Start the backend API
npm run dev:backend
# Start the landing page
npm run dev:landingorion-code/
├── apps/
│ ├── backend/ # Fastify API server
│ ├── tui/ # TUI interface (Ink/React)
│ └── landing/ # Landing page (React + Vite + Tailwind)
├── packages/
│ ├── shared/ # Shared utilities (Result, AppError, Logger, Config)
│ ├── domain/ # Domain entities (Agent, Task, Project)
│ ├── application/ # Use cases (AnalyzeProject, Plan, Implement)
│ └── infrastructure/ # Database, providers, cache, orchestration
├── docs/ # Documentation and specs
└── .github/ # GitHub templates
┌─────────────────────────────────────┐
│ Presentation (TUI/API) │
├─────────────────────────────────────┤
│ Application Layer │
│ (Use Cases, DTOs) │
├─────────────────────────────────────┤
│ Domain Layer │
│ (Entities, Value Objects) │
├─────────────────────────────────────┤
│ Infrastructure Layer │
│ (Database, Providers, Cache) │
└─────────────────────────────────────┘
shared (zero deps)
↑
domain (depends on shared)
↑
application (depends on domain + shared)
↑
infrastructure (depends on domain + shared)
↑
apps (depends on application + infrastructure)
| Agent | Responsibility |
|---|---|
| Planner | Task planning and decomposition |
| Architect | Architecture decisions |
| Backend | Business logic implementation |
| Database | Data persistence |
| Frontend | UI implementation |
| Documentation | Docs generation |
| QA | Test creation |
| Reviewer | Code review |
| DevOps | Infrastructure |
| Security | Security analysis |
| Performance | Optimization |
| Git | Version control |
| Command | Description |
|---|---|
/register <name> <email> <password> |
Register a new user |
/login <email> <password> |
Login to the API |
/logout |
Logout and remove saved credentials |
/me |
Show current user info |
| Command | Description |
|---|---|
/projects |
List all projects |
/create-project <name> <path> [description] |
Create a new project |
/project [id] |
Show project details |
/delete-project [id] |
Delete a project |
| Command | Description |
|---|---|
/tasks [status] |
List active tasks |
/create-task [projectId] <title> [description] |
Create a new task |
/delete-task [taskId] |
Delete a task |
/task-stats [projectId] |
Show task statistics |
| Command | Description |
|---|---|
/agents [role] |
List all available agents |
/init [projectId] |
Initialize agents for a project |
/assign [agentId] [taskId] |
Assign a task to an agent |
/complete [agentId] [result] |
Mark task as completed |
/reset-agent [agentId] |
Reset agent to idle state |
| Command | Description |
|---|---|
/implement [projectId] [taskType] |
Implement a task using AI agents |
/orchestrate [projectId] |
Execute orchestration for pending tasks |
| Command | Description |
|---|---|
/help |
Show available commands |
/status |
Show API status and active agents |
/api-keys [list|create|delete] |
Manage API keys |
/config [key] [value] |
Show or update configuration |
/version |
Show Orion Code version |
/clear |
Clear screen |
/exit |
Exit TUI |
| Command | Description |
|---|---|
!<command> |
Execute shell command directly from TUI |
! (toggle) |
Toggle bash mode on/off |
# Clone and install
git clone https://github.com/vinnytherobot/orion-code.git
cd orion-code
npm install
# Build
npm run build
# Development mode
npm run dev| Script | Description |
|---|---|
npm run build |
Build all packages |
npm run dev |
Watch mode for all packages |
npm run dev:tui |
Watch TUI only |
npm run dev:backend |
Watch backend only |
npm run dev:landing |
Watch landing page only |
npm run lint |
Run Biome linter |
npm run lint:fix |
Fix lint issues |
npm run format |
Format code with Biome |
npm run check |
Run Biome check (lint + format) |
npm run check:fix |
Fix all Biome issues |
npm run typecheck |
Type checking |
npm run test |
Run tests |
npm run clean |
Clean build artifacts |
npm run db:migrate |
Run database migrations |
npm run db:generate |
Generate database migrations |
npm run docker:up |
Start Docker containers |
npm run docker:down |
Stop Docker containers |
The project uses PostgreSQL with Drizzle ORM:
# Run migrations
npm run db:migrate
# Generate new migration
npm run db:generate# Start all services
npm run docker:up
# Stop all services
npm run docker:down
# Rebuild and start
npm run docker:build- Runtime: Node.js + TypeScript
- Framework: Fastify 5
- Database: PostgreSQL 16 + Drizzle ORM
- Auth: JWT + API Key with persistent tokens
- UI Framework: Ink 5 + React 18
- Language: TypeScript
- Framework: React + Vite
- Styling: Tailwind CSS
- UI Components: Radix UI
- Animations: Framer Motion
- Monorepo: npm workspaces + Turborepo
- Linter/Formatter: Biome
- Containerization: Docker + docker-compose
- Ollama (local inference, free)
- OpenAI (GPT-4, GPT-4o, etc.)
- Anthropic (Claude)
- Groq (fast inference)
We welcome contributions! Please see our Contributing Guide for details.
- Report bugs
- Suggest features
- Submit pull requests
- Improve documentation
- Share feedback
This project is licensed under the MIT License - see the LICENSE file for details.
- Ink - React for TUI
- Fastify - Backend framework
- Drizzle ORM - Database ORM
- Turborepo - Monorepo tooling
- Biome - Linter and formatter
- Vite - Build tool for landing page
- Tailwind CSS - Utility-first CSS
- Radix UI - UI components
- Framer Motion - Animations
Made with ❤️ by vinnytherobot and the Orion Code Community