Open-source desktop platform for multi-agent collaboration
Run AI agents locally with real tools, parallel teammates, and messaging plugins.
中文 • Overview • Capabilities • Architecture • Quick Start • Development • Star History
OpenCowork is a desktop AI agent collaboration workspace built with Electron, React, and TypeScript. It is designed for local, tool-enabled automation rather than chat-only workflows. Agents can read and write files, run shell commands, search code, schedule tasks, and coordinate with teammates.
Key ideas:
- Local-first execution with explicit approval for risky actions.
- Multi-agent teamwork to split work and run tasks in parallel.
- Plugin-based messaging integrations for workplace chat.
- Multi-agent loop with lead agent orchestration and parallel teammates.
- Tool system for file I/O, shell, search, task tracking, and previews.
- Subagent presets and skill modules loaded from Markdown definitions.
- Messaging plugins for Feishu/Lark, DingTalk, Telegram, Discord, WhatsApp, and WeCom.
- Persistent scheduling with cron or interval-based dispatch.
- MCP integration for external tool servers and resources.
- Local storage with SQLite and user data under
~/.open-cowork/.
OpenCowork follows a three-process Electron architecture.
graph TB
subgraph "Renderer"
A[React UI] --> B[Agent Loop]
B --> C[Tool System]
C --> D[State Stores]
end
subgraph "Preload"
E[contextBridge]
end
subgraph "Main"
F[SQLite]
G[File System]
H[Shell]
I[API Proxy]
J[Plugins]
end
A -.->|window.electron| E
E -.->|IPC invoke/send| F
E -.->|IPC invoke/send| G
E -.->|IPC invoke/send| H
E -.->|IPC invoke/send| I
E -.->|IPC invoke/send| J
Prerequisites:
- Node.js >= 18
- npm >= 9
- Git
Install and run:
git clone https://github.com/AIDotNet/OpenCowork.git
cd OpenCowork
npm install
npm run devCommon commands:
npm run lint
npm run typecheck
npm run build
npm run build:win
npm run build:mac
npm run build:linux- Open Settings and add your AI provider API key.
- Select a default model for the app.
- Enable messaging plugins and configure their tokens if needed.
src/main Electron main process, IPC, plugins, cron, updater
src/preload Secure bridge APIs exposed to the renderer
src/renderer React UI, stores, hooks, and agent logic
resources Built-in agents and skills packaged with the app
docs Documentation site (Next.js)
User data lives in ~/.open-cowork/ and includes data.db, settings.json, and config.json.
Add a new tool:
- Create a ToolHandler in
src/renderer/src/lib/tools/. - Register it in
src/renderer/src/lib/tools/index.ts.
Add a SubAgent:
- Create a Markdown definition file with the agent prompt.
- Place it in
~/.open-cowork/agents/orresources/agents/.
Add a skill:
- Create a skill directory with
SKILL.mdand optional scripts. - Place it in
~/.open-cowork/skills/orresources/skills/.
- Code review, refactors, and debugging with specialized subagents.
- Project planning, task breakdown, and milestone tracking.
- Data analysis and report generation on local datasets.
- Scheduled reports and message delivery via plugins.
- Fork the repository.
- Create a feature branch.
- Commit changes with a concise, imperative subject.
- Open a pull request with summary and verification steps.
Licensed under the Apache License 2.0.
If this project helps you, please give it a star.
Made by the OpenCowork Team