Teamclaw is an open-source desktop application for building, coordinating, and operating a team of AI assistants on your own machine. Each assistant has its own persona, memory, skills, tools, and IM bot bindings, so you can run specialized agents around the clock instead of squeezing everything into a single chat.
It is built around Anthropic Claude. If you already use Claude Code, Teamclaw can reuse its local configuration and MCP setup, but Claude Code is optional rather than required.
- Download the latest package from Releases.
- Launch Teamclaw and finish the onboarding flow.
- Configure Anthropic access inside Teamclaw, or optionally reuse an existing Claude Code setup.
Prerequisites:
- Bun
- Node.js 20+ recommended for packaging and sidecar builds
npmonly if you want to package the app or build thesrc-apisidecar- Optional: Claude Code if you want Teamclaw to reuse its local configuration and MCP servers
For everyday local development, Bun is enough:
bun install
bun run devUseful verification commands:
bun run test
bun run buildRelease packaging commands also build the bundled sidecar API and CLI:
bun run dist:mac
bun run dist:win
bun run dist:linuxCreate multiple AI assistants, each with its own identity:
- Custom persona: name, avatar, personality, core values, cognitive style
- Per-assistant skills and MCP servers (Model Context Protocol tool servers)
- Scoped memory: each assistant keeps isolated memory
- Heartbeat: periodic self-check with adaptive intervals
- Streaming output with reasoning visualization
- Markdown rendering with syntax-highlighted code
- Collapsible tool call process groups
- Permission control for sensitive tool calls
- Image and file input via paste, select, or drag-and-drop
- Session management with SQLite persistence
Connect any assistant to your team's messaging platform:
| Platform | Capabilities |
|---|---|
| DingTalk | Private and group chat, AI streaming cards, media messages, proactive push, allowlist policies |
| Telegram | Private and group chat, @mention control, proactive push, proxy support |
| Feishu / Lark | Group chat, proactive push, auto-reconnect |
Each bot inherits the assistant's persona, skills, and memory. DM/group policies and owner-based proactive notifications are supported.
Multi-layer structured memory:
| Layer | Purpose |
|---|---|
| L0 - Abstract | Root index for fast context retrieval |
| L1 - Insights | Monthly distilled insights and structured lessons |
| L2 - Daily | Raw daily logs and session records |
| MEMORY.md | Long-term memory with P0/P1/P2 lifecycle |
| SESSION-STATE.md | Cross-session working buffer |
| SOPs | Self-growing standard operating procedures |
| Scoped | Per-assistant isolated memory |
- Auto-extraction of experience candidates from completed sessions
- Review workflow:
draft -> verified -> archived - Manual knowledge documents
- AI-powered structured refinement for scenario, steps, result, and risk
| Type | Description |
|---|---|
| Once | Run at a specific time |
| Interval | Repeat every N minutes, hours, days, or weeks |
| Daily | Fixed time, configurable days of week |
| Heartbeat | Periodic self-check with adaptive intervals |
| Hook | Triggered by startup or session.complete events |
Hook tasks support filters by assistant, title pattern, and error-only triggers.
Define persistent objectives pursued across multiple sessions:
- Configurable retry interval and max runs
- Session-linked progress log with summaries and next steps
- Auto-pause after consecutive failures
- Completion notifications via events
Structured multi-stage workflows defined in HAND.toml:
- ReactFlow-based visual workflow editor
- Per-stage goals, checklist items, tools, and MCP servers
- AI generation from natural language descriptions
- Plan table with
pending,in_progress,completed, andfailedstates
Every assistant has access to shared MCP tools:
| Category | Tools |
|---|---|
| Scheduling | create_scheduled_task, list_scheduled_tasks, delete_scheduled_task |
| Web | web_search, web_fetch |
| News | news_latest, news_search |
| Social | twitter_user_tweets, twitter_search |
| SOP | save_sop, list_sops, read_sop, search_sops |
| Memory | distill_memory, read_document, append_daily_memory |
| Desktop | take_screenshot, screen_analyze, desktop_control, clipboard |
| Process | process_control |
| System | system_info |
| Plan | upsert_plan_item, complete_plan_item, fail_plan_item |
| Notification | send_notification (DingTalk / Telegram / Feishu) |
- Skill catalog with categories and tags
- GUI for adding, configuring, and removing MCP servers
- Per-assistant skill assignment
- AI-powered skill tag suggestions
- Global shortcut (default
Alt+Space) for floating input anywhere - Assistant and skill picker
- Seamless handoff to the main window
- Native Electron app for macOS, Windows, and Linux
- System tray with click-to-restore
- Platform-adaptive title bar
- Built-in auto-updater
- Onboarding wizard for first-run setup
- Environment validation and connectivity checks
Teamclaw can reuse configuration from Claude Code when it is present:
~/.claude/settings.json
This reuse is optional. Anthropic credentials configured inside Teamclaw take priority over ~/.claude/settings.json, and MCP servers plus related settings from Claude Code can also be reused when available.
Issues and pull requests are welcome.
For larger changes, please open an issue or discussion first so the direction stays aligned. As the project is being opened up, you will still see some legacy names such as vk-cowork and AI Team in parts of the codebase and packaging. They are historical internal identifiers and will be cleaned up incrementally.
| Layer | Technology |
|---|---|
| Framework | Electron 39 |
| Frontend | React 19, Tailwind CSS 4 |
| State | Zustand |
| Database | better-sqlite3 (WAL mode) |
| AI | Claude Agent SDK |
| API | Hono (embedded) |
| Build | Vite, electron-builder |
Licensed under the Apache License 2.0. See LICENSE.


