Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

834 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

Release License Version Stars

中文文档 · 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 10 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

Mode Purpose
chat Fast conversation without filesystem or shell tools.
clarify Grounded questions and a reviewable plan before any code is written.
cowork Full agent: files, shell, browser, search, sub-agents, teams.
code Pair-programming with focused edits and Monaco.
acp Architecture 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:

Surface What it is
Task Board Kanban for agent and human work.
Tasks / Cron Scheduled and one-shot agent jobs.
Resources Project files and artifacts.
Skills / Souls Domain skills and agent personas.
Sync WebDAV sync for ~/.open-cowork/ across machines.
Draw Node-graph canvas for image and video generation pipelines.
CodeGraph Visual repository graph.
SSH Dedicated 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 10 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
Layer Owns
Renderer Views, approvals UI, session presentation. Not the agent loop.
Preload Narrow contextBridge API. No nodeIntegration shortcuts.
Main Window lifetime, worker process, credentials, OS capabilities, messaging plugins, MCP clients, cron assembly, desktop transcript writer.
Native Worker Provider 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 SDK 10 with the Native AOT workload (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, Linux).

Command Description
npm run dev Electron + Vite, hot reload
npm run build Typecheck, then production build
npm run build:win Windows installer
npm run build:win:green Windows no-install zip
npm run build:mac macOS .dmg / zip
npm run build:linux Linux .AppImage / .deb
npm run lint ESLint
npm run typecheck TypeScript (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

620 stars

Watchers

6 watching

Forks

Releases

Packages

Contributors

Languages