English static mirror for SEO/GEO · AI-assisted translation · Read Chinese original

OpenWorker Deep Dive: How Good Is Andrew Ng's Local-First AI Coworker?

Forum topic · QianXun · 2026-07-25

Summary

OpenWorker is an open-source desktop AI agent from Andrew Ng's team, promising to deliver finished work products rather than chat answers, with a local-first architecture, support for any model, and an approval-based check-in workflow. This investigation, verified against source code and GitHub data as of July 25, 2026, confirms the project is real and well-architected: a React+Tauri GUI, a Python agent server built on aisuite, 46 connector descriptors (25+ advertised), MCP support, an offline Whisper STT sidecar, and a four-level risk classification system (READ/WRITE_LOCAL/EXEC/EXTERNAL) governing approvals. The repo holds 3,461 stars (up from the 2.7K cited in early coverage), is MIT-licensed, and is in Beta with 46 commits, driven mainly by Rohit Prasad. However, marketing claims of built-in role templates are overstated—only one ops persona exists in source. Known issues include an unsigned Windows build, unstable local Ollama connectivity, and open security reports (SSRF risk in web_fetch, disabled Tauri CSP, MCP network access before approval). Compared with Claude Cowork, Trae, WorkBuddy, Cursor, and OpenHands, OpenWorker is uniquely local-first, MIT-licensed, and model-agnostic, making it ideal for privacy-sensitive developers and operators, though non-technical users and Windows production environments may prefer polished closed-source alternatives for now.

Research subject: github.com/andrewyng/openworker | Snapshot date: 2026-07-25 | Status: Beta | License: MIT

Method: five parallel research sub-agents (basics / architecture / feature boundaries / competitors / security practice), with source verified via GitHub raw + API tree.

Summary

OpenWorker is Andrew Ng's open-source desktop AI agent, pitched as "deliver finished products, not answers; local-first; any model; approval check-ins." Verification across five tracks: the project is real, the architecture is clean, and the local-first promise is largely kept. However, the "2.7K stars" figure in early coverage is outdated (live count: 3,461), and claims of "built-in role templates" are exaggerated—the source contains only one ops persona. It fills the gap of an "open-source desktop coworker" and is a strong choice for privacy-sensitive users and developers, though the unsigned Windows build, unstable local models, and several open security issues warrant caution.

Key Points

  • Project basics: 3,461 stars / 463 forks / 90 open issues (GitHub API, 2026-07-25). Repo created 2026-07-20, first commit 2026-07-22, ~46 commits, MIT license. Owner is andrewyng (1 direct commit); the engineering lead is Rohit Prasad (rohitprasad15, 47 commits). The project grew out of the platform/ directory of Andrew Ng's aisuite library.
  • Architecture (three layers):
  • 1. Native shell + GUI: surfaces/gui/ (React + Tauri) supervising a local Python server. 2. Local agent server: coworker/ (Python, built on aisuite) — agent engine, model providers, connectors, MCP client, memory, automations. 3. Your data layer: local files & terminal, 25+ connectors, any model — all running locally with your own keys.
  • Agent loop: TurnEngine in engine.py runs multi-iteration model↔tool turns (default max 12); low-risk tools run concurrently, others serially.
  • Model routing: ProviderRouter in providers/router.py dispatches by provider: prefix (e.g., ollama:llama3.3 → Ollama, bare name → default OpenAI), with lazy build + caching. Supports OpenAI / Anthropic / Gemini / DeepSeek / Kimi / Qwen / Mistral / Grok / Thinking Machines / GLM (Z.ai) / MiniMax + local Ollama + Together / Fireworks open-weight models.
  • Connectors: 46 descriptors in descriptors.py (5 disabled placeholders); README names 14, all present. Categories: messaging (Slack, Gmail, Outlook, Telegram, IMAP Email, Discord, WhatsApp), dev/PM (GitHub, GitLab, Jira, Linear, Asana, monday.com, ClickUp, Confluence), CRM (HubSpot, Attio, Close, Apollo, Hunter, Zendesk), files/docs (Google Drive, Dropbox, Box, Notion, Canva, Figma, DocuSign), data/analytics (PostHog, Mixpanel, Amplitude, read-only Stripe, QuickBooks), plus Browser automation and MCP protocol. Terminal and local files are built-in tools, not connectors.
  • "Role templates" — mostly fiction: tree search for role/template/preset/character returns zero hits; only one built-in persona exists (personas/builtin/ops.md). The four scenario examples on the website are gallery prompts, not templates.
  • Approval model: permissions.py + risk.py define four RiskClasses (READ always allowed / WRITE_LOCAL / EXEC / EXTERNAL). Modes: DISCUSS/PLAN (read-only), INTERACTIVE (default: reads auto-approved, writes/commands/external require approval), AUTO, CUSTOM. Allowlists use shlex token-level prefix matching; shell operators (;, &, |, >, backticks, etc.) always escalate to human. Unattended EXTERNAL requests park in an inbox.
  • Deliverables & Slack trigger: outputs (documents, spreadsheets, reports, web pages) land as workspace files viewable in the GUI Artifacts panel. @-mentioning OpenWorker in Slack opens a desktop session, executes with your tools, and replies in-thread.
  • Competitive Landscape

    | Competitor | Local-first | Approval model | Connectors/MCP | Model freedom | Open source | Pricing | |---|---|---|---|---|---|---| | OpenWorker | Yes (only OAuth broker touches cloud) | Interactive check-in, inbox when unattended | 25+ (46 descriptors) + MCP per-tool | BYO key + local Ollama | MIT | Free + your tokens | | Claude Cowork | Hybrid (cloud inference) | Major-action approval | Connectors + Skills + MCP | Claude only | No | $20–200/mo | | Trae (ByteDance) | Cloud execution | Checkpoint confirmation | Lark + Skills + MCP | Doubao-led | No | Free (personal) | | WorkBuddy (Tencent) | Local execution | Permission isolation + confirmation | 20+ skills incl. WeChat/WeCom | Hunyuan/DeepSeek/GLM | No | Free (personal) | | Claude Code | Local terminal, cloud inference | Approve before edits | CLI + MCP | Claude only | No | $20–200/mo | | Cursor | Local editor, cloud inference | Agent mode | MCP/skills/hooks | Multi-vendor via router | No | $20–200/mo | | Manus | Pure cloud VM | Autonomous unattended | Cloud tools | Locked | No | Rumored $39–199 | | OpenHands | Self-hosted sandbox / cloud | RBAC + sandbox | 70+ | 100+ LLMs + Ollama | MIT | OSS + commercial |

    Differentiation: OpenWorker is the only desktop agent combining local-first + MIT open source + any-model/local-Ollama freedom. Its typed risk classification is a real safety default, not UI decoration. Weaknesses: macOS-first, unsigned Windows build, BYO key + local Python server setup burden.

    Security & Privacy

  • OAuth broker: the cloud broker only relays OAuth handshakes (auth code, redirect_uri, GitHub/Slack routing); connector tokens never touch cloud storage and land in the local SecretStore (~/.config/coworker/secrets.json, POSIX 0600/0700, Windows ACLs, atomic writes). Only off-machine data: login session metadata + anonymous telemetry (explicitly excluding prompts/outputs/tool args/connector content).
  • Bypass risk: AUTO/CUSTOM modes and session allows can skip individual approvals, but writes stay confined under writable roots, and EXEC rules never persist into task-resident permissions. Unattended EXTERNAL requests queue in the inbox.
  • Known open security issues: #100 web_fetch lacks SSRF protection (private-network access, follows redirects, no approval); #99 Tauri CSP disabled (csp:null), amplifying XSS into local API/tool access; #81 stdio MCP servers gain network capability before the approval gate. All pending fixes in Beta.
  • Practical Gotchas

  • Build deps: Python 3.10+ and Node 20+ required; Rust toolchain only for the Tauri desktop shell (server + browser UI work without it).
  • Windows: unsigned builds trigger SmartScreen (More info → Run anyway); installer issues reported in #87. Windows packages exist despite the macOS-first impression.
  • Ollama: officially supported but connectivity is flaky (#57, #62).
  • Other issues: #96 Gmail/Calendar connection failures, #89 HubSpot acceptable-use policy requirement, #94 Linear missing update/comment tools, #105 model switching broken, #95 unmovable Mac window.
  • Disambiguation: articles about "OpenWork/OpenClaw" refer to different-ai/openwork (OpenCode lineage) — a different project from andrewyng/openworker.
  • Verdict

    Worth watching: the local-first + MIT + any-model combination is genuinely rare among desktop agents; the deliver-finished-products philosophy is well implemented; risk-tiered approvals are more disciplined than most closed products' full-autonomy stance.

    Risks: early Beta, open security issues (SSRF/CSP), weaker Windows experience, unstable local models, inflated role-template marketing.

    Use it if: you want data to stay local, are comfortable supplying your own keys, and can tolerate Beta roughness (developers, operators, privacy-sensitive teams).

    Wait if: you are non-technical, run Windows in production, or need out-of-the-box polish — closed products like WorkBuddy or Trae are smoother today.

    ---

    Project Metadata

  • Name: OpenWorker
  • Team: Andrew Ng (andrewyng) + Rohit Prasad et al., spun out of aisuite
  • Repo: https://github.com/andrewyng/openworker
  • Website: https://openworker.com/
  • License: MIT
  • Status: Beta (2026-07-25, 46 commits, 3,461 stars)

Tags

#openworker#andrew-ng#ai-agent#local-first#open-source#desktop-ai#mcp#security

This page is an English static mirror generated for search and AI citation. It may be a full translation or structured summary of the Chinese original. Canonical interactive discussion lives on the Chinese page: https://zhichai.net/topic/178447097