cc-dev-team
v0.7.0
Published
Multi-agent orchestration system for software development with Claude Code
Downloads
21
Readme
CC Dev Team
A multi-agent orchestration system that enables teams of AI agents to collaborate on software development tasks. Built on top of Claude Code, it allows a human developer to work with a Product Manager agent that coordinates specialized sub-agents (Architect, Engineer, QA, etc.) running in parallel Claude Code sessions.

Features
- Multi-Agent Collaboration - Specialized AI agents work together: PM, Architect, Engineer, QA, UI/UX Expert, Code Auditor, and Docs Auditor
- Real-Time Dashboard - Monitor all agents, view their terminals, and watch team communication in real-time
- Headless Agent Mode - All agents run in headless mode, controllable from the web dashboard
- Persistent Message History - All inter-agent communication stored in SQLite for debugging and replay
- Extensible Architecture - Easy to add new agent roles and customize behavior
- Claude Code Integration - Each agent is a full Claude Code session with access to all its capabilities
- Auto-Updating Status Bar - Each agent session has a status bar that describes the current work being done, and links to the relevant GitHub issue when work is issue-related
- File Linking - Click on any file path mentioned in agent terminal output and it opens in the host machine's default editor
- Multi-Project Tabs - Work on multiple projects simultaneously with tabbed sessions, all in the same dashboard interface
How It Works
┌───────────────────────────────────────────────────────────────┐
│ HUMAN DEVELOPER │
│ (Dashboard) │
└───────────────────────────────────────────────────────────────┘
│
▼
┌───────────────────┐
│ PRODUCT MANAGER │
│ (Claude Code) │
│ │
│ • Human interface │
│ • Delegates work │
│ • Approves plans │
└───────────────────┘
│
┌────────────────┬────────────────┬────────┴───────┬────────────────┬────────────────┐
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
┌───────────────┐┌───────────────┐┌───────────────┐┌───────────────┐┌───────────────┐┌───────────────┐
│ ARCHITECT ││ ENGINEER ││ QA ENGINEER ││ UI/UX EXPERT ││ CODE AUDITOR ││ DOCS AUDITOR │
│ ││ ││ ││ ││ ││ │
│ Design ││ Implement ││ Test & Verify ││ Design Review ││ Code Review ││ Doc Quality │
└───────────────┘└───────────────┘└───────────────┘└───────────────┘└───────────────┘└───────────────┘
│ │ │ │ │ │
└────────────────┴────────────────┴────────┬───────┴────────────────┴────────────────┘
│
┌───────────────────┐
│ MESSAGE BROKER │
│ (Socket.io) │
└───────────────────┘Prerequisites
- Node.js 18+
- Bun - For the dashboard
- Claude Code CLI - Installed and authenticated
- macOS (Apple Silicon) - Other platforms may require PTY package changes
Quick Start
Run this single command to install and start:
bunx @hoverlover/cc-dev-teamThat's it! This will:
- Check prerequisites
- Install to
~/.cc-dev-team(first run only) - Check for updates (subsequent runs)
- Start the broker, dashboard, and all agents
Then open http://localhost:3101 to access the dashboard.
Manual Installation
If you prefer to clone the repository manually:
# Clone the repository
git clone https://github.com/hoverlover/cc-dev-team.git
cd cc-dev-team
# Run the install script
./scripts/install.sh
# Start the orchestrator
./start-orchestrator.shFor Developers
If you're contributing to this project, use bun dev instead of the install script:
git clone https://github.com/hoverlover/cc-dev-team.git
cd cc-dev-team
bun dev # Generates settings and starts everythingWhy Settings Are Generated
Claude Code requires absolute paths for hooks and permissions in settings.json files. Since these paths differ on every machine, we can't commit them to git. Instead:
- Templates (
agents/*/.claude/settings.template.json) are tracked in git with placeholders - On startup,
bun devreplaces placeholders with your actual paths:__ORCHESTRATOR_DIR__→ your cloned directory__HOME_DIR__→ your home directory
- Generated
settings.jsonfiles are gitignored
This means settings auto-regenerate on every startup, staying in sync with template changes.
See CLAUDE.md for full architecture details and the development workflow.
Starting Components Individually
For development or debugging, you can start components separately:
# Terminal 1: Start the message broker
./scripts/start-broker.sh
# Terminal 2: Start the dashboard
./scripts/start-dashboard.sh
# Terminal 3: Start the PM (from your project directory)
cd /path/to/your/project
~/.cc-dev-team/scripts/start-pm.sh
# Terminal 4+: Start sub-agents
~/.cc-dev-team/scripts/start-agent.sh architect
~/.cc-dev-team/scripts/start-agent.sh engineerUsage
Once started, open the dashboard at http://localhost:3101 and give the PM a task:
> "Let's add OAuth authentication with Google and GitHub"The PM will coordinate with the team to plan, implement, and verify the feature.
Direct Agent Interaction
While the PM handles coordination, you can talk directly to any agent by selecting their terminal in the dashboard and typing. This is useful for:
- Deep technical discussions with the Architect about design trade-offs
- Debugging sessions with the Engineer on specific implementation details
- Clarifying test requirements with QA
- Design feedback with the UI/UX Expert
Each agent is a full Claude Code session with complete context of the project and conversation history.
Dashboard

The web dashboard provides:
- Agents Panel - See all agents with real-time status (Idle, Thinking, Working)
- Terminal View - Full interactive terminal for each agent
- Messages View - Team chat showing all inter-agent communication
Agent Roles
| Agent | Role | Responsibilities | |-------|------|------------------| | Product Manager | Orchestrator | Human interface, task delegation, plan approval | | Architect | Design Lead | System design, architecture decisions, specifications | | Engineer | Implementation | Code writing, feature development | | QA Engineer | Quality | Testing, verification, bug reporting | | Code Auditor | Review | Security review, code quality, best practices | | UI/UX Expert | Design | User experience, interface design, accessibility | | Docs Auditor | Documentation | Documentation quality gate, drift detection, doc updates |
Communication Protocol
Agents communicate through WebSocket messages via the broker:
- Direct messages:
agent → specific agent - Broadcasts:
agent → team(all agents) - Message types:
PROJECT_INIT,TASK_ASSIGNMENT,PROPOSAL,QUESTION,HANDOFF,RESPONSE, etc.
All messages are persisted to SQLite for history and debugging.
Typical Workflow
- Human tells PM what to build
- PM breaks down the task and assigns to team
- Architect creates technical design
- PM presents plan to human for approval
- Human approves (or requests changes)
- Engineer implements the feature
- QA tests and verifies
- Code Auditor reviews for quality/security
- Docs Auditor verifies documentation
- PM reports completion to human
Project Structure
cc-dev-team/
├── agents/ # Agent personas and configurations
│ ├── pm/ # Product Manager
│ ├── architect/ # System Architect
│ ├── engineer/ # Software Engineer
│ ├── qa-engineer/ # QA Engineer
│ ├── code-auditor/ # Code Auditor
│ ├── docs-auditor/ # Docs Auditor
│ └── ui-ux/ # UI/UX Expert
├── broker/ # Message broker (Socket.io server)
├── dashboard/ # Web dashboard (Next.js + TypeScript)
├── hooks/ # Claude Code hooks for message notification
├── installer/ # npm/bunx installer
├── scripts/ # Startup and utility scripts
├── skills/ # Agent workflow skills
├── tests/ # Test suite
├── tools/ # Agent tools (send-msg, get-roster, etc.)
├── data/ # SQLite database for messages
├── docs/ # Documentation and images
├── logs/ # Agent logs
├── start-orchestrator.sh # Main entry point
├── CLAUDE.md # Project instructions
├── vitest.config.js # Test configuration
├── package.json # Package manifest
└── bun.lock # Dependency lockfileConfiguration
Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| BROKER_PORT | 3100 | Message broker port |
| BROKER_URL | http://localhost:3100 | Broker URL for agents |
| NEXT_PUBLIC_BROKER_URL | http://localhost:3100 | Broker URL for dashboard |
Agent Tools
These tools are available to Claude Code agents for inter-agent communication:
send-msg
Send messages between agents:
send-msg <from> <to> <type> '<content>'
# Examples:
send-msg pm team PROJECT_INIT '{"description":"Add OAuth"}'
send-msg architect engineer TASK_ASSIGNMENT '{"task":"implement login"}'get-roster
Check which agents are online:
get-rosterset-issue-bar
Update the dashboard task display for an agent:
set-issue-bar 'Working on auth flow'
set-issue-bar --issue 42spawn-agent
Launch a new agent in the dashboard:
spawn-agent engineer
spawn-agent qa-engineersync-workspace
Sync all agents to a worktree after switching branches:
sync-workspace engineer switch /path/to/worktree
sync-workspace engineer remove /path/to/original/projectrename-sessions
Rename agent sessions for organization:
rename-sessions pm issue-num worktree-nameSkills
Agent workflow skills provide interactive, multi-step capabilities:
| Skill | Used By | Purpose |
|-------|---------|---------|
| /new-feature | PM | Create GitHub issues with user stories |
| /smart-commit | Engineer | Create logical atomic commits |
| /dev-server | Engineer | Manage development servers |
| /worktree | Engineer | Manage git worktrees |
| /wireframe | UI/UX | Generate visual HTML wireframes |
Troubleshooting
Broker not running
⚠️ Broker not detected at localhost:3100Start the broker first: ./scripts/start-broker.sh
Agent not receiving messages
- Check broker is running
- Verify agent shows as "online" in dashboard
- Check
logs/directory for agent-specific logs
Dashboard not connecting
- Ensure broker is running on port 3100
- Check browser console for WebSocket errors
- Verify
NEXT_PUBLIC_BROKER_URLif using custom ports
Platform Support
Currently tested on macOS (Apple Silicon). The PTY wrapper uses platform-specific packages:
- macOS ARM64:
@lydell/node-pty-darwin-arm64
For other platforms, update package.json with the appropriate node-pty variant and modify tools/claude-wrapper.js accordingly.
Contributing
Contributions are welcome! Please feel free to submit issues and pull requests.
License
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
Acknowledgments
- Built on Claude Code by Anthropic
- Dashboard powered by Next.js and xterm.js
