Model or dataset
outworked/outworked avatar
outworked/outworked

Outworked: a pixel office that turns Claude Code into a team of agents

Outworked - Cozy Office for Claude Code

394 stars47 forksTypeScriptGPL-3.0

At a glance

What is it?
Outworked is a macOS Electron app that wraps the Claude Agent SDK in an orchestrated office of named agents. It is genuinely interesting for solo builders who want scheduled, multi-agent workflows, and it is the wrong tool if you need Linux or Windows.
Who is it for?
Adopt Outworked if you are on macOS, already pay for Claude, and want scheduled or multi-step agent workflows without writing your own orchestration layer; the built-in browser, iMessage and Slack channels, and cron triggers are the parts you would otherwise build yourself. Skip it if you work on Linux or Windows, since the only download offered is an arm64 .dmg, or if you need a headless server process, because this is an Electron desktop app.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 168 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Outworked actually is, and who it is for

Outworked is a desktop application that puts a graphical office on top of Claude Code. The README describes it as a way to "turn Claude into a team of AI employees": you hire agents, give each one a name, role, personality, model and sprite, then describe a goal in plain English. An orchestrator breaks that goal into subtasks and routes them to the agents it considers appropriate.

The audience is narrow and specific. It suits a solo developer or a very small team on macOS who already uses Claude Code and wants several agents running at once without hand-writing the coordination. It also suits people who want an agent to do something on a clock (a morning PR summary, an hourly health check) and would rather not maintain a GitHub Actions workflow or a cron script for it.

It is not a library and not a CLI. The repository is an Electron app: package.json lists electron, electron-builder, react, phaser and vite, with electron/main.js as the entry point. If you were hoping to import an orchestration package into your own service, this is not that. The unit of adoption is the installed app on your Mac.

How the orchestrator, agents and MCP tools fit together

The dependency list makes the architecture legible. @anthropic-ai/claude-agent-sdk is a runtime dependency, so agent execution goes through Anthropic's SDK rather than a bespoke loop. better-sqlite3 is also a runtime dependency, and the v0.3.0 release notes mention SQLite storage, so agent state, channels and scheduled work persist in a local database on disk. electron-updater handles in-app updates. extract-zip is there because asset packs arrive as zip files.

The data flow described in the README runs in one direction: a goal goes in, the orchestrator decomposes it, subtasks land on agents, and agents act through tools. Those tools include file and shell work for code, a built-in browser for web tasks, messaging channels (Slack and iMessage per the release notes), and whatever MCP servers you connect. The README is explicit that MCP is the extension point: "Every MCP server you add gives agents new capabilities." A PostgreSQL MCP server is the example given for database queries.

Scheduling is a separate trigger layer. The README's example has an agent create a scheduled trigger with a cron expression, and v0.3.0 lists scheduled triggers alongside the skills system. The office itself is a Phaser scene, which is why phaser appears in devDependencies: agent positions and animations are a rendering concern layered over the real work, not the work itself.

Installing Outworked and running your first scheduled agent

The README points at a single prebuilt artifact rather than an install command: a download badge linking to Outworked-0.4.3-arm64.dmg on the GitHub releases page. That filename tells you two constraints before you start. It is an arm64 build, so Apple Silicon, and it is a dmg, so macOS. There is no documented Linux or Windows build, and the README does not describe a Homebrew cask or any other package manager route.

If you want to build it yourself, the repository is a Vite plus Electron project. The scripts in package.json are the source of truth. Note the postinstall step, which rebuilds the native SQLite binding for Electron:

bash
npm install
npm run electron:dev

The README does not document the exact first-run sequence for hiring an agent, so treat the app's own UI as the guide there. What the documentation does describe is the shape of a scheduled workflow. In the README's morning-PR example, you tell an Ops Agent to set up a daily task, and the agent creates a scheduled trigger using a cron expression:

text
0 9 * * *

After that, the agent is described as waking on that schedule, querying the GitHub MCP server for open PRs, writing a summary, and sending it over iMessage. The practical prerequisite is that the GitHub MCP server and the iMessage channel are both configured before the trigger is useful; the README treats both as available channels and integrations rather than walking through their setup.

macOS-only, arm64-only, and other places Outworked is the wrong tool

The platform constraint is the first real limitation and it is not a soft one. The only download offered is an arm64 dmg. If your team runs Linux CI machines, Windows laptops, or Intel Macs, the documented path does not cover you. Building from source might work, since the repository contains electron-builder.yml and a full Electron toolchain, but the README does not promise cross-platform builds and there is no CI evidence in the repository layout that anyone ships them.

The second limitation is architectural. This is a desktop app with a GUI, a Phaser office, and a local SQLite file. That is a poor fit for a headless server, a container, or a shared team deployment. If your goal is "run agents on a remote box and check results from anywhere," you are fighting the design.

The third is the cost and credential model. Agent execution goes through the Claude Agent SDK, so you are spending against your own Anthropic usage, and the README's examples assume you have GitHub, Slack and iMessage available to wire up. Multi-agent orchestration multiplies token spend in a way that is easy to underestimate: three parallel researcher agents are three parallel context windows, not one.

Finally, the documentation has gaps. The README is rich on what the app can do and thin on operational detail. It does not document rollback, how to recover from a corrupted local database, or what happens to a scheduled trigger when the app is closed. Those are exactly the questions you ask after the novelty wears off.

Outworked versus hand-rolled Claude Agent SDK scripts

The honest alternative is not another product. It is writing your own orchestration against @anthropic-ai/claude-agent-sdk, which Outworked itself depends on. The difference in approach is where the coordination lives. In a hand-rolled setup, you own the task decomposition, the routing, the retry logic, the persistence, and the scheduling, usually as a small service plus a database plus a cron entry. You get exactly the behaviour you specify and nothing you did not ask for.

Outworked inverts that. You get the decomposition, routing, persistence and cron triggers already assembled, plus a browser tool and messaging channels, in exchange for accepting its opinions and its GUI. The trade is real in both directions: a script is trivial to run in CI and impossible to watch, while Outworked is watchable and awkward to run anywhere but your laptop.

A second comparison worth naming is a plain Claude Code session. Claude Code gives you one agent in a terminal with no orchestration, no schedule and no office. Outworked is that same execution path with a team layer, a trigger layer and a rendering layer on top. If your work is genuinely single-threaded, the extra layers are overhead, and the README's own framing ("Total prompts from you: 1") is aimed at people who want to hand off multi-step jobs rather than drive one conversation.

Licence, maintenance and what an upgrade actually costs you

Outworked is GPL-3.0. package.json declares "license": "GPL-3.0-only" and the README badge says GPL 3.0. For personal use and internal tooling this is unremarkable. If you were considering embedding Outworked's code in a proprietary product, the copyleft terms are the thing to read in full before you do, and that is a question for your own counsel rather than something this article can settle.

On maintenance: the last push was on 2026-04-01, and the most recent releases are v0.4.1, v0.4.2 and v0.4.3, all dated 2026-03-31 or 2026-04-01. That is a burst of releases followed by a quiet period. The repository is not archived, so it is not abandoned, but the release notes describe small fixes rather than new subsystems: v0.4.3 is "Better bg handling for scheduled tasks," v0.4.2 adds browse:type, and v0.4.1 covers pop-out chat windows and asset pack import fixes. Plan on the feature set you see today.

Upgrade cost is low by design. electron-updater is a runtime dependency, so the app updates itself, and the version bump script (bash scripts/bump-version.sh) keeps package.json and the build in step. The risk is not the upgrade mechanism; it is the local state. Because agent definitions, channels and triggers live in a SQLite database, a schema change in a future release is the kind of thing that could require you to rebuild your team. The repository does not describe a migration story, so export anything you would hate to re-enter.

Editorial conclusion

Adopt Outworked if you are on macOS, already pay for Claude, and want scheduled or multi-step agent workflows without writing your own orchestration layer; the built-in browser, iMessage and Slack channels, and cron triggers are the parts you would otherwise build yourself. Skip it if you work on Linux or Windows, since the only download offered is an arm64 .dmg, or if you need a headless server process, because this is an Electron desktop app. Before committing, verify three things on your own machine: that the v0.4.3 arm64 dmg installs and the app launches, that your Anthropic credentials work through the Claude Agent SDK path, and that the MCP server you care about wires up correctly. The last push was on 2026-04-01, so treat the repository as quiet rather than fast-moving.

Frequently asked questions

What does "outworking" mean?

The README does not define the word; it uses the project name as a pun on being outworked by your own agents, who handle a workflow end to end. The project gives no other meaning.

What does the term "outworkers" mean?

Outworked's documentation does not use or define "outworkers". In the app, the equivalent concept is an agent: a named worker with a role, personality, model and sprite.

What is another word for "outwork"?

The project does not discuss synonyms. The nearest term in its own vocabulary is orchestration: the orchestrator breaks a goal into subtasks and routes them to agents.

What does "out of work" mean?

Nothing in the repository addresses this phrase. Outworked is a macOS Electron app for running Claude Code as a team of agents, and the README does not connect the name to employment.

What does outworked mean?

As a project name, Outworked refers to the desktop app that turns Claude into a team of AI employees, per the README. It is not presented as a dictionary entry.

Is outworked a word?

The repository does not make any claim about the word itself; it only uses Outworked as the product name. The README describes the app, not the etymology.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. outworked/outworked on GitHub
  4. README
  5. Releases
Community notes

Community notes