Skip to content

v0.3.3

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Jul 20:26

Munder Difflin v0.3.3

A local hive of Claude Code, Antigravity, Codex & Copilot agents that run themselves — messaging,
routing, and remembering, coordinated by a GOD orchestrator you talk to. Local-first and open source.

munderdiffl.in — see it in action, then grab a build below


What's new in 0.3.3 — A built-in Monaco IDE + GitHub Copilot CLI

Read your agents' work where it happens. The title bar gains an IDE button that opens a
full-window Monaco editor (the VS Code editor engine) over the office floor — and the engine
roster grows to seven with GitHub Copilot CLI, our first community-contributed provider.

  • Built-in Monaco IDE. A toggleable full-window overlay (the floor, terminals, and voice UX are
    untouched underneath): a git CHANGES rail listing every file your agents touched — click one
    for a read-only, side-by-side diff against HEAD — plus the workspace file tree, editor
    tabs
    with dirty-state dots, and Cmd/Ctrl+S save. Monaco is fully self-hosted (bundled
    workers, no CDN), themed to the harness palette, and every fs/git call is brokered through the
    main process
    — the renderer holds no direct disk access. Also hardened: keystrokes typed while
    a save is in flight can no longer be silently lost.
  • GitHub Copilot CLI as an agent engine (copilot, npm @github/copilot) — contributed in
    PR #101 by
    @anxkhn. Hire a Copilot-powered worker in its documented
    non-interactive print mode (copilot -p "<prompt>" -s --allow-all-tools --no-ask-user), with
    the auto-approval flags gated by the floor auto-mode toggle like every other engine, a
    model picker (Claude Sonnet 4.5 default · GPT-5.4 · auto), best-effort --resume session
    continuity, voice-hire support, and the official npm installer offered when the CLI is missing —
    authenticated by your existing GitHub Copilot login, no new keys. Honest caveat: print mode
    exits per turn with no hook bridge, so routed inbox mail bounces back to the GOD orchestrator
    rather than draining — Copilot workers shine on dispatched, self-contained tasks.

What's new in 0.3.2 — Realtime Michael: talk to the GOD orchestrator

Talk to Michael. The headline is Realtime Michael — a low-latency voice channel to the
GOD orchestrator
, running alongside the async terminal floor. Press Talk, and Michael listens,
answers, and acts in real time.

  • Talk to the GOD orchestrator by voice. A new low-latency realtime channel (OpenAI Realtime API
    over WebRTC) sits next to the async terminal. A Talk toggle — on Michael's card and in any
    fullscreen terminal — opens a mic session with echo-cancellation, semantic-VAD turn-taking +
    barge-in, and a device picker. Michael runs his own persona and answers in a natural voice, with an
    Off → Connecting → Listening → Responding → Working state machine live on his card.
  • Reads the hive, acts behind echo-back confirm. He reads the floor (tasks, board, memory,
    agents, activity, cost) and — behind a spoken echo-back confirmation for anything destructive —
    creates and assigns work, dispatches agents, spawns and kills workers, and steers the floor. Every
    voice action is attributed to a distinct michael-voice actor that pings the GOD terminal, so a
    voice-driven dispatch is auditable; there are hard refusals for killing the GOD agent or targeting
    all agents at once.
  • Voice read-layer over hive messages. Michael can now read message content, not just
    metadata: a read/brief-only get_messages tool surfaces a full message by id, one mailbox, or
    the latest across the floor
    — with all secret redaction done main-side so the voice layer
    only ever receives already-redacted bodies (no provider / Slack / GitHub / AWS / Google key, JWT,
    PEM block, or Bearer token can leak). Read-only — it adds no new write path.
  • "Respond when done." Voice-dispatched work reports back on its own: a completion watcher
    detects when a dispatched task finishes and pushes the event into the live session so Michael
    speaks it unprompted
    ; if the session is closed, completions queue to a desktop notification and a
    warm-start on reconnect.
  • BYOK, main-only. Bring-your-own OpenAI key: the key is decrypted main-only, minted into
    short-lived ephemeral session tokens, and never reaches the renderer. A live session cost meter
    sits by the Talk toggle, with a hard spend cap and an idle auto-disconnect so a
    forgotten-open mic can't run up a bill.
  • Slack hardening + maintenance. Proactive Slack posting is off by default (no sends without
    an explicit channel + thread), auto-compaction becomes a dedicated maintenance schedule
    decoupled from standups (so editing standups can't silently drop it), and each agent now carries
    queryable per-agent environment metadata with a working-directory validity guard.

Live verification note. The realtime voice loop is human-verified end-to-end on a real
OpenAI key — connect → mic → Michael answers via the read tools, and the full destructive path
(spoken echo-back confirm → spawn / kill / dispatch → worker appears on the floor → completion
spoken back) was exercised live. It requires your own OpenAI key with Realtime API access;
without one the Talk button stays visibly disabled with a "needs OpenAI key" cue. The new
voice-message read-layer's redaction battery is unit-tested in lockstep with the main process; its
end-to-end voice read is human-gated like all realtime work.


What's new in 0.3.1 — Three more engines: OpenCode · Crush · pi.dev

The floor gained three new coding CLIs, each usable as a worker and as Michael, with
bring-your-own keys + local LLMs: OpenCode (opencode) via a native-plugin bridge,
Crush (crush, Charmbracelet's Go TUI) via a per-agent proxy bridge, and pi.dev (pi) via a
hooks bridge. A new Settings → AI Engines panel collects per-provider API keys (stored
write-only, encrypted) and local base-URLs (Ollama / LM Studio / vLLM). Plus two reliability
fixes: the message router now survives system sleep (re-arms and drains the backlog on wake), and
Codex workers get full filesystem + auto-approval from spawn (parity with Claude).

Everything from v0.3.0 (selectable engines, integrations registry + loopback secret broker,
Slack-spawned ephemeral workers, Agent Gallery) and earlier — Free Flow voice dictation, the
enterprise Knowledge Graph, multi-window "floors", the rich message composer, agent session resume,
and drag-a-file path injection — is included.
See the CHANGELOG for full detail.


⤓ Downloads

Latest builds for every platform. The macOS build is universal — one DMG that runs on both
Apple Silicon and Intel.

🍎 macOS

Build File
Universal (Apple Silicon + Intel) Munder-Difflin-0.3.2-mac-universal.dmg

🪟 Windows

Build File
Installer (x64) — recommended Munder-Difflin-0.3.2-win-x64-setup.exe
Portable (x64, no install) Munder-Difflin-0.3.2-win-x64-portable.exe

🐧 Linux

Build File
AppImage (x86_64) Munder-Difflin-0.3.2-linux-x86_64.AppImage

📦 Source

Source code (zip) ·
Source code (tar.gz)

Verify your download: SHA256SUMS.txt — then shasum -a 256 -c SHA256SUMS.txt (macOS/Linux) or Get-FileHash (Windows).

The links above always point at the latest release (/releases/latest/download/…),
so this page stays correct across versions.


First launch

  • macOS — the build is signed with a Developer ID (hardened runtime). If macOS
    still shows an "unidentified developer" warning on first open, right-click the app →
    OpenOpen once. After that, the first time agents touch a folder you'll get a
    single macOS privacy prompt for Documents/Desktop/Downloads — allow it once and the
    grant sticks (it covers the claude agents the app spawns), because the grant is bound
    to the app's stable signature.
  • Windows — not code-signed yet; SmartScreen may show "Windows protected your PC" →
    More infoRun anyway.
  • Linux — make the AppImage executable: chmod +x Munder-Difflin-*.AppImage, then run it.

Requirements

  • macOS 12+, Windows 10/11, or a modern Linux desktop
  • Claude Code installed and on your PATH (and/or the Antigravity agy or OpenAI codex CLI for those providers)
  • A Claude Code subscription (Munder Difflin drives your existing claude CLI — it doesn't replace it)
  • For Realtime Michael (voice): your own OpenAI key with Realtime API access — without it the Talk button stays disabled

🛠 Build from source

git clone https://github.com/chaitanyagiri/munder-difflin.git
cd munder-difflin
npm install        # rebuilds node-pty for Electron
npm run dev        # launches the app with hot reload

Node 18+ and a C/C++ toolchain are required (Xcode CLT on macOS, Build Tools on Windows).
To produce installers yourself: npm run dist (current OS), or dist:mac / dist:win / dist:linux.


What's inside

  • The simulation — every agent is a real claude (or agy / codex / local-provider) pseudo-terminal, visualized as an avatar on a watchable office floor (node-pty · xterm.js · Pixi.js).
  • Talk to Michael — a realtime voice channel to the GOD orchestrator that reads the hive and acts behind spoken echo-back confirmation, BYOK and main-only.
  • Selectable engines + per-hire capabilities — each hire (and Michael himself) runs on a pluggable engine, with its own consented skills + MCP catalog.
  • MemPalace — a markdown-first, semantic memory layer the whole office shares; cross-session recall in ~12ms.
  • GOD orchestrator + hive — one agent you talk to routes work to specialists and stays autonomous, escalating only critical items (spend, destructive ops, scope) to you natively, through human-in-the-loop prompts. It can also spawn an ephemeral worker straight from Slack and tear it down safely.
  • Plugs into your setup — your subscription, settings, skills, and MCP servers, plus an integrations registry with a write-only secret broker; /remote-control reaches the whole floor from your phone.

Full notes in the CHANGELOG.


Links

Website ·
Repo ·
Issues ·
Contribute ·
Become a patron

MIT-licensed. An affectionate parody — not affiliated with NBC's The Office or Dunder Mifflin.