The Office ๐Ÿ–ฅ๏ธ

May 5, 2026 ยท View on GitHub

A virtual pixel-art startup that builds your software for you.

An open-source Electron app where a team of AI agents โ€” CEO, Product Manager, Architect, Engineers, DevOps, UI/UX, and more โ€” collaborate to take your idea from a one-line pitch all the way to a working, committed codebase. You watch the whole thing happen on a pixel-art map: agents walk to their desks, type at their monitors, gather in the boardroom for design reviews, and ship code from the open-work area.

Electron React PixiJS TypeScript License

๐ŸŒ landing-alpha-cyan.vercel.app โ€” see what it does, then come back to install.

The Office


โœจ What is this?

Most AI coding tools give you a chat box and a single agent. The Office gives you a whole startup.

Hand it an idea โ€” "a habit tracker with streak rewards", "a World Cup prediction game with friend leagues", "a markdown-driven docs site" โ€” and it routes the work through a structured four-phase pipeline. Each phase is run by a specialized agent (or several) backed by the Claude Agent SDK. They write actual artifacts to your project โ€” vision briefs, PRDs, market analysis, HTML mockups, system designs, kanban tasks โ€” and ultimately produce real source files committed to a real git repo.

You stay in the driver's seat the whole way: you approve mockups, lock the implementation plan, restart phases if you don't like the direction, and watch the canvas to see who's working on what.

It's a project generator, a living planning canvas, and an agent observability tool all in one โ€” and it runs entirely on your machine.

๐ŸŽฌ The Office flow

Every project moves through four phases. Each phase has its own dedicated room on the map and its own cast of characters.

1. ๐Ÿ’ก Imagine โ€” the boardroom

You pitch your idea in chat. The agents take over and build the design package together:

AgentOutput
CEO01-vision-brief.md โ€” the elevator pitch + non-goals
Product Manager02-prd.md โ€” full product requirements doc
Market Researcher03-market-analysis.md โ€” competitors, positioning, demand signals
UI/UX Expert05-ui-designs/ โ€” 5โ€“8 self-contained HTML mockups + index
Chief Architect04-system-design.md โ€” stack picks, data model, infra outline

You review the UI mockups in a built-in dialog (open each in your browser, send back revisions, or approve). Each acted artifact is idempotent: if you close the app mid-imagine and come back, the orchestrator skips what's already on disk and continues.

2. ๐Ÿช– War Room โ€” the conference table

The Project Manager turns the design docs into a milestone-driven plan.md, and the Team Lead breaks it down into tasks.yaml โ€” a dependency-graph of small Claude-task units, each with explicit acceptance criteria. You review and approve the plan before anything ships.

3. ๐Ÿ”จ Build โ€” the open-work area

The Team Lead dispatches tasks to engineers (Frontend, Backend, Mobile, Data, DevOps, Automation). Each engineer claims a PC seat (pc-1 โ€ฆ pc-6), the monitor lights up, and they start typing. A two-stage review (spec + quality) runs on each completed task. Concurrent tasks for different engineering roles run in parallel via a worker pool.

Greenfield projects get an automatic git repo with one commit per phase (Initial commit (The Office), imagine: โ€ฆ, warroom: โ€ฆ, build: โ€ฆ). Every restart creates an office/iteration-N backup branch first, so you never lose committed work.

4. ๐ŸŽ‰ Complete โ€” celebration time

The DevOps agent emits a RUN.md so anyone can boot the project, and the canvas hosts a small confetti choreography. From here you can re-enter Workshop mode to send incremental change requests against the existing repo โ€” each request runs as an isolated git branch and gets merged on accept.


๐Ÿš€ Quick start

Prerequisites

  • Node.js 20+ and npm
  • A Claude API key or active Claude Code subscription (the app will guide you through connecting one on first launch)

Install + run

git clone https://github.com/shahar061/the-office.git
cd the-office
npm install
npm run dev

That boots the Electron app in dev mode with HMR.

First project

  1. Click Create Project, give it a name, pick a folder.
  2. The CEO greets you in chat โ€” type your idea (a sentence or two is plenty).
  3. Watch the imagine phase play out; review and approve the mockups when prompted.
  4. Click Continue to War Room when imagine completes.
  5. Approve the plan. Click Start Build.
  6. The kanban panel and the canvas update live as engineers run tasks.
  7. When build finishes, your project is in the folder you picked, with a clean git history.

Other commands

npm run build           # Production bundle (electron-vite)
npm run test            # Vitest single run
npm run test:watch      # Watch mode
npm run dev:jump        # Dev tool โ€” jump straight to a specific agent/phase

Building installers locally

npm run pack            # Unpacked app for smoke-testing (no installer)
npm run dist            # Installer for the host OS
npm run dist:mac        # .dmg + .zip (macOS, x64 + arm64)
npm run dist:win        # .exe NSIS installer (Windows, x64)
npm run dist:linux      # .AppImage (Linux, x64)

Output lands in release/. Builds are unsigned by default โ€” macOS users will see a Gatekeeper warning, Windows users a SmartScreen warning. Drop platform icons in build/ (icon.icns, icon.ico, icon.png) to override the default Electron icon.

Cutting a release

The Release GitHub Actions workflow builds installers for macOS, Windows, and Linux in parallel and uploads them to a draft GitHub Release.

  • Tag-triggered: git tag v1.0.1 && git push origin v1.0.1 โ€” builds run on all three OSes and publish to a draft release named after the tag.
  • Manual: open the Release workflow on GitHub โ†’ Run workflow โ†’ set publish: false for a build-only smoke test (artifacts attached to the run) or publish: true to publish.

When the workflow finishes, edit the draft release on GitHub, write the changelog, and publish it.


๐Ÿค Contributing โ€” we want your help

The Office is a community project. It's ambitious in scope (a pixel-art Electron app + a multi-agent orchestrator + a designed-from-scratch UX), and there's far more to build than any one maintainer can ship alone. If any of this resonates with you, you're in the right place.

How to contribute

  1. Open an issue first for anything non-trivial โ€” even a "I'd like to try X, sound good?" comment on an existing issue is enough to start a discussion.
  2. Fork โ†’ branch โ†’ PR. Branch names that mirror the area help (feat/kanban-graph-zoom, fix/mr-desk-pathfinding, i18n/he-onboarding).
  3. Keep PRs focused. A small, well-tested change lands in days; a sprawling one stalls.
  4. Tests for non-trivial logic. Vitest is set up; please add coverage where it makes sense (especially anything touching the orchestrator, git flows, or the seat/clone manager).
  5. Match the existing tone. Code is plain TypeScript with no class-heavy abstractions; comments explain why, not what.

Where we need help

These are concrete areas where contributions would have the biggest impact today. Pick anything that catches your eye.

๐ŸŒ Internationalization

  • More language packs beyond English + Hebrew. The dictionary lives in src/renderer/src/i18n/dictionaries/. Adding a new locale is mostly translation work plus a one-line registration.
  • RTL polish โ€” there's already a Hebrew pass, but there are always edge cases (drag handles, popups, scrollbars).

๐ŸŽจ Pixel-art assets

  • More agent sprite variants (we currently reuse three sprite sheets across 15 roles).
  • New office rooms / decorations on the Tiled map (src/renderer/src/assets/maps/office.tmj).
  • Phase-specific environmental touches (war room whiteboards updating, build-phase server racks lighting up, etc.).

๐Ÿค– Orchestrator depth

  • More phase agents (security review, accessibility audit, performance review).
  • Better dependency tracking in the build phase โ€” the current task graph is simple; we'd love a richer one.
  • Smarter retry/recovery when an agent fails to produce an expected artifact.

๐Ÿงฐ Tooling integrations

  • Other coding-agent SDKs alongside Claude (Codex, OpenCode SQLite, locally-hosted models via Ollama, etc.). The adapter shape is small and friendly.
  • Optional CI integration so the build phase can run real test suites and report back into the kanban.

๐Ÿ“ฑ Mobile companion

  • The repo ships an experimental mobile viewer (mobile/) that mirrors the office in real time. It works but the UX is rough โ€” pairing flow, push notifications, offline mode, and design polish would all be welcome.

๐Ÿ“– Documentation

  • Onboarding screencasts.
  • Per-phase "what to expect" walkthroughs.
  • A clean architecture deep-dive (the orchestrator โ†’ SDK bridge โ†’ renderer flow is non-obvious).

Good first issues

Look for the good first issue label on the issue tracker. Examples of what tends to land there: missing translations, sprite tweaks, polish on a specific dialog, small bugs we've already triaged.

If nothing's tagged yet and you want to dive in, open a discussion describing what you'd like to tackle and we'll scope it together.

Reporting bugs

Use the Report a bug button inside the app (top-right icon rail โ†’ ๐Ÿ›). It auto-attaches your platform, app version, and language, and posts straight into the project's bug tracker. For things that are blocking you right now, also drop an issue on GitHub so we can discuss in the open.

Code of conduct

Be kind, be specific, assume good faith. We're building this for fun and for craft โ€” let's keep it that way. Full text in CODE_OF_CONDUCT.md.

For deeper detail on dev setup, PR workflow, and what good contributions look like, see CONTRIBUTING.md.


๐Ÿง‘โ€๐Ÿ’ป Used by

A list of teams and indie makers building with The Office. Add yourself by opening a PR that appends to this list โ€” one bullet, link optional.

  • (Be the first โ€” open a PR!)

๐Ÿ— Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Renderer (React + PixiJS)                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Chat  โ”‚ โ”‚ Pixel   โ”‚ โ”‚ Kanban โ”‚ โ”‚ Stats  โ”‚ โ”‚   Logs   โ”‚  โ”‚
โ”‚  โ”‚  Panel โ”‚ โ”‚ Office  โ”‚ โ”‚ Board  โ”‚ โ”‚ Panel  โ”‚ โ”‚   View   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚              Zustand stores ยท i18n ยท split layout            โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ IPC bridge (preload.ts) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Main process (Electron)                                    โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚
โ”‚  โ”‚  Phase orchestrators (imagine / warroom / build /    โ”‚   โ”‚
โ”‚  โ”‚  workshop) โ†’ SDK bridge โ†’ Claude Agent SDK           โ”‚   โ”‚
โ”‚  โ”‚  Project manager ยท Artifact store ยท Chat history     โ”‚   โ”‚
โ”‚  โ”‚  Greenfield git ยท Workshop git gate                  โ”‚   โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Project on disk                                            โ”‚
โ”‚   docs/office/   .the-office/   src/   โ€ฆ                    โ”‚
โ”‚   01-vision-brief.md   chat-history/                        โ”‚
โ”‚   02-prd.md            pending-question.json                โ”‚
โ”‚   โ€ฆ                                                          โ”‚
โ”‚   git: Initial commit ยท imagine: โ€ฆ ยท warroom: โ€ฆ ยท build: โ€ฆ  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Project layout

the-office/
โ”œโ”€โ”€ electron/               # Main process
โ”‚   โ”œโ”€โ”€ main.ts            # App bootstrap
โ”‚   โ”œโ”€โ”€ preload.ts         # window.office IPC bridge
โ”‚   โ”œโ”€โ”€ ipc/               # IPC handlers (project, phase, settings, mobile)
โ”‚   โ”œโ”€โ”€ orchestrator/      # imagine, warroom, build, workshop runners
โ”‚   โ”œโ”€โ”€ sdk/               # Claude Agent SDK bridge + permission handler
โ”‚   โ””โ”€โ”€ project/           # Git, artifact store, chat history, scanner
โ”œโ”€โ”€ src/renderer/src/       # Renderer (React + PixiJS)
โ”‚   โ”œโ”€โ”€ components/        # Chat, Kanban, Settings, Workshop, Split layout, โ€ฆ
โ”‚   โ”œโ”€โ”€ office/            # PixiJS scene, characters, engine, fog of war
โ”‚   โ”œโ”€โ”€ stores/            # Zustand: project, chat, office, kanban, layout, โ€ฆ
โ”‚   โ””โ”€โ”€ i18n/              # Translation dictionaries (en, he)
โ”œโ”€โ”€ mobile/                 # Experimental mobile companion
โ”œโ”€โ”€ shared/                 # Types + reducers shared between processes
โ”œโ”€โ”€ agents/                 # Agent role definitions (.md system prompts)
โ”œโ”€โ”€ feedback-admin/         # Cloudflare Pages bug-report dashboard
โ”œโ”€โ”€ feedback-worker/        # Cloudflare Worker bug-report intake
โ”œโ”€โ”€ dev-jump/               # Dev-only tool to seed a project mid-flow
โ””โ”€โ”€ tests/                  # Vitest suite

Key concepts

  • Agents are markdown. Each role's system prompt lives in agents/<role>.md. Edit the file, restart, and the agent's personality and tools change.
  • Phases are idempotent. Each phase's runner uses runAct to skip work whose artifact already exists on disk, so reopening a half-done project picks up where you left off.
  • Greenfield git is automatic. New projects get a git repo with one commit per phase. Restarting a phase parks the previous work on office/iteration-N and resets main.
  • Engineers ride clones. The 6 engineering roles share a pool of 6 PC seats (pc-1โ€ฆpc-6); a clone character is spawned per active session and despawned when refcount reaches zero (debounced to absorb worker-pool churn).

๐Ÿงฐ Tech stack

LayerTechnology
Desktop frameworkElectron 41
UI frameworkReact 19
2D renderingPixiJS 8 (WebGL/WebGPU)
State managementZustand 5
Build toolingVite 6 + electron-vite 5
Agent SDK@anthropic-ai/claude-agent-sdk
File watchingChokidar 5
TestingVitest 1.6
Map formatTiled JSON (.tmj)
Sprite assetsLimeZu pixel-art character sheets

๐Ÿ“œ License

ISC. Use it, fork it, ship things with it. Attribution is appreciated but not required.


Built with care, in the open. PRs and issues warmly welcomed.