Multi-Agent AI Collaboration Platform - Chat with multiple AI agents like a team workspace
TeamClaw is an open-source multi-agent platform where multiple AI agents work together in a team environment. Users can chat with agents in channels, mention them with @, and watch them collaborate to complete tasks.
- π€ Multi-Agent Teams - Configure multiple AI agents with different specialties
- π¬ Channel-Based Chat - Group channels and direct messages with agents
- π Parallel Responses - All agents in a channel respond simultaneously
- π§ Smart Filtering - Agents self-decide whether to respond based on context
- π Web Portal - Modern Next.js-based chat interface
- π§ Configurable - Easy JSON-based configuration
- π Background Processing - Async agent response handling
- Node.js 18+
- pnpm 8+
- OpenRouter API key (or other LLM provider)
# Clone the repository
git clone https://github.com/yourusername/teamclaw.git
cd teamclaw
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Configure
cp config/default.json config/local.json
# Edit config/local.json with your API keysEdit config/local.json:
{
"providers": {
"openrouter": {
"apiKey": "your-api-key-here"
}
},
"model": "openai/gpt-4o-mini",
"agents": {
"dev": {
"name": "Dev Agent",
"description": "Expert developer for coding tasks",
"systemPrompt": "You are a senior software developer..."
},
"review": {
"name": "Review Agent",
"description": "Code review specialist",
"systemPrompt": "You are a code review expert..."
}
}
}# Start the web portal
pnpm dev
# Open http://localhost:12345teamclaw/
βββ packages/
β βββ core/ # Message routing and orchestration
β βββ agent/ # Agent instance wrapper
β βββ workflow/ # Workflow agent for complex tasks
β βββ channels/ # Channel adapters (Web, Slack)
β βββ memory/ # Memory storage (LanceDB)
β βββ gateway/ # Next.js web portal
β βββ config/ # Configuration management
βββ config/ # Default configuration files
βββ docs/ # Documentation
- Frontend: Next.js 15, React 19, TypeScript, Tailwind CSS
- Backend: Next.js API routes, tRPC
- AI: Vercel AI SDK, OpenRouter
- Database: JSON file-based (LanceDB planned)
- Build: pnpm, Turborepo
- Click the "+" button next to "Channels"
- Enter a channel name (e.g., "dev-team")
- Select agents to add to the channel
- Click "Create Channel"
- Select a channel from the sidebar
- Type your message in the input box
- Press Enter to send
- All agents in the channel will respond in parallel
- Click on an agent in the "Agents" section
- Start chatting directly with that agent
curl -X POST http://localhost:12345/api/agent-response/trigger \
-H "Content-Type: application/json" \
-d '{
"conversationId": "conv_123",
"content": "Hello agents",
"agentId": "dev",
"memberIds": ["dev", "review"]
}'Each package follows these conventions:
src/index.ts- Main exportssrc/*.ts- Module implementationstest/*.test.ts- Vitest tests
# Run all tests
pnpm test
# Run tests for specific package
cd packages/core && pnpm test- TypeScript strict mode enabled
- No
anytypes - Explicit function return types
- kebab-case for files, PascalCase for classes
See AGENTS.md for detailed development guidelines.
- β Multi-agent chat interface
- β Channel-based conversations
- β Parallel agent responses
- β Web portal
- β Basic configuration
- π² Slack integration
- π² Agent memory/persistence
- π² Tool calling support
- π² Workflow orchestration
- π² LanceDB vector search
- π² File attachments
- π² Agent collaboration protocols
- π² Plugin system
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
pnpm test - Commit:
git commit -m 'feat: add amazing feature' - Push:
git push origin feature/amazing-feature - Open a Pull Request
MIT License - see LICENSE file for details.
- nanobot - Inspiration for lightweight agent architecture
- pi-mono - Agent framework inspiration
- Vercel AI SDK - AI streaming and chat
- OpenRouter - LLM API aggregation
- π Documentation
- π Issue Tracker
- π¬ Discussions
Made with β€οΈ by the TeamClaw community