OpenWorker (GitHub Repo)
OpenWorker is an open-source, local-first desktop agent that executes tasks across your apps and files while requiring approval for sensitive actions.
Deep dive
- Features a local agent server built on aisuite to manage tools and model connectors.
- Offers 25+ integrations with common tools like Linear, Jira, and Gmail.
- Implements an approval-gated architecture where all consequential commands require human interaction.
- Uses the Tauri shell and React for its cross-platform desktop UI.
- Designed for local-first privacy, keeping all agent loops and credentials on the machine.
Decoder
- MCP (Model Context Protocol): An open standard for connecting AI assistants to systems like databases, file systems, and development tools.
- Tauri: A framework for building cross-platform desktop applications using web technologies for the UI and Rust for the backend.
Original article
OpenWorker
Beta - OpenWorker is in open beta: fully usable, updates itself, and we're actively polishing rough edges. Issues welcome.
AI that gets your everyday tasks done. OpenWorker is an open-source AI coworker that lives on your desktop and delivers finished work, not just chat: a polished document, a Slack reply with the numbers, an updated calendar, a triaged inbox.
It runs on your machine and doesn't lock you into any model: bring your own API key for OpenAI, Anthropic, Google, or an open-weight provider, or run fully local with Ollama. Your data leaves your machine only through the model and integrations you choose.
Download
macOS (Apple Silicon) macOS 12+ · signed & notarized · auto-updates
Windows 10/11 (x64) builds are not yet code-signed, so SmartScreen will warn; signing is in progress
Open the app, add a model key (or point it at Ollama), and ask for something real.
How it works
- Tell OpenWorker the outcome you want - "prepare a customer brief," "untangle my calendar," "draft a report," "check where the release stands across Jira and GitHub."
- It breaks the task into steps and works across your desktop, files, and connected apps.
- Before anything consequential - sending a message, changing a calendar, running a command - it checks in and you approve or redirect.
- You get the finished deliverable, not a to-do list.
Under the hood:
┌────────────────────────────────────────────────┐
│ OpenWorker desktop app │ native shell + GUI
├────────────────────────────────────────────────┤
│ local agent server (Python) │ engine · tools · connectors - built on aisuite
├───────────────┬────────────────┬───────────────┤
│ your files │ your tools │ your model │ everything runs with your keys,
│ & terminal │ 25+ connectors │ any provider │ on your machine
└───────────────┴────────────────┴───────────────┘
What it can do
- Produce real deliverables - documents, spreadsheets, reports, and web pages land as files you can open and share.
- Work from Slack - mention
@OpenWorkerin a channel; a session opens on your desktop, the work happens with your tools, and the answer comes back as a thread reply. - Use your everyday tools - 25+ integrations including GitHub, Slack, Jira, Notion, Linear, HubSpot, Outlook, monday.com, Gmail, and Google Calendar, plus your terminal and local files. Any tool reachable over MCP plugs in too, with per-tool control.
- Run on a schedule - automations for recurring work: a morning brief, a weekly report, a standing watch over a channel. Runs land in the app with full transcripts.
- Ask before acting - writes, sends, and shell commands are approval-gated. Unattended runs park their asks in an inbox instead of acting on their own.
Bring your own model
Model access is yours: pick a provider, paste your key, switch anytime. Supported out of the box:
OpenAI · Anthropic · Google Gemini · Inkling (Thinking Machines) · GLM (Z.ai) · DeepSeek · Kimi (Moonshot) · Qwen · MiniMax · Mistral · Grok (xAI) - plus open-weight models via Together and Fireworks, and fully local models via Ollama.
Privacy
OpenWorker is local-first. Everything lives on your machine: the agent loop, your conversations, connector tokens, and model keys - all in the app's local secret store. The only cloud piece is a small service that brokers OAuth handshakes for connectors. You can always use the App without signing-in - use the connectors via manually-created credentials/API-keys.
Run from source
Prerequisites: Python 3.10+, Node 20+, and (for the desktop shell) the Rust toolchain via rustup.
git clone https://github.com/andrewyng/openworker
cd openworker
# 1. One-time bootstrap - creates the Python venv at .venv
# (on Windows, run from Git Bash or WSL)
bash packaging/setup_dev_env.sh
# 2. Start the local agent server
.venv/bin/openworker-server --cwd ~/some/project --port 8765
# (Windows: .venv\Scripts\openworker-server.exe)
# 3. In a second terminal, start the UI
cd surfaces/gui
npm install
npm run dev # browser UI on the Vite dev port
The standalone server creates a per-launch token at <state-dir>/sidecar-8765.token; Vite reads that user-only file when it starts. For direct API calls, send its value in the X-OpenWorker-Token header. The desktop app uses an in-memory launch token instead and never writes it to disk.
Repository layout
| Directory | What's in it |
|---|---|
coworker/ |
Python backend - agent engine, model providers, connectors, MCP client, memory, automations |
surfaces/gui/ |
Desktop app - React UI + Tauri shell that supervises the server |
stt/ |
Speech-to-text sidecar (Rust) for voice input |
packaging/ |
Installer builds (macOS DMG, Windows), auto-update manifest, dev bootstrap |
docs/ |
Design specs and decision logs |
tests/ |
Backend test suite |
Built on aisuite
OpenWorker's engine is built on aisuite, a lightweight Python library providing a unified chat-completions API across LLM providers and an agents layer with tools, toolkits, and MCP support. If you want to build your own agent harness rather than use ours, start there; this repo is a working reference for what aisuite can carry.
Contributing
Contributions and bug reports are welcome - open an issue or a pull request. The app updates itself, so fixes reach installs quickly. For any PR, please attach screenshots of what was broken and how it is fixed now.
License
MIT
Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi