The Problem

Running Claude Code as a single terminal session is limiting for multi-step workflows. You end up manually orchestrating tasks, context windows get cluttered, and there's no persistent record of what an agent did. Outworked addresses this by turning Claude into a team of specialized agents that work in parallel, each with a role, a persistent workspace, and the ability to interact with external tools—all visible in a desktop office metaphor.

What This Does

Outworked is a macOS desktop app (Electron + React) that lets you "hire" AI agents, assign them roles like Frontend Dev or Designer, and give them goals in plain English. An orchestrator (src/lib/orchestrator.ts) decomposes the goal into subtasks and routes them to the appropriate agents. Agents can write code, browse the web, send iMessages, manage Gmail/Google Calendar, and run scheduled tasks.

The app includes a "skills" system (electron/skills/) with pre-built integrations for Gmail, Google Calendar, Google Drive, Google Sheets, Notion, Slack, and a browser. It also supports MCP servers (electron/mcp/mcp-server.js) and channels (electron/channels/) for iMessage and Slack. The UI is a Phaser-based office scene (src/phaser/OfficeScene.ts) where agents visually walk around and work. Asset packs (scripts/generate-default-pack.js) let you customize sprites, furniture, backgrounds, and fonts.

How It Is Wired

Execution starts in electron/main.js (Electron main process). It initializes the app, sets up the database (electron/db/database.js, SQLite), and loads the src/ React app. The renderer communicates with the main process via electron/preload.js and electron/sdk-bridge.js.

The core control flow is in src/lib/orchestrator.ts. When you submit a goal, it uses src/lib/ai.ts to call Claude, which returns a plan. The orchestrator then creates tasks and assigns them to agents. Each agent's execution goes through electron/skills/skill-runtime-manager.js, which loads the appropriate skill (e.g., electron/skills/browser/index.js for web browsing) and runs its functions. Skills make external calls: the browser skill uses Playwright, Gmail/Calendar use OAuth (electron/skills/oauth-helper.js), and iMessage/Slack go through the channel modules.

The highest blast-radius file is src/lib/orchestrator.ts—it's the hub that all agent activity routes through. Changing it affects every workflow. The second is electron/skills/skill-runtime-manager.js, which loads and executes all skills; a bug there breaks every integration. The module graph shows a hub-and-spoke pattern with orchestrator.ts at the center; there's no significant cycle, so refactoring is manageable.

How To Use It

Setup: Clone and install dependencies.

git clone https://github.com/moses-y/outworked
cd outworked
npm install
npm run dev

Configuration: You'll need API keys for Claude and any services you use (Gmail, Slack, etc.). These are entered via the UI in src/components/KeysModal.tsx. No .env file is present, so keys are stored in the app's SQLite database.

Running it: The dev command starts the Electron app. For production, npm run build and npm run dist will produce a macOS installer (see electron-builder.yml).

Real-World Use

A practical scenario: "Build me a landing page and send it to my cofounder." The orchestrator splits this into subtasks: Frontend Dev scaffolds the site, Designer reviews it in the browser skill and takes a screenshot, Frontend Dev fixes spacing and starts a tunnel, then calls send_message via the iMessage channel to text the link. All visible in the office UI.

Code Health & Issues

No measured analysis has run for this repo yet. Structure looks sound: tests exist in electron/ (4 test files), CI is present in .github/workflows/, and a license is included.

  • Low - No end-to-end tests for the orchestrator or skill runtime; only unit tests on channels/triggers exist. The critical path (orchestrator.ts -> skill-runtime-manager.js) is untested.
  • Low - The build/ directory contains platform-specific artifacts (icon.icns, entitlements.mac.plist), which is fine, but there's no Windows/Linux build config in electron-builder.yml.

The Bottom Line

Outworked is a polished, genuinely useful tool for anyone who wants to run multi-agent Claude workflows with a visual interface. The skill system and MCP support give it real integration depth. It's macOS-only, and the orchestrator is the single point of failure—if it breaks, everything breaks. Worth trying if you're already invested in Claude Code and want to scale beyond single sessions.