Skip to main content
Andrew Ng's OpenWorker Desktop AI displaying finished work using local models on a computer screen.

Editorial illustration for Andrew Ng's OpenWorker Desktop AI Returns Finished Work, Uses Local Models

OpenWorker: Andrew Ng's Desktop AI Delivers Results

4 min read

Andrew Ng released OpenWorker this week, an open-source desktop agent built on a premise that breaks from the standard chatbot format: you don't get a conversation, you get a finished deliverable. Ask it for a polished document, a Slack reply with the actual numbers filled in, an updated calendar, or a triaged inbox, and OpenWorker breaks that request into steps, works across local files and connected apps, then checks in only when something consequential needs a decision.

The project runs local-first by design. The repository holds 119 Python files, roughly 32,400 lines of code, under a directory called coworker/, plus 149 TypeScript and TSX files powering the GUI and 78 backend test modules. Everything sits on four layers: a desktop shell, a local agent server, a capability and connector layer, and a model router, and all four run on the user's own machine rather than phoning home to some OpenWorker-hosted service.

That local-first stance extends to the models themselves. There's no proprietary inference backend here. Users supply their own API key or point the app at a local runtime, choosing from a curated list Ng's team assembled rather than an open-ended free-for-all.

Andrew Ng has announced OpenWorker, an open-source desktop agent that produces finished work rather than conversation. OpenWorker asks the user for an outcome, not a prompt: a polished document, a Slack reply containing the actual numbers, an updated calendar, a triaged inbox. It then breaks that outcome into steps, works across local files and connected apps, and checks in before anything consequential.

Why this matters

OpenWorker is a bet that the agent wars get won on trust, not capability. Ng's four-tier risk classifier is the actual product here, not the model routing through Together AI, Fireworks, or Ollama. Any team can wire an LLM to a file system or a Slack API.

Getting users to hand over calendar edits or send-on-your-behalf permissions requires a system that fails safely and asks before it does something dumb. That's the part most agent frameworks skip, and it's why they stall out at demo-ware.

For developers and founders, the local-first framing matters as much as the permission engine. Running through Ollama means no API key, no data leaving the machine, and no vendor lock-in on model choice. That's a real answer to the enterprise objection that's killed a dozen agent pilots we've watched die in procurement review.

We'd want to see how the risk classifier handles edge cases, ambiguous tool calls that aren't cleanly low or high stakes, before calling this solved. But open-sourcing the approval architecture, not just the agent loop, is the right thing to be first to ship.

Common Questions Answered

How does OpenWorker differ from standard chatbot interfaces?

OpenWorker is designed to deliver finished deliverables rather than conversational responses. Instead of engaging in back-and-forth dialogue, users request specific outcomes like polished documents, Slack replies with filled-in numbers, updated calendars, or triaged inboxes, and OpenWorker completes the entire task autonomously.

What is the four-tier risk classifier in OpenWorker and why is it important?

The four-tier risk classifier is Andrew Ng's core innovation that enables OpenWorker to determine when to act autonomously versus when to seek user approval before taking consequential actions. This safety mechanism is what differentiates OpenWorker from other agent frameworks, as it prioritizes failing safely and asking before executing potentially problematic tasks.

Which local models and services does OpenWorker support?

OpenWorker is an open-source desktop agent that can route through multiple model providers including Together AI, Fireworks, and Ollama. This flexibility allows users to choose their preferred local or cloud-based language models while maintaining the ability to work across local files and connected applications.

How does OpenWorker handle permissions for sensitive actions like calendar edits?

OpenWorker requires users to grant explicit permissions for consequential actions such as calendar edits or send-on-your-behalf capabilities in connected apps like Slack. The agent checks in with the user before executing these sensitive operations, ensuring that trust is maintained through a fail-safe approach rather than autonomous execution.

What workflow does OpenWorker use to complete multi-step tasks?

When given a request, OpenWorker breaks down the desired outcome into individual steps, then works across local files and connected applications to complete each step systematically. The agent only interrupts the workflow to check in when a decision or approval from the user is needed for something consequential.

LIVE23:49OpenAI adds voice control to desktop Codex and ChatGPT