OpenWorker is an open-source AI coworker that lives on your desktop and delivers finished workโpolished documents, Slack replies, calendar updates, and triaged inboxes. Connect cloud models or run fully local with Ollama.
- ๐ก What is OpenWorker & Why it Matters
- ๐ฅ macOS & Windows App Download & Installation
- ๐ Understanding Local Secret Store & Authentication
- ๐ Desktop Automation & Multi-Tool Workflow
- ๐จ OpenWorker UI & Surface Breakdown
- ๐ ๏ธ Building
gemm4-no-thinkin Ollama - ๐ Connecting Ollama to OpenWorker & Fixing Agent Errors
- โก 3 Quick In-App Tests
- ๐ Project File Architecture
- ๐ 5 Real-World Use Cases
- ๐ฎ 5 Roadmap & Future Features
- ๐ป Tech Stack Overview
OpenWorker is designed to shift AI interaction from basic chat prompts to autonomous task completion. Built on top of aisuite by Andrew Ng and the AI Fund team, OpenWorker combines local desktop tools, 25+ third-party integrations, and Model Context Protocol (MCP) support into a single native application.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ OpenWorker Desktop App (React + Tauri Shell) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ HTTP / Native IPC
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Local Agent Server (Python coworker Engine) โ
โ (built on aisuite & MCP Protocol) โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโ
โ โ โ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ Desktop Filesโ โ 25+ Connectorsโ โ Local Model โ
โ & Terminal โ โSlack/Jira/MCPโ โ (Ollama / โ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ Cloud LLMs) โ
โโโโโโโโโโโโโโโโ
- ๐ฏ Delivers Finished Deliverables: Generates Markdown files, spreadsheets, draft reports, and direct Slack responses rather than raw chat lists.
- ๐ก๏ธ Human-in-the-Loop Safeguards: Actions with consequences (sending emails, modifying calendars, running terminal commands) require explicit approval.
- ๐ Extensible via MCP & 25+ Connectors: Native integration with Slack, Jira, GitHub, Notion, Linear, HubSpot, Gmail, and Google Calendar.
- ๐ 100% Data Sovereignty & Offline Capability: Run completely offline using local models via Ollama or connect any provider with zero telemetry leakage.
| Platform | Binary | Link |
|---|---|---|
| macOS (Apple Silicon) | .dmg |
Download macOS Release |
| Windows 10/11 (x64) | .exe / Installer |
Download Windows Release |
| Source Code | Monorepo Zip | OpenWorker GitHub Repository |
- Python:
3.10+ - Node.js:
20+ - Rust Toolchain:
rustup(required for Tauri shell)
git clone https://github.com/andrewyng/openworker
cd openworker
# Run setup script (creates Python venv at .venv)
bash packaging/setup_dev_env.sh# Windows PowerShell / Git Bash:
.venv/Scripts/openworker-server.exe --cwd . --port 8765
# macOS / Linux:
.venv/bin/openworker-server --cwd . --port 8765cd surfaces/gui
npm install
# Option A: Vite Browser Dev Surface
npm run dev
# Option B: Full Tauri Desktop Application
npm run tauri devOpenWorker operates under a local-first security model:
- Local Secret Store: API keys, OAuth tokens, and model keys live exclusively on your local file system, protected by OS-level keyring storage.
- Sidecar Security Token: When running the agent server, a single-use token is generated at
<state-dir>/sidecar-8765.token. Frontends pass this token in theX-OpenWorker-Tokenheader. - No Mandatory Account: You do not need an account to use OpenWorker. Cloud services are limited strictly to brokering OAuth handshakes for third-party tools (e.g. Slack/Google Calendar).
User Task Request โโโบ Step Decomposition โโโบ Tool Execution โโโบ Approval Checkpoint โโโบ Final Deliverable
- Task Input: Enter prompt directly in the UI or mention
@OpenWorkerin a connected Slack channel. - Step Decomposition: The agent engine uses
aisuiteto sequence steps across terminal, local files, and MCP connectors. - Approval Inbox: Destructive or outbound actions pause for user confirmation.
- Artifact Delivery: Results land directly as downloadable files or updated workspace records.
โโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ OPENWORKER โ Task: Build Customer Weekly Summary Report โ
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ WORKSPACE โ [Step 1/3] Reading local markdown files... COMPLETE โ
โ ๐ Project Root โ [Step 2/3] Fetching recent closed issues from Jira โ
โ โ๏ธ Connectors โ โ
โ โ โ ๏ธ APPROVAL REQUIRED โ
โ TASKS โ Action: Execute command `git log -n 10` โ
โ โข Weekly Report โ [ Approve ] [ Reject & Redirect ] โ
โ โข Slack Triage โ โ
โ โ ---------------------------------------------------- โ
โ APPROVAL INBOX ๐ฅ โ Deliverable: Customer_Summary_Q3.md generated. โ
โ (1 Pending) โ [ Open File ] [ Export PDF ] โ
โโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| UI Surface | Purpose & Description |
|---|---|
| Workspace Bar | Select working directory, toggle active connectors, manage Ollama provider endpoints. |
| Tasks Feed | Displays ongoing and completed autonomous multi-step agent runs. |
| Approval Inbox | Centralized queue for gating file writes, outbound emails, and shell commands. |
| Deliverables View | Interactive viewer for generated documents, tables, code patches, and reports. |
To provide fast, deterministic performance without unnecessary thinking monologues, we create a custom model named gemm4-no-think based on gemma4:e2b.
The repository includes a custom Modelfile:
# Custom Ollama Modelfile for gemm4-no-think
# Built from gemma4:e2b for direct, deterministic, zero-thinking-overhead AI agent execution in OpenWorker
FROM gemma4:e2b
# Model parameters tuned for high-speed, direct tool calls and document generation
PARAMETER temperature 0.2
PARAMETER top_p 0.9
PARAMETER stop "<start_of_turn>"
PARAMETER stop "<end_of_turn>"
PARAMETER num_ctx 8192
# System Prompt for OpenWorker Desktop & Autonomous Agents
SYSTEM """You are gemm4-no-think, a direct, highly capable AI coworker in OpenWorker. You execute desktop tasks, execute local tool calls, write code, interact with APIs (Slack, Jira, GitHub, Notion), and summarize data without unnecessary thinking monologues, chain-of-thought intros, meta-conversational commentary, or verbose filler text."""Execute the following commands in your terminal:
# Step 1: Pull base Gemma 4 e2b model
ollama pull gemma4:e2b
# Step 2: Create custom gemm4-no-think model
ollama create gemm4-no-think -f Modelfile
# Step 3: Verify model availability
ollama listWhen running OpenWorker desktop with Ollama, requests may fail due to CORS cross-origin restrictions or missing headers.
Configure Ollama to accept cross-origin requests from desktop shells:
# Windows PowerShell
$env:OLLAMA_ORIGINS="*"
$env:OLLAMA_HOST="0.0.0.0"
ollama serve- Open OpenWorker Settings -> Models & Providers.
- Select Ollama / OpenAI Compatible.
- Set fields:
- Base URL:
http://localhost:11434/v1 - API Key:
ollama - Model Name:
gemm4-no-think
- Base URL:
- Click Save & Test Connection.
Try these 3 brief, high-value tests inside the OpenWorker app to verify gemm4-no-think performance:
Summarize the current project directory structure and git status into a 3-bullet summary.
What it proves: Tests instant desktop directory reading and structured output without chain-of-thought delay.
Draft a concise 2-sentence Slack update for @channel on today's release deliverables.
What it proves: Demonstrates rapid multi-connector text formatting designed for direct team delivery.
Find all files modified in the last 24 hours and list their filenames.
What it proves: Verifies fast local tool invocation gated by OpenWorker's approval UI.
d:/Ray Codes/AG Projects/Openworker/
โโโ Modelfile # Custom Ollama definition (optional gemm4-no-think model)
โโโ README.md # Comprehensive GitHub-ready documentation (this file)
โโโ README (69).md # Upstream OpenWorker technical specification reference
โโโ coworker/ # Python backend: agent engine, connectors, MCP client, memory
โโโ surfaces/gui/ # React UI + Tauri desktop app shell
โโโ stt/ # Speech-to-text Rust sidecar for voice commands
โโโ packaging/ # Desktop build scripts (macOS DMG, Windows PS1)
โโโ tests/ # Backend pytest suite & GUI e2e tests
| File / Folder | Purpose & Function |
|---|---|
Modelfile |
Custom Ollama specification for fast, direct, zero-thought agent task execution. |
README.md |
Standardized documentation following ainews skill guidelines. |
coworker/ |
Core Python agent harness built on aisuite. |
surfaces/gui/ |
React + Vite frontend wrapped inside a Tauri Rust desktop container. |
- ๐ Air-Gapped Codebase Analysis: Inspect local repositories, refactor components, and generate technical documentation without leaking source code to external cloud providers.
- ๐ Automated Daily Standups & Jira Sync: Summarize completed tickets and git commits into formatted daily update drafts.
- ๐งน Scheduled System Diagnostics & Cleanup: Run scheduled desktop tasks to identify stale logs, temp files, and unused dev containers.
- ๐ ๏ธ Safe Shell Script Automation: Execute complex multi-step build scripts with strict human approval gates at every step.
- ๐ Custom Enterprise MCP Integration: Connect proprietary enterprise databases and microservices via standard Model Context Protocol servers.
- ๐ค Multi-Agent Swarm Orchestration: Support delegating sub-tasks across multiple local Ollama instances simultaneously.
- โก Dynamic Model Routing: Automatically send light tool tasks to local models and complex code reasoning to larger frontier models.
- ๐๏ธ Voice Huddle & Real-Time Audio Engine: Enhanced Rust speech-to-text sidecar with real-time voice response capability.
- ๐ Enterprise Role-Based Access Control (RBAC): Fine-grained permissions for multi-user shared workspace setups.
- ๐ฑ Mobile Approval Companion App: Receive push notifications to review and approve pending desktop agent actions on mobile devices.
- Agent Engine: Python 3.10+ (
aisuite, AsyncIO, Pydantic) - Desktop UI: React 18 + TypeScript + Vite + Tailwind CSS
- App Shell: Tauri 2.0 (Rust)
- Local AI Engine: Ollama (Optional custom models e.g.
gemm4-no-think) / Cloud LLMs - Integration Protocol: Model Context Protocol (MCP) + 25 Native Connectors
- Voice Sidecar: Rust STT (Whisper binding)
Andrew Ng OpenWorker OpenWorker aisuite Ollama Desktop AI Coworker Local AI Agent Model Context Protocol MCP Tauri AI App React Desktop Automation Sovereign AI Offline AI Autonomous Workflows Free AI Setup Local LLM