Andrew Ng released OpenWorker, an open-source AI agent that runs as a desktop app. It is currently in open beta.
Most AI chat tools generate text and stop there. OpenWorker connects to your files, Slack, calendar, Jira, GitHub, and 25+ other tools, then attempts to complete the full task: drafting a document, triaging an incident, rescheduling a calendar, or preparing a client brief.
I run a similar tool every day. Hermes Agent on my VPS handles content pipelines, cron jobs, server monitoring, and publishing workflows. The key difference: Hermes is CLI-first and messaging-platform-driven (Telegram, Discord). OpenWorker targets desktop-first knowledge workers who want a GUI. Same category, different audience.
How It Works
The core idea: you ask for an outcome, not a prompt.
Instead of "write me a summary," you say "prep me for a client renewal call." OpenWorker then breaks the task into steps, works across your desktop and connected apps, checks in before anything consequential (sending messages, changing calendar entries), and returns a finished deliverable.
The following examples are from openworker.com and represent the product's demo scenarios, not independent testing:
Incident triage: You report a checkout API returning 500 errors. OpenWorker analyzes deploy history and error logs, identifies a likely regression from a recent deploy, and produces an incident timeline as a markdown file. It asks for approval before posting the report to a Slack channel.
Calendar management: You say "my Tuesday is a mess, fix it." OpenWorker checks calendars across attendees, finds a conflict-free slot for a design review, and drafts reschedule notes. It asks before sending notes to attendees.
Client prep: You ask it to prepare for a renewal call. OpenWorker reads CRM data and usage stats, identifies that usage doubled in Q2, and produces a renewal brief as an HTML file. It asks before emailing the follow-up.
All three follow the same pattern: analyze connected data, produce a file, ask for approval before any external action.
Features at a Glance
- Deliverables as files: Documents, spreadsheets, reports, web pages. Not just chat output.
- 25+ tool integrations: GitHub, Slack, Jira, Notion, Linear, HubSpot, Outlook, monday.com, Gmail, Google Calendar. Any tool over MCP plugs in too.
- Approval gates: Sends, file changes, and shell commands require your approval. Unattended runs park actions in an inbox.
- Scheduled automations: Morning briefs, weekly reports, standing watches. Each run includes a full transcript.
- Speech input: Rust-based speech-to-text sidecar.
Model Support
OpenWorker is model-agnostic. You pick the provider, paste your API key, switch anytime:
- Cloud: OpenAI, Anthropic, Google Gemini, DeepSeek, Kimi (Moonshot), Qwen, MiniMax, Mistral, Grok (xAI)
- Open-weight: Together, Fireworks
- Local: Ollama (fully local, no data leaves your machine)
A curated model list marks which models are verified for tool-calling work. Adding any arbitrary model string works at your own risk.
Architecture
OpenWorker is built in layers:
- Desktop app: Tauri shell with a React GUI
- Agent engine: Local Python server (tools, connectors, memory, automations)
- Foundation: Built on aisuite, a Python library for unified chat-completions across LLM providers with an agents layer
Everything runs on your machine. The only cloud component is a small OAuth handshake service for connectors. You can use the app without signing in by providing manually-created API keys.
Download
- macOS (Apple Silicon): download.openworker.com/mac - macOS 12+, signed and notarized, auto-updates
- Windows 10/11 (x64): download.openworker.com/windows - not yet code-signed, SmartScreen will warn
- Linux: No build at this time. The repo notes "fully usable, updates itself, and we're actively polishing rough edges." No Linux build and unsigned Windows binaries are real limitations for a July 2026 release.
- Source: Requires Python 3.10+, Node 20+, Rust toolchain. Clone and build from the repo.
Comparison with Similar Tools
| Feature | OpenWorker | Claude Code | Codex CLI | Hermes Agent |
|---|---|---|---|---|
| Desktop GUI | Yes (Tauri) | No | No | No |
| Model-agnostic | Yes | No (Anthropic only) | No (OpenAI only) | Yes |
| Tool integrations | 25+ connectors | MCP + filesystem + browser | Sandboxed execution + filesystem | 15+ platform adapters + MCP |
| Local-first | Yes | No | No | Yes |
| Scheduled automations | Yes | No | No | Yes (cron) |
| Approval gates | Yes | Yes | Yes | Yes |
| Speech input | Yes (Rust STT) | No | No | Yes (Whisper) |
| Open source | Yes (MIT) | No | Yes (Apache 2.0) | Yes (MIT) |
| Primary focus | Knowledge worker tasks | Code editing | Code editing | Full-system agent |
How to read this table: OpenWorker targets knowledge workers (Slack, calendar, CRM). Claude Code and Codex CLI target developers doing code-level work. Hermes targets full-system automation but is CLI and messaging-first. Different tools for different jobs.
Who Is This For?
Good fit:
- Knowledge workers who context-switch between Slack, email, calendar, Jira, and documents all day
- Teams wanting AI automation without committing to a single cloud provider
- Privacy-conscious users who need data to stay local
Not a good fit:
- Developers who need deep codebase access (Claude Code, Codex CLI are purpose-built for that)
- Anyone who needs a Linux desktop build
- Not yet suitable for teams requiring code-signed Windows binaries
Observations
Different category than coding agents. OpenWorker is not competing with Claude Code or Codex CLI. Those tools excel at code editing. OpenWorker targets the gaps between tools: pulling data from Jira + GitHub + Slack, synthesizing it into a document, and asking before acting on it.
Model flexibility is practical. Different models suit different tasks: Claude for writing, DeepSeek for reasoning, a local model for sensitive data. OpenWorker lets you switch per task without changing the agent. This mirrors what I do with Hermes: glm-5.2 for daily tasks, deepseek for article writing, gemini-flash for research.
Approval-gate design is sensible. Every agent framework faces the tension between autonomy and safety. OpenWorker's approach (pause for approval on consequential actions, park in inbox for unattended runs) is a reasonable middle ground. Hermes solves the same problem with command approval prompts.
aisuite is the real story. The underlying engine is a lightweight Python library that provides a unified chat-completions API across providers. If you want to build your own agent harness rather than use OpenWorker's UI, aisuite is the foundation to start from.
Sources:
- OpenWorker GitHub repo: https://github.com/andrewyng/openworker
- OpenWorker website: https://openworker.com
- aisuite (underlying engine): https://github.com/andrewyng/aisuite
- MCP protocol: https://modelcontextprotocol.io/
- Codex CLI (open source): https://github.com/openai/codex
- Tauri framework: https://tauri.app/
Top comments (0)