accomplish-ai/coworkerPublic

Coworker is the open source Al coworker that lives on your desktop

AI summary: An autonomous AI agent designed to integrate with team workflows and perform continuous background tasks.

Stars
10.9K
+3 today
Forks
1.3K
Watchers
52
Open issues
11
Open PRs
11
Contributors
~38
Commits
535
Branches
351

TypeScriptMITCreated Jan 14, 2026Last push 23d agoLatest release @accomplish_ai/agent-core@0.4.0+6 stars this week+9 this month

Star history

since Jun 7, 2026
05K10KJun 2026Jun 2026Jul 2026Aug 2026
10.9K stars as of Aug 7, 2026, tracked back to Jun 7, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Signals and awards

derived from tracked data
  • Widely adopted

    10,940 stars

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What coworker does

Coworker is an autonomous AI agent that acts as a virtual team member. It connects to repositories, issue trackers, and communication channels to autonomously review PRs, triage bugs, and answer team questions. Unlike on-demand assistants, it operates continuously in the background, proactively suggesting improvements and managing routine operational tasks.

Engineering teams and technical managers looking to automate routine software development lifecycle tasks.

  • Continuous Operation: Runs autonomously in the background without requiring explicit prompts.
  • Deep Integration: Connects seamlessly to GitHub, Jira, Slack, and Notion.
  • Proactive PR Reviews: Automatically reviews code changes for style, bugs, and security issues.
  • Issue Triage: Analyzes incoming bug reports, assigns labels, and suggests fixes.
  • Knowledge Base Answering: Answers team questions by querying internal documentation.

Where teams use it

Automated Code Review

Catching common bugs and stylistic errors before human review.

Support Triage

Automatically categorizing and routing incoming customer issues.

Onboarding Assistant

Helping new hires find internal documentation and understand the codebase.

Release Management

Drafting release notes and notifying channels about deployments.

Getting started: npm install -g @accomplish/coworker

README

main branch

English | 中文 | 日本語 | 한국어 | Русский | Español | Türkçe | العربية | Bahasa Indonesia | தமிழ் | हिन्दी

MIT License GitHub Stars GitHub Issues Last Commit Download for macOS (Apple Silicon) Download for macOS (Intel) Download for Windows 11 Download for Linux (ARM64) Download for Linux (x64) Download for Linux (.deb x64) Discord

Coworker™ - Open Source AI Desktop Agent

Coworker is an open source AI desktop agent that automates file management, document creation, and browser tasks locally on your machine. Bring your own API keys (OpenAI, Anthropic, Google, xAI) or run local models via Ollama.

Runs locally on your machine. Bring your own API keys or local models. MIT licensed.

Download for Mac (Apple Silicon) · Download for Mac (Intel) · Download for Windows 11 · Download for Linux (ARM64) · Download for Linux (x64) · Download for Linux (.deb x64) · Coworker releases




What makes it different

🖥️ It runs locally

  • Your files stay on your machine
  • You decide which folders it can touch
  • Nothing gets sent to Coworker (or anyone else)

🔑 You bring your own AI

  • Use your own API key (OpenAI, Anthropic, etc.)
  • Or run with Ollama (no API key needed)
  • No subscription, no upsell
  • It's a tool—not a service

📖 It's open source

  • Every line of code is on GitHub
  • MIT licensed
  • Change it, fork it, break it, fix it

⚡ It acts, not just chats

  • File management
  • Document creation
  • Custom automations
  • Skill learning



What it actually does

📁 File Management ✍️ Document Writing 🔗 Tool Connections
Sort, rename, and move files based on content or rules you give it Prompt it to write, summarize, or rewrite documents Works with Notion, Google Drive, Dropbox, and more (through local APIs)
⚙️ Custom Skills 🛡️ Full Control
Define repeatable workflows, save them as skills You approve every action. You can see logs. You can stop it anytime.

Use cases

  • Clean up messy folders by project, file type, or date
  • Draft, summarize, and rewrite docs, reports, and meeting notes
  • Automate browser workflows like research and form entry
  • Generate weekly updates from files and notes
  • Prepare meeting materials from docs and calendars

Supported models and providers

  • Anthropic (Claude)
  • OpenAI (GPT)
  • Google AI (Gemini)
  • xAI (Grok)
  • DeepSeek
  • Moonshot AI (Kimi)
  • Z.AI (GLM)
  • MiniMax
  • Venice.ai
  • Amazon Bedrock
  • Azure Foundry
  • OpenRouter
  • LiteLLM
  • Ollama (local models)
  • LM Studio (local models)

Privacy and local-first

Coworker runs locally on your machine. Your files stay on your device, and you choose which folders it can access.


System requirements

  • macOS (Apple Silicon)
  • macOS (Intel)
  • Windows 11
  • Ubuntu (ARM64)
  • Ubuntu (x64)



How to use it

Takes 2 minutes to set up.

Step Action Details
1 Install the App Download the DMG and drag it into Applications
2 Connect Your AI Use your own Google, OpenAI, Anthropic (or other) API key — or sign in with ChatGPT (Plus/Pro). No subscriptions.
3 Give It Access Choose which folders it can see. You stay in control.
4 Start Working Ask it to summarize a doc, clean a folder, or create a report. You approve everything.





Screenshots and Demo

A quick look at Coworker on macOS, plus a short demo video.

Coworker demo - AI agent automating file management and browser tasks

Watch the demo →


FAQ

Does Coworker run locally?

Yes. Coworker runs locally on your machine and you control which folders it can access.

Do I need an API key?
You can use your own API keys (OpenAI, Anthropic, Google, xAI, etc.) or run local models via Ollama.

Is Coworker free?

Yes. Coworker is open source and MIT licensed.

Which platforms are supported? macOS (Apple Silicon), macOS (Intel), Windows 11, Ubuntu ARM64, and Ubuntu x64 are supported.




Development

pnpm install
pnpm dev

That's it.

Prerequisites
  • Node.js 20+
  • pnpm 9+
All Commands
Command Description
pnpm dev Run desktop app in dev mode
pnpm dev:clean Dev mode with clean start
pnpm build Build all workspaces
pnpm build:desktop Build desktop app only
pnpm -F @coworker/desktop package:win Build Windows installer (x64)
pnpm -F @coworker/desktop package:linux Build Linux artifacts (AppImage + deb)
pnpm lint TypeScript checks
pnpm typecheck Type validation
pnpm -F @coworker/desktop test:e2e Playwright E2E tests
Environment Variables
Variable Description
CLEAN_START=1 Clear all stored data on app start
E2E_SKIP_AUTH=1 Skip onboarding flow (for testing)
Architecture
apps/
  desktop/        # Electron app (main + preload + renderer)
packages/
  shared/         # Shared TypeScript types

The desktop app uses Electron with a React UI bundled via Vite. A long-lived apps/daemon background process owns task execution — it spawns OpenCode opencode serve children and talks to them via @opencode-ai/sdk. API keys are stored securely in the OS keychain.

See CLAUDE.md for detailed architecture documentation.




Contributing

Contributions welcome! Feel free to open a PR.

# Fork → Clone → Branch → Commit → Push → PR
git checkout -b feature/amazing-feature
git commit -m 'Add amazing feature'
git push origin feature/amazing-feature



Coworker releases · Issues · Twitter


MIT License


Keywords: AI agent, AI desktop agent, desktop automation, file management, document creation, browser automation, local-first, macOS, linux, ubuntu, privacy-first, open source, Electron, computer use, AI assistant, workflow automation, OpenAI, Anthropic, Google, xAI, Claude, GPT-4, Ollama

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 12

Releases and announcements

15 total
  1. @accomplish_ai/agent-core@0.4.0@accomplish_ai/agent-core@0.4.0Feb 16, 2026

    ### Minor Changes - f954f59: Add `needs_planning` classification to `start_task` tool. The agent still calls `start_task` for every message (preserving discipline), but now sets `needs_planning: false` for simple messages like greetings and knowledge questions. When false, the adapter skips plan card emission and todo creation, and the completion enforcer treats it as a conversational turn — no continuation prompts needed. ### Patch Changes - 68094c9: refactor(agent-core): remove stale duplicate files from opencode/ directory Deleted 6 dead files left behind after the encapsulation refactor: opencode/task-manager.ts, opencode/adapter.ts, opencode/stream-parser.ts, opencode/log-watcher.ts, opencode/index.ts (barrel), and internal/classes/CompletionEnforcer.ts. The canonical implementations live in internal/classes/ and are used via the factory pattern. Re-pointed test imports to the active internal/classes/ sources. No behavior changes; public API unchanged. - 0c555bf: fix(agent-core): serialize non-string error values in TaskResult to prevent downstream TypeError The stream parser casts JSON.parse output to OpenCodeMessage without runtime validat

  2. @accomplish_ai/agent-core@0.3.3@accomplish_ai/agent-core@0.3.3Feb 15, 2026

    ### Patch Changes - 934b96a: fix(agent-core): prevent infinite completion loop on incomplete todos Integrate incomplete-todos feedback into getPartialContinuationPrompt so the agent knows exactly which items are unresolved and to call todowrite. Reduce default maxContinuationAttempts from 50 to 10 as a safety net. Add continuationPrompt to debug logging for observability.

  3. @accomplish_ai/agent-core@0.3.2@accomplish_ai/agent-core@0.3.2Feb 12, 2026

    ### Patch Changes - 3ae6718: feat(dev-browser-mcp): improve browser interaction reliability with coordinate fallbacks - Add canvas app detection (Google Docs, Figma, etc.) with automatic coordinate-based interactions - Add coordinate fallback for click, type, and hover when DOM interactions fail - Add ARIA tree pruning to remove useless wrapper nodes and reduce snapshot noise - Add configurable bounding box annotations in snapshot output (includeBoundingBoxes option) - Fix Playwright silently hijacking downloads by resetting Browser.setDownloadBehavior - Fix 0x0 viewport detection with window.innerWidth/innerHeight fallback - Set default 1280x720 viewport for new pages

  4. @accomplish_ai/agent-core@0.3.1@accomplish_ai/agent-core@0.3.1Feb 9, 2026

    ### Patch Changes - 7ab95c7: Auto-detect MCP entry point by checking if source files exist on disk instead of relying on ACCOMPLISH_BUNDLED_MCP env var

  5. @accomplish_ai/agent-core@0.3.0@accomplish_ai/agent-core@0.3.0Feb 9, 2026

    ### Minor Changes - ed82a03: Add `BrowserConfig` option to config-generator with three modes: `builtin` (default, existing behavior), `remote` (connect to any CDP endpoint), and `none` (disable browser tools). Extract connection logic from dev-browser-mcp into a dedicated module with switchable strategies.

Code frequency

additions and deletions
+183.2K-183.2KWeek of 2026-01-11: +58,055 linesWeek of 2026-01-11: -4,899 linesWeek of 2026-01-18: +33,756 linesWeek of 2026-01-18: -6,671 linesWeek of 2026-01-25: +15,828 linesWeek of 2026-01-25: -9,775 linesWeek of 2026-02-01: +183,224 linesWeek of 2026-02-01: -115,994 linesWeek of 2026-02-08: +12,474 linesWeek of 2026-02-08: -2,542 linesWeek of 2026-02-15: +48,515 linesWeek of 2026-02-15: -45,277 linesWeek of 2026-02-22: +5,046 linesWeek of 2026-02-22: -2,629 linesWeek of 2026-03-01: +2 linesWeek of 2026-03-01: -2 linesWeek of 2026-03-08: +5,796 linesWeek of 2026-03-08: -1,618 linesWeek of 2026-03-15: +15,548 linesWeek of 2026-03-15: -3,337 linesWeek of 2026-03-22: +32,027 linesWeek of 2026-03-22: -6,281 linesWeek of 2026-03-29: +29,404 linesWeek of 2026-03-29: -21,850 linesWeek of 2026-04-05: +12,897 linesWeek of 2026-04-05: -4,157 linesWeek of 2026-04-12: +39,900 linesWeek of 2026-04-12: -27,326 linesWeek of 2026-04-19: +3,537 linesWeek of 2026-04-19: -2,628 linesWeek of 2026-04-26: +0 linesWeek of 2026-04-26: -0 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +2 linesWeek of 2026-05-10: -6 linesWeek of 2026-05-17: +0 linesWeek of 2026-05-17: -0 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +486 linesWeek of 2026-06-07: -526 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +50 linesWeek of 2026-06-21: -90 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +0 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesJan 11, 2026Jul 26, 2026
+496.5K lines added, -255.6K removed over the last year.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 3 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 2 commitsSun 8:00 — 0 commitsSun 9:00 — 6 commitsSun 10:00 — 12 commitsSun 11:00 — 7 commitsSun 12:00 — 3 commitsSun 13:00 — 7 commitsSun 14:00 — 10 commitsSun 15:00 — 15 commitsSun 16:00 — 10 commitsSun 17:00 — 5 commitsSun 18:00 — 6 commitsSun 19:00 — 6 commitsSun 20:00 — 4 commitsSun 21:00 — 4 commitsSun 22:00 — 1 commitsSun 23:00 — 2 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 1 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 2 commitsMon 7:00 — 0 commitsMon 8:00 — 2 commitsMon 9:00 — 2 commitsMon 10:00 — 11 commitsMon 11:00 — 19 commitsMon 12:00 — 6 commitsMon 13:00 — 3 commitsMon 14:00 — 5 commitsMon 15:00 — 5 commitsMon 16:00 — 8 commitsMon 17:00 — 5 commitsMon 18:00 — 0 commitsMon 19:00 — 8 commitsMon 20:00 — 3 commitsMon 21:00 — 1 commitsMon 22:00 — 5 commitsMon 23:00 — 8 commitsTue 0:00 — 5 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 2 commitsTue 5:00 — 0 commitsTue 6:00 — 1 commitsTue 7:00 — 0 commitsTue 8:00 — 4 commitsTue 9:00 — 8 commitsTue 10:00 — 4 commitsTue 11:00 — 6 commitsTue 12:00 — 5 commitsTue 13:00 — 11 commitsTue 14:00 — 2 commitsTue 15:00 — 10 commitsTue 16:00 — 9 commitsTue 17:00 — 13 commitsTue 18:00 — 3 commitsTue 19:00 — 3 commitsTue 20:00 — 4 commitsTue 21:00 — 1 commitsTue 22:00 — 1 commitsTue 23:00 — 1 commitsWed 0:00 — 1 commitsWed 1:00 — 1 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 1 commitsWed 7:00 — 2 commitsWed 8:00 — 3 commitsWed 9:00 — 4 commitsWed 10:00 — 6 commitsWed 11:00 — 6 commitsWed 12:00 — 5 commitsWed 13:00 — 4 commitsWed 14:00 — 6 commitsWed 15:00 — 3 commitsWed 16:00 — 3 commitsWed 17:00 — 9 commitsWed 18:00 — 5 commitsWed 19:00 — 4 commitsWed 20:00 — 3 commitsWed 21:00 — 1 commitsWed 22:00 — 7 commitsWed 23:00 — 0 commitsThu 0:00 — 2 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 1 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 1 commitsThu 8:00 — 1 commitsThu 9:00 — 4 commitsThu 10:00 — 8 commitsThu 11:00 — 5 commitsThu 12:00 — 9 commitsThu 13:00 — 8 commitsThu 14:00 — 15 commitsThu 15:00 — 12 commitsThu 16:00 — 8 commitsThu 17:00 — 12 commitsThu 18:00 — 3 commitsThu 19:00 — 4 commitsThu 20:00 — 2 commitsThu 21:00 — 5 commitsThu 22:00 — 1 commitsThu 23:00 — 0 commitsFri 0:00 — 3 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 1 commitsFri 8:00 — 1 commitsFri 9:00 — 0 commitsFri 10:00 — 2 commitsFri 11:00 — 1 commitsFri 12:00 — 0 commitsFri 13:00 — 1 commitsFri 14:00 — 2 commitsFri 15:00 — 7 commitsFri 16:00 — 1 commitsFri 17:00 — 0 commitsFri 18:00 — 1 commitsFri 19:00 — 1 commitsFri 20:00 — 2 commitsFri 21:00 — 4 commitsFri 22:00 — 2 commitsFri 23:00 — 3 commitsSat 0:00 — 1 commitsSat 1:00 — 1 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 3 commitsSat 11:00 — 0 commitsSat 12:00 — 1 commitsSat 13:00 — 1 commitsSat 14:00 — 0 commitsSat 15:00 — 1 commitsSat 16:00 — 3 commitsSat 17:00 — 2 commitsSat 18:00 — 2 commitsSat 19:00 — 0 commitsSat 20:00 — 2 commitsSat 21:00 — 1 commitsSat 22:00 — 0 commitsSat 23:00 — 1 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    453.6K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • anomalyco/opencode

    The open source coding agent.

    194.7K stars · TypeScript