Munder Difflin: Run an Office of Coding Agents on Your Own Machine

By Prahlad Menon 4 min read

Most of the “AI office” products — the dots, bots, and muses — want you on their cloud, their models, their per-seat billing. Munder Difflin takes the opposite bet: you already pay for a terminal coding CLI, so it turns that into a clone of you that keeps working while you’re away, and coordinates a whole office of agents on your own machine.

The name is an affectionate Office parody — “the world’s best agents, the world’s worst paper company” — but the engineering underneath is serious.

What it is

Munder Difflin is a desktop app (Electron · React · TypeScript · Pixi.js · xterm.js · node-pty) that wraps real terminal-agent CLIs as fully-capable agents and puts your clone in charge:

  • Every terminal is an agent. Each claude, codex, grok, kimi, qwen, opencode, crush, pi, copilot, cursor-agent, or custom session runs as a real process in its own pseudo-terminal (node-pty), byte-for-byte authentic, rendered with xterm.js. If it runs in a terminal, it runs here — on your existing subscription and its hourly limits.
  • Every agent is an avatar. Sessions appear as characters on a Pixi.js office floor. They walk to stations as they work, and envelopes fly desk-to-desk when they message each other. Click a desk to read that terminal live and type straight back into it.
  • The hive coordinates them. Agents read their memory and drain a mailbox; a router moves messages between inboxes; a GOD orchestrator (Michael, your clone) assigns, adjudicates, and escalates only what needs you.
  • Memory that survives the session. A markdown-first memory layer with a semantic recall index means agents remember across sessions and recall in milliseconds. Close the app, come back tomorrow, they still know what they learned.

How the coordination actually works

 you ── talk to ──► ┌─────────────┐
                    │  GOD agent  │  orchestrator / supervisor
                    │  (Michael)  │  roster · routing · adjudication
                    └──────┬──────┘
                           │ assigns · routes · escalates
          ┌────────────────┼────────────────┐
          ▼                ▼                 ▼
     ┌─────────┐      ┌─────────┐       ┌─────────┐
     │ agent A │ msg  │ agent B │  msg  │ agent C │
     │+ memory │ ───► │+ memory │  ───► │+ memory │
     └─────────┘      └─────────┘       └─────────┘
       └──── shared hive: memory · mailbox · blackboard · log ────┘

The clever part is the hive: a local git repo of plain files. Agents write to their own outbox/; the harness’s router delivers into recipients’ inbox/. No agent ever touches git itself — a single-committer design avoids the index.lock corruption that plagues naive multi-agent setups. Optional per-agent git worktrees keep parallel branches from colliding.

You brief exactly one agent — Michael — and he routes the traffic. He’s the boss of the floor; you’re still the boss of him.

Control and safety

This is the stuff that separates a toy from something you’d actually leave running:

  • Human gates. Spend, scope changes, and destructive operations escalate to an approvals queue you act on. Everything else stays autonomous.
  • Circuit breaker. A steer → constrain → stop ladder catches agents that loop, storm errors, or blow their budget.
  • Budgets & telemetry. Per-agent token budgets, real cost reconstructed from transcripts, a durable ledger, OpenTelemetry spans, and a tool waterfall.

What’s in the box

Beyond the floor: a Command Center with kanban tasks (dependencies, scheduled missions, heartbeats), a built-in Monaco IDE with git rails (commit graph, diffs, branch compare, guarded checkout, all brokered through the main process), a Skills browser, Slack/webhook ingestion (message a channel, Michael spawns an ephemeral worker and replies in-thread), and a shareable “Agent Gallery” of ready-made roles. Version 0.5.3 adds multi-window floors, ticket keys (V53-299), and local dictation/meeting transcription (the Pro “Stapler”).

Why it matters

The agent-orchestration space is filling up with SaaS that wants your work on their infrastructure. Munder Difflin is the local-first, bring-your-own-subscription counter-play: MIT-licensed, runs on the CLIs and keys you already have, and keeps the whole hive on your disk. For anyone already paying for Claude Code or Codex and wishing one terminal could become ten coordinated ones, this is the most charming way to find out if that works.

Repo: github.com/harnessmd/munder-difflin · Download: harnessmd.com/download