Crewly

Website: crewlyai.com
Crewly is an open-source multi-agent orchestration platform that coordinates AI coding agents (Claude Code, Gemini CLI, Codex) to work together as a team. It provides a web dashboard for real-time monitoring, task management, and team coordination — all running locally on your machine.
Features
- Multi-agent teams — Create teams with different roles (developer, QA, PM, orchestrator) and watch them collaborate
- Multi-runtime support — Use Claude Code, Gemini CLI, or OpenAI Codex — mix and match per agent
- Real-time dashboard — Monitor all agents through live terminal streams, task boards, and activity feeds
- Skill system — Agents coordinate through bash skills (report status, delegate tasks, manage memory)
- Agent memory — Persistent knowledge that agents build and share across sessions
- Slack integration — Optional two-way Slack bridge for team notifications
- Local-first — Everything runs on your machine. No data leaves your environment.
Quick Start
npx crewly init
npm install -g crewly
crewly init
crewly start
The init command walks you through provider selection, installs agent skills, and scaffolds a .crewly/ directory. Then crewly start launches the backend server and opens the web dashboard. From there:
- Create a team with agents assigned to roles
- Assign the team to a project (any local code directory)
- Watch agents work in real time through live terminal streams
Prerequisites
- Node.js v20+ and npm v9+
- At least one AI coding CLI installed:
| Claude Code (default) | npm install -g @anthropic-ai/claude-code | claude --version |
| Gemini CLI | npm install -g @google/gemini-cli | gemini --version |
| Codex (OpenAI) | npm install -g @openai/codex | codex --version |
API keys: Gemini CLI requires GEMINI_API_KEY. Codex requires an OpenAI API key. Claude Code authenticates through its own login flow.
Architecture
┌─────────────────────────────────────────────────────┐
│ Web Dashboard │
│ (React + xterm.js + WebSocket) │
└───────────────────────┬─────────────────────────────┘
│
┌───────────────────────▼─────────────────────────────┐
│ Backend Server │
│ (Express + Socket.IO + PTY) │
│ │
│ ┌──────────┐ ┌──────────┐ ┌───────────────────┐ │
│ │ Services │ │ Scheduler│ │ Agent Registration │ │
│ │ (Storage,│ │ (Check- │ │ (Heartbeat, Idle │ │
│ │ Memory) │ │ ins) │ │ Detection, Resume)│ │
│ └──────────┘ └──────────┘ └───────────────────┘ │
└───────────────────────┬─────────────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌──────────────┐ ┌─────────────┐ ┌─────────────┐
│ Agent PTY │ │ Agent PTY │ │ Agent PTY │
│ (Claude) │ │ (Gemini) │ │ (Codex) │
│ │ │ │ │ │
│ Skills ◄────┤ │ Skills ◄───┤ │ Skills ◄───┤
│ Memory ◄────┤ │ Memory ◄───┤ │ Memory ◄───┤
└──────────────┘ └─────────────┘ └─────────────┘
Storage: ~/.crewly/ (global) + project/.crewly/ (per-project)
How It Works
- You create a team in the dashboard with agents assigned to roles
- You assign the team to a project (any local code directory)
- Crewly launches each agent as a CLI process in its own PTY session
- Agents receive role-specific prompts and use skills (bash scripts) to communicate, report progress, and manage tasks
- You monitor everything in real time through the web dashboard
Agent Runtimes
| Claude Code | claude --dangerously-skip-permissions | Default runtime |
| Gemini CLI | gemini --yolo | Requires GEMINI_API_KEY |
| Codex (OpenAI) | codex --full-auto | Requires OpenAI API key |
You can change the default runtime or customize launch commands in Settings.
CLI Commands
crewly init
crewly start
crewly stop
crewly status
crewly logs
crewly upgrade
crewly install [id]
crewly search [q]
Configuration
Optional environment variables (.env file or shell):
GEMINI_API_KEY=your_key_here
SLACK_BOT_TOKEN=xoxb-...
SLACK_APP_TOKEN=xapp-...
SLACK_SIGNING_SECRET=...
LOG_LEVEL=info
WEB_PORT=8787
Docker
Run Crewly with a single command using Docker:
git clone https://github.com/stevehuang0115/crewly.git
cd crewly
cp .env.example .env
docker compose up
To mount a project directory for agents to work on, edit docker-compose.yml and uncomment the volume mount:
volumes:
- crewly_data:/home/node/.crewly
- /path/to/your/project:/home/node/project
Build the image manually:
docker build --platform linux/amd64 -t crewly .
docker run -p 8787:8787 --env-file .env crewly
Development
git clone https://github.com/stevehuang0115/crewly.git
cd crewly
npm install
npm run build
npm run dev
npm run test:unit
See CONTRIBUTING.md for detailed development guidelines.
Demo
Screenshots and demo video coming soon. Star the repo to get notified!
License
MIT