Skip to content

Latest commit

History

861 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

OpenCowork

OpenCowork

Open-source desktop platform for multi-agent AI collaboration
Agents that can read your files, run your shell, and work in your repo — on your machine.

ReleaseLicenseVersionStars

中文文档 · Why · Features · Architecture · Quick Start · Download · Docs

OpenCowork logo and desktop app


Why OpenCowork?

Most AI chat windows are sealed off from your actual work. You copy files in, paste logs out, and lose context every time you switch tools.

OpenCowork runs the agent next to the work:

  • Local filesystem and shell — read, write, edit, and run commands in the project you already have open.
  • The agent explores — CodeGraph, search, and tools gather context instead of waiting for you to paste it.
  • You stay in control — tool calls are visible; approvals stay in the loop.
  • One runtime, two surfaces — the desktop app and the cowork CLI share the same Native Worker, providers, and ~/.open-cowork/ data.

CoWork — local files and keyboard, agent on your machine

OpenCowork desktop — agent session with tool calls


Key Features

Multiple CoWork agents around a shared repository

Multi-agent by design. Sub-agents, Agent Teams, plan mode, and session goals — not a single chat box pretending to be a team.

CoWork hub connected to eight messaging channels

Work where the messages are. Feishu, DingTalk, Discord, QQ, Telegram, WeCom, WeChat Official, and WhatsApp.

Runtime

  • Electron + .NET Native Worker — React 19 UI, a narrow Preload bridge, Electron Main as host gateway, and a per-platform .NET 11 Native AOT worker that owns the agent loop.
  • Worker-authoritative loop — provider streaming, tool execution, approvals, cancellation, SQLite, and CodeGraph indexing live in the worker. Main supervises the process; the renderer presents state.
  • SSH — operate on remote hosts with an integrated xterm.js terminal.

Five session modes

ModePurpose
chatFast conversation without filesystem or shell tools.
clarifyGrounded questions and a reviewable plan before any code is written.
coworkFull agent: files, shell, browser, search, sub-agents, teams.
codePair-programming with focused edits and Monaco.
acpArchitecture lead: clarify, design, decompose, and delegate.

Toolbox

  • Files & shell — Read, Write, Edit, Glob, Grep, Bash (local and SSH).
  • Browser — navigate, snapshot, click, type, extract.
  • Tasks & teams — TaskCreate / TaskUpdate, parallel Task sub-agents, TeamCreate / SendMessage / TeamStatus.
  • Plan mode — EnterPlanMode → write the plan → ExitPlanMode.
  • Goals & memory — session goals with token budgets; layered SOUL.md / USER.md / MEMORY.md plus per-project .agents/ overrides.
  • Cron — recurring or one-shot background runs, delivered to messaging channels.
  • MCP — stdio, SSE, and streamable-HTTP servers; enabled tools are exposed to the agent.
  • Skills & extensions — Skills Market plus bundled extensions (Product Design, Creative Production, HyperFrames, Template Creator, and more).
  • CodeGraph — on-demand tree-sitter indexing in the worker, with explore / search / callers / impact tools.

Workspace beyond chat

The nav rail is a workplace, not only a transcript:

SurfaceWhat it is
Task BoardKanban for agent and human work.
Tasks / CronScheduled and one-shot agent jobs.
ResourcesProject files and artifacts.
Skills / SoulsDomain skills and agent personas.
SyncWebDAV sync for ~/.open-cowork/ across machines.
DrawNode-graph canvas for image and video generation pipelines.
CodeGraphVisual repository graph.
SSHDedicated remote terminal window.

Optional desktop pet (XP, skins, away tracking) and lifecycle hooks sit beside the same runtime.

Internationalization

16 languages via i18next: English, Chinese, Japanese, Korean, French, German, Spanish, Portuguese, Russian, Arabic, Italian, Dutch, Turkish, Vietnamese, Thai, and Indonesian.


Architecture

CoWork on a four-layer runtime stack

Renderer (React 19) ←→ Preload ←→ Main (host gateway) ←→ Native Worker (.NET 11 AOT)
UI, approvals, windows, IPC, agent loop,
session UX channels, MCP, SSH, tools, SQLite,
cron, worker supervisor CodeGraph, jobs
CLI (Ink TUI) ─────────────────────────────────────────────→ same Native Worker
LayerOwns
RendererViews, approvals UI, session presentation. Not the agent loop.
PreloadNarrow contextBridge API. No nodeIntegration shortcuts.
MainWindow lifetime, worker process, credentials, OS capabilities, messaging plugins, MCP clients, cron assembly, desktop transcript writer.
Native WorkerProvider loop, tool catalog and execution, approval policy, cancellation, SQLite, CodeGraph, durable jobs and events.

Desktop and CLI are two clients of one worker. There is no second JavaScript agent runtime.

Target boundaries: docs/architecture/agent-runtime-boundaries.md. Decision record: docs/adr/0001-agent-runtime-authority.md.


Terminal CLI

cowork CLI — install, connect Native Worker, run tools

The CLI is a terminal UI over the same Native Worker. It does not keep a second provider store or a second agent loop.

npm install -g @aidotnet/opencowork
cowork

opencowork is an alias for cowork. Credentials, models, agents, and settings are shared with the desktop app under ~/.open-cowork/.

cowork --doctor
cowork --help
cowork --language zh

Requires Node.js ≥ 18. See cli/README.md for keys, /model, Plan mode, and worker overrides.


Quick Start

Desktop from source: Node.js ≥ 18, npm ≥ 9, and the .NET 11 SDK Preview 7 or newer with the Native AOT prerequisites (dotnet on PATH). Clone with submodules — the native worker will not build without sidecars/codegraph.

git clone --recurse-submodules https://github.com/AIDotNet/OpenCowork.git
cd OpenCowork
npm install
npm run dev

Packaged builds: GitHub Releases (Windows installer / green zip, macOS 14 or newer, Linux).

CommandDescription
npm run devElectron + Vite, hot reload
npm run buildTypecheck, then production build
npm run build:winWindows installer
npm run build:win:greenWindows no-install zip
npm run build:macmacOS .dmg / zip
npm run build:linuxLinux .AppImage / .deb
npm run lintESLint
npm run typecheckTypeScript (main, renderer, CLI)

Data directory: ~/.open-cowork/ — database, providers, agents, skills, commands, and prompts. Do not commit it.


Use Cases

  • Autonomous coding — refactor, debug, and land changes in the workspace you already trust.
  • Scheduled ops — cron agents watch logs or health and report to Feishu / DingTalk / Discord.
  • Research and reports — browse, scrape, process CSV/Excel, write the document.
  • Remote ops — SSH into a host without leaving the app.
  • Design and media — Draw pipelines, Product Design / Creative Production extensions, HyperFrames.

Documentation

Product docs: open-cowork.dev.

In-repo guides: AGENTS.md (conventions), cli/README.md (terminal client), docs/architecture/agent-runtime-boundaries.md (runtime authority).


Contributing

Contributions are welcome. AGENTS.md covers layout, coding style, and commit messages (feat(scope): …).

Please run npm run typecheck and npm run lint before opening a PR.

Special Thanks

RoutinAI — unified LLM API gateway for GPT, Claude, Gemini, and 100+ other models.

GeneralUpdate — cross-platform auto-update for .NET applications.

Sponsors

License

Apache License 2.0


If OpenCowork helps you, star the repo.
Made by the AIDotNet team.

About

Open Cowork - Opensource Claude Cowork for Windows & macOS & Linux.

Resources

Stars

627 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages