an open-source alternative to the dots, bots and muses of the world, run an office of claude code/codex like agents on your laptop, sandboxes or anywhere, uses your existing subscriptions
This report summarizes scanner evidence for HarnessMD/munder-difflin, a TypeScript project with 8,667 GitHub stars. SynthScan examined 310,521 lines of code across 1156 source files, recording 783 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 5.2 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 518 finding(s).
Are imports declared and package/API names verified? 20 finding(s).
Are wrappers, guards, and repeated structures necessary? 281 finding(s).
Which changes need focused human review? 783 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 783 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/mapgen/build_map.py | 26 | # ── source map ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 58 | # ── blank new layers ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 75 | # ── floor (green checker, matches original) ─────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 81 | # ── outer shell ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 94 | # ── interior wall helpers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 109 | # ── place a furniture stamp; returns the seat tile (gx,gy) if any ───────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 121 | # ══ ROOMS ════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 143 | # ══ OPEN FLOOR FURNITURE ═════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 167 | # ══ COLLISION ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 187 | # ── spawn points (claim order set in OfficeFloor) ───────────────────────────── | COMMENT |
| MEDIUM | tools/mapgen/build_map.py | 214 | # ── assemble & write ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/wall.html | 371 | // ── the wall ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/wall.html | 462 | // ── Anonymous analytics (PostHog) — same posture as the landing page ────── | COMMENT |
| MEDIUM | docs/hires/scripts/build-data.py | 21 | # ── optional: sync models.json from upstream's hardcoded lists ────────────── | COMMENT |
| MEDIUM | docs/hires/scripts/build-data.py | 39 | # ── manifests → variants + manifests-data.js ──────────────────────────────── | COMMENT |
| MEDIUM | docs/hires/scripts/build-data.py | 67 | # ── models.json → models.js ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 7 | # ── What this deliberately does NOT do ───────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 13 | # ── Why pull_request_target ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 50 | // ── The maintainer escape hatch ────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 61 | // ── What counts as evidence ────────────────────────────────────── | COMMENT |
| MEDIUM | .github/workflows/pr-evidence.yml | 80 | // ── Before and after, separately ───────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/GitPanes.tsx | 57 | // ─── HISTORY ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/GitPanes.tsx | 156 | // ─── COMPARE ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/IdePanel.tsx | 155 | // ─── Buffer / diff loaders ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/IdePanel.tsx | 189 | // ─── Tab actions ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/IdePanel.tsx | 286 | // ─── Git status (changed files) ─────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/ide/IdePanel.tsx | 331 | // ─── Left splitter drag ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/freeflow/recorder.ts | 50 | // ─── Recording internals ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 51 | // ── soft writes (execute immediately) ───────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 149 | // ── wait for a dispatched task to finish (rt-12 await-in-session) ────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 182 | // ── destructive / expensive (echo-back confirm required) ────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 252 | // ── v0.3.4 full-control verbs ───────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/actions.ts | 376 | // ── confirm / cancel (drive the two-phase commit) ───────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 27 | // ─── spoken-prose formatting helpers ──────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 106 | // ─── the read-tools ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 114 | // ── get_fleet_status ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 148 | // ── get_tasks ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 201 | // ── get_cost ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 235 | // ── get_triggers ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 262 | // ── get_config ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 303 | // ── get_memory ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 383 | // ── get_activity ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 417 | // ── get_messages ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 463 | // ── get_agent_detail ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 509 | // ── list_agents ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 555 | // ── get_board ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 570 | // ── get_floor_state (v0.3.4) ────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/realtime/tools.ts | 601 | // ── get_app_info (v0.3.4) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/integrations/registryClient.ts | 76 | // ───────────────────────── PROVISIONAL mock (dev fallback only) ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/integrations/registryClient.ts | 119 | // ───────────────────────── exported client (real → mock fallback) ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/integrations/registryClient.ts | 151 | // ───────────────────────── small UI helper ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 344 | // ─── Floor tab — roster, model, dispatch, dirs, assistant ──────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1029 | // ─── Archived agents — retained + flagged, kept off the floor ──────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1076 | // ─── Memory tab ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1172 | // ─── Fleet telemetry bits (folded into the Floor AGENTS cards) ─────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1252 | // ─── Activity tab — hive event log + board ─────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/CommandCenterPanel.tsx | 1303 | // ─── small shared bits ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/IntegrationsRegistry.tsx | 208 | // ───────────────────────── GALLERY ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/IntegrationsRegistry.tsx | 244 | // ───────────────────────── CONFIGURE ───────────────────────── | COMMENT |
| MEDIUM | src/renderer/src/components/IntegrationsRegistry.tsx | 354 | // ───────────────────────── LIST (default) ───────────────────────── | COMMENT |
| 184 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | HIVE.md | 1 | # The Hive — autonomous multi-agent layer | COMMENT |
| MEDIUM⚡ | docs/llms.txt | 81 | - [Claude Code Automation: Let Agents Build While You Sleep](https://munderdiffl.in/blog/claude-code-automation-while-yo | CODE |
| MEDIUM⚡ | docs/llms.txt | 88 | - [A Small-Team Playbook for AI Coding Agents](https://munderdiffl.in/blog/small-team-ai-agents-playbook/): How a small | CODE |
| MEDIUM⚡ | docs/llms.txt | 91 | - [What's New in Agentic AI: A June 2026 Field Guide](https://munderdiffl.in/blog/whats-new-in-agentic-ai-june-2026/): A | CODE |
| MEDIUM | docs/llms.txt | 233 | ### orchestration | COMMENT |
| MEDIUM | docs/llms.txt | 252 | - [Overnight AI Coding: What's Realistic (and What's Not)](https://munderdiffl.in/blog/overnight-ai-coding-realistic-exp | CODE |
| MEDIUM | docs/llms.txt | 254 | - [Run an Office of AI Agents While You Sleep](https://munderdiffl.in/blog/run-an-office-of-ai-agents/): What it takes t | CODE |
| MEDIUM | docs/sitemap.xml | 1021 | <loc>https://munderdiffl.in/blog/whats-new-in-agentic-ai-june-2026/</loc> | CODE |
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM | docs/blog/human-in-the-loop-ai-agents/index.html | 238 | <h2 id="guardrails-that-keep-the-queue-honest" tabindex="-1">Guardrails that keep the queue honest <a class="anchor" hre | CODE |
| MEDIUM | docs/blog/human-in-the-loop-ai-agents/index.html | 323 | <li class="lvl-2"><a href="#the-trap-approval-fatigue">The trap: approval fatigue</a></li><li class="lvl-2"><a h | CODE |
| MEDIUM | docs/blog/agent-tools-today-2026-10-11/index.html | 193 | <h2 id="top-4-moves-from-multi-agent-tools" tabindex="-1">Top 4 moves from multi agent tools <a class="anchor" href="#to | CODE |
| MEDIUM | docs/blog/agent-tools-today-2026-10-11/index.html | 234 | <li class="lvl-2"><a href="#top-4-launches">Top 4 launches</a></li><li class="lvl-2"><a href="#top-4-skills-mcp- | CODE |
| MEDIUM | docs/blog/cursor-alternatives/index.html | 199 | <p><strong>1. Claude Code.</strong> <a href="https://code.claude.com/docs/en/overview">Claude Code</a> is, in Anthropic’ | CODE |
| MEDIUM | …/blog/human-in-the-loop-approving-ai-agents/index.html | 199 | <a href="/#what">multi-agent harness</a> does it.</p> | CODE |
| MEDIUM | docs/blog/agent-tools-today-2026-10-10/index.html | 194 | <h2 id="top-4-moves-from-multi-agent-tools" tabindex="-1">Top 4 moves from multi agent tools <a class="anchor" href="#to | CODE |
| MEDIUM | docs/blog/agent-tools-today-2026-10-10/index.html | 236 | <li class="lvl-2"><a href="#top-5-launches">Top 5 launches</a></li><li class="lvl-2"><a href="#top-4-skills-mcp- | CODE |
| MEDIUM | docs/blog/mistral-large-4/index.html | 301 | <p class="a">1M tokens. Mistral's model page listed a context size of 1M tokens on 6 Oct 2026, and defines | CODE |
| MEDIUM | docs/blog/mistral-large-4/index.html | 335 | <li class="lvl-2"><a href="#what-is-mistral-large-4">What is Mistral Large 4?</a></li><li class="lvl-2"><a href= | CODE |
| MEDIUM | …s/blog/architecture-two-planes-one-renderer/index.html | 283 | <a href="https://munderdiffl.in/#what">multi-agent harness</a> is.</p> | CODE |
| MEDIUM | …s/blog/architecture-two-planes-one-renderer/index.html | 304 | <p class="a">The terminal plane carries raw pseudo-terminal bytes from each agent's shell (node-pty) to an | CODE |
| MEDIUM | docs/blog/claude-cowork-vs-claude-code/index.html | 193 | <p>The job is the difference, not the engine. Anthropic’s <a href="https://support.claude.com/en/articles/13345190-get-s | CODE |
| MEDIUM | docs/blog/claude-cowork-vs-claude-code/index.html | 196 | <p>The <a href="https://code.claude.com/docs/en/overview">Claude Code docs</a> describe it as “an agentic coding tool th | CODE |
| MEDIUM | docs/blog/claude-cowork-vs-claude-code/index.html | 296 | <p class="a">No. Anthropic's help page says Cowork uses the same agentic architecture that powers Claude C | CODE |
| MEDIUM | …og/what-is-an-agent-development-environment/index.html | 196 | <p>Then the coding-tools world borrowed the acronym for something adjacent but distinct. <a href="https://github.com/sta | CODE |
| MEDIUM | …og/what-is-an-agent-development-environment/index.html | 222 | <a href="https://www.augmentcode.com/guides/what-is-an-agentic-development-environment">Augment Code — What is an agenti | CODE |
| MEDIUM⚡ | …og/what-is-an-agent-development-environment/index.html | 242 | <p class="a">It's adjacent but a different category: a multi-agent harness, or an agent office. Like an AD | CODE |
| MEDIUM⚡ | docs/blog/context-engineering-for-ai-agents/index.html | 228 | <h2 id="multi-agent-makes-it-sharper" tabindex="-1">Multi-agent makes it sharper <a class="anchor" href="#multi-agent-ma | CODE |
| MEDIUM⚡ | docs/blog/context-engineering-for-ai-agents/index.html | 234 | <p>The whole architecture of <a href="https://munderdiffl.in/#what">a multi-agent harness</a> is, viewed one way, an | CODE |
| MEDIUM | docs/blog/context-engineering-for-ai-agents/index.html | 319 | <p class="a">Context engineering is the discipline of deciding exactly what tokens occupy a model's finite | CODE |
| MEDIUM | docs/blog/context-engineering-for-ai-agents/index.html | 353 | <li class="lvl-2"><a href="#the-window-is-a-budget-not-a-bucket">The window is a budget, not a bucket</a></li><l | CODE |
| MEDIUM | docs/blog/run-an-office-of-ai-agents/index.html | 205 | <h3 id="guardrails" tabindex="-1">Guardrails <a class="anchor" href="#guardrails" aria-hidden="true">#</a></h3> | CODE |
| MEDIUM | docs/blog/run-an-office-of-ai-agents/index.html | 250 | <li class="lvl-2"><a href="#the-picture">The picture</a></li><li class="lvl-2"><a href="#what-makes-it-actually- | CODE |
| MEDIUM | docs/blog/open-source-ai-tools-on-purpose/index.html | 292 | <p class="a">It can be, when 'open' means a crippled core with the useful parts behind a cloud subscri | CODE |
| MEDIUM | docs/blog/prompt-caching-for-ai-agents/index.html | 267 | <h2 id="the-multi-agent-angle" tabindex="-1">The multi-agent angle <a class="anchor" href="#the-multi-agent-angle" aria- | CODE |
| MEDIUM | docs/blog/prompt-caching-for-ai-agents/index.html | 347 | <li class="lvl-2"><a href="#an-agent-re-sends-almost-the-same-prompt-every-turn">An agent re-sends almost the sa | CODE |
| MEDIUM | docs/blog/what-is-aeo-for-dev-tools/index.html | 369 | AEO done in public. <a href="/#install">Download Munder Difflin</a> to see it run, or read <a href="/#what">what a multi | CODE |
| MEDIUM | …s/blog/manage-multiple-claude-code-sessions/index.html | 273 | <p>When the checklist starts feeling like a second job, that’s what a <a href="https://munderdiffl.in/#what">multi-agent | CODE |
| MEDIUM | docs/blog/claude-squad-alternative/index.html | 214 | <p>The alternative isn’t “a fancier terminal.” It’s a different <em>shape</em>: a <a href="/#what">multi-agent harness</ | CODE |
| MEDIUM⚡ | …/blog/building-a-terminal-ui-xterm-node-pty/index.html | 338 | <a href="https://munderdiffl.in/#what">multi-agent harness</a> — the part that makes “a hive of agents” something | CODE |
| MEDIUM | docs/blog/compressing-agent-memory/index.html | 285 | <p class="q">Why compress an agent's memory instead of using a bigger context window?</p> | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 198 | <h2 id="what-orchestration-means-for-coding-agents" tabindex="-1">What “orchestration” means for coding agents <a class= | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 258 | <h2 id="designing-good-orchestration" tabindex="-1">Designing good orchestration <a class="anchor" href="#designing-good | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 292 | <p>Munder Difflin ships this <a href="https://munderdiffl.in/#how">orchestration model</a> out of the box: a GOD agent y | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 294 | <a href="https://munderdiffl.in/#install">Download Munder Difflin</a> to orchestrate your own team of Claude Code | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 333 | <li class="lvl-2"><a href="#what-orchestration-means-for-coding-agents">What “orchestration” means for coding ag | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 197 | <p>The broader discourse picked the term up fast, and a rough consensus formed: harness engineering is the <strong>third | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 258 | <p class="a">Yes — that's the category. Munder Difflin is a free, MIT-licensed, local-first multi-agent ha | CODE |
| MEDIUM | docs/blog/what-is-claude-cowork/index.html | 192 | <p>Claude Cowork is a mode of Claude that does a multi-step task for you, where chat only answers a message. Anthropic’s | CODE |
| MEDIUM⚡ | …/overnight-ai-coding-realistic-expectations/index.html | 232 | <h2 id="the-guardrails-that-make-overnight-work-safe" tabindex="-1">The guardrails that make overnight work safe <a clas | CODE |
| MEDIUM⚡ | …/overnight-ai-coding-realistic-expectations/index.html | 235 | <a href="/#what">multi-agent harness</a> builds in:</p> | CODE |
| MEDIUM | …/overnight-ai-coding-realistic-expectations/index.html | 289 | <p>Munder Difflin is a local, open-source <a href="/#why">multi-agent harness</a> built for exactly this: agents that | CODE |
| MEDIUM | …/overnight-ai-coding-realistic-expectations/index.html | 305 | <p class="a">It's safe when you set guardrails: branch-only changes (never straight to main), human approv | CODE |
| MEDIUM | …/overnight-ai-coding-realistic-expectations/index.html | 334 | <li class="lvl-2"><a href="#what-overnight-agents-actually-do-well">What overnight agents actually do well</a></ | CODE |
| MEDIUM | docs/blog/local-first-ai-agent-orchestration/index.html | 201 | <h2 id="where-the-orchestration-loop-actually-runs" tabindex="-1">Where the orchestration loop actually runs <a class="a | CODE |
| MEDIUM | docs/blog/local-first-ai-agent-orchestration/index.html | 330 | <li class="lvl-2"><a href="#where-the-orchestration-loop-actually-runs">Where the orchestration loop actually ru | CODE |
| MEDIUM | docs/blog/agent-tools-today-2026-10-03/index.html | 193 | <h2 id="top-5-moves-from-multi-agent-tools" tabindex="-1">Top 5 moves from multi agent tools <a class="anchor" href="#to | CODE |
| MEDIUM | docs/blog/agent-tools-today-2026-10-03/index.html | 238 | <li class="lvl-2"><a href="#top-5-launches">Top 5 launches</a></li><li class="lvl-2"><a href="#top-5-skills-mcp- | CODE |
| MEDIUM | docs/blog/mcp-security-tool-poisoning/index.html | 265 | <p>A <a href="/#what">multi-agent harness</a> gives every agent MCP tools and skills — which means it inherits this | CODE |
| 132 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM | docs/blog/feed.xml | 99 | <title>ZCode: Z.ai's coding agent harness, explained</title> | CODE |
| MEDIUM | docs/blog/feed.xml | 296 | <summary>Pi agent is Earendil's MIT licensed coding agent harness. What it is, how to install it, what Pi 1.0 an | CODE |
| MEDIUM | docs/blog/index.html | 408 | <h3><a href="/blog/what-is-zcode/">ZCode: Z.ai's coding agent harness, explained</a></h3> | CODE |
| MEDIUM | docs/blog/index.html | 412 | <a class="more" href="/blog/what-is-zcode/" aria-label="Read: ZCode: Z.ai's coding agent harness, explained">R | CODE |
| MEDIUM | docs/blog/index.html | 793 | <p class="dek">Pi agent is Earendil's MIT licensed coding agent harness. What it is, how to install it, what Pi | CODE |
| MEDIUM | docs/blog/index.html | 1433 | <p class="dek">Munder Difflin finished #5 Product of the Day on Product Hunt — ahead of DeepSeek's harness launc | CODE |
| MEDIUM | docs/blog/index.html | 1593 | <p class="dek">An honest September 2026 comparison of YC's qm and Munder Difflin. qm is a multiplayer agent harn | CODE |
| MEDIUM | docs/blog/index.html | 1801 | <p class="dek">tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude Code sessions a | CODE |
| MEDIUM | …/blog/human-in-the-loop-approving-ai-agents/index.html | 199 | <a href="/#what">multi-agent harness</a> does it.</p> | CODE |
| MEDIUM | …s/blog/architecture-two-planes-one-renderer/index.html | 283 | <a href="https://munderdiffl.in/#what">multi-agent harness</a> is.</p> | CODE |
| MEDIUM | docs/blog/what-is-claude-agent-sdk/index.html | 341 | <a class="pn prev" href="/blog/what-is-zcode/"><span class="k">← Older</span><span class="t">ZCode: Z.ai's cod | CODE |
| MEDIUM⚡ | …og/what-is-an-agent-development-environment/index.html | 242 | <p class="a">It's adjacent but a different category: a multi-agent harness, or an agent office. Like an AD | CODE |
| MEDIUM⚡ | …og/what-is-an-agent-development-environment/index.html | 247 | <p class="a">Because whatever runs your agents, you still need to read what they wrote. v0.3.3 added a built-i | CODE |
| MEDIUM⚡ | …og/what-is-an-agent-development-environment/index.html | 252 | <p class="a">No — they're the layer underneath. Claude Code and OpenAI Codex CLI are single-agent terminal | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 22 | <meta name="description" content="tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 33 | <meta property="og:description" content="tmux panes, git worktrees, shell scripts, and cron will absolutely run several | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 52 | <meta name="twitter:description" content="tmux panes, git worktrees, shell scripts, and cron will absolutely run several | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 176 | <p class="dek">tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude Code sessions a | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 205 | <h2 id="what-a-harness-automates" tabindex="-1">What a harness automates <a class="anchor" href="#what-a-harness-automat | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 238 | <p class="a">No. In Munder Difflin every agent is still a real CLI process — claude, codex, copilot, and other | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 243 | <p class="a">Often, yes. If you run one or two parallel sessions, review everything yourself, and don't ne | CODE |
| MEDIUM | …s/blog/tmux-and-scripts-vs-an-agent-harness/index.html | 272 | <li class="lvl-2"><a href="#what-breaks-at-scale">What breaks at scale</a></li><li class="lvl-2"><a href="#what- | CODE |
| MEDIUM⚡ | docs/blog/context-engineering-for-ai-agents/index.html | 234 | <p>The whole architecture of <a href="https://munderdiffl.in/#what">a multi-agent harness</a> is, viewed one way, an | CODE |
| MEDIUM | …/blog/how-to-add-a-github-copilot-cli-agent/index.html | 192 | <div class="callout tldr"><span class="ic">TL;DR</span><p>As of <strong>v0.3.3</strong>, GitHub Copilot CLI is a f | CODE |
| MEDIUM | …/blog/how-to-add-a-github-copilot-cli-agent/index.html | 197 | <h2 id="step-1-install-copilot-cli-or-dont-the-harness-will-offer" tabindex="-1">Step 1: install Copilot CLI (or don’t — | CODE |
| MEDIUM | …/blog/how-to-add-a-github-copilot-cli-agent/index.html | 291 | <li class="lvl-2"><a href="#step-0-have-the-floor-running">Step 0: have the floor running</a></li><li class="lvl | CODE |
| MEDIUM | …s/blog/manage-multiple-claude-code-sessions/index.html | 273 | <p>When the checklist starts feeling like a second job, that’s what a <a href="https://munderdiffl.in/#what">multi-agent | CODE |
| MEDIUM | docs/blog/claude-squad-alternative/index.html | 214 | <p>The alternative isn’t “a fancier terminal.” It’s a different <em>shape</em>: a <a href="/#what">multi-agent harness</ | CODE |
| MEDIUM⚡ | …/blog/building-a-terminal-ui-xterm-node-pty/index.html | 333 | <h2 id="why-a-harness-needs-all-of-this" tabindex="-1">Why a harness needs all of this <a class="anchor" href="#why-a-ha | CODE |
| MEDIUM⚡ | …/blog/building-a-terminal-ui-xterm-node-pty/index.html | 338 | <a href="https://munderdiffl.in/#what">multi-agent harness</a> — the part that makes “a hive of agents” something | CODE |
| MEDIUM | …/blog/building-a-terminal-ui-xterm-node-pty/index.html | 388 | <li class="lvl-2"><a href="#the-two-halves">The two halves</a></li><li class="lvl-2"><a href="#step-1-create-the | CODE |
| MEDIUM | docs/blog/how-the-god-orchestrator-works/index.html | 293 | <h2 id="what-makes-it-robust" tabindex="-1">What makes it robust <a class="anchor" href="#what-makes-it-robust" aria-hid | CODE |
| MEDIUM | docs/blog/how-the-god-orchestrator-works/index.html | 334 | <p class="a">No. It's an ordinary Claude Code process with a flag marking it as the orchestrator and a sys | CODE |
| MEDIUM | docs/blog/how-the-god-orchestrator-works/index.html | 363 | <li class="lvl-2"><a href="#intelligence-vs-mechanism">Intelligence vs. mechanism</a></li><li class="lvl-2"><a h | CODE |
| MEDIUM | docs/blog/claude-code-orchestration-guide/index.html | 309 | <p class="a">You can, but you don't have to. In Munder Difflin the orchestrator is itself a Claude agent — | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 200 | <h2 id="what-a-harness-actually-contains" tabindex="-1">What a harness actually contains <a class="anchor" href="#what-a | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 243 | <p class="a">Because models are increasingly interchangeable commodities and their failure modes are structura | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 258 | <p class="a">Yes — that's the category. Munder Difflin is a free, MIT-licensed, local-first multi-agent ha | CODE |
| MEDIUM | docs/blog/what-is-harness-engineering/index.html | 277 | <li class="lvl-2"><a href="#the-term-and-where-it-came-from">The term, and where it came from</a></li><li class= | CODE |
| MEDIUM⚡ | …/overnight-ai-coding-realistic-expectations/index.html | 235 | <a href="/#what">multi-agent harness</a> builds in:</p> | CODE |
| MEDIUM | …/overnight-ai-coding-realistic-expectations/index.html | 289 | <p>Munder Difflin is a local, open-source <a href="/#why">multi-agent harness</a> built for exactly this: agents that | CODE |
| MEDIUM | docs/blog/launching-munder-difflin-v0-3-3/index.html | 281 | <p class="a">No. Munder Difflin drives the `copilot` CLI you already log into with your GitHub account — same | CODE |
| MEDIUM | docs/blog/ai-agent-glossary/index.html | 209 | <h3 id="harness" tabindex="-1">Harness <a class="anchor" href="#harness" aria-hidden="true">#</a></h3> | CODE |
| MEDIUM⚡ | docs/blog/ai-agent-glossary/index.html | 262 | <p class="q">What's the difference between an agent harness and an agent framework?</p> | CODE |
| MEDIUM⚡ | docs/blog/ai-agent-glossary/index.html | 267 | <p class="q">What's the difference between an orchestrator and a harness?</p> | CODE |
| MEDIUM⚡ | docs/blog/ai-agent-glossary/index.html | 273 | <p class="a">A hive is a coordinated group of agents that share memory and message each other, behaving as one | CODE |
| MEDIUM | docs/blog/ai-agent-glossary/index.html | 292 | <li class="lvl-2"><a href="#core-building-blocks">Core building blocks</a></li><li class="lvl-3"><a href="#agent | CODE |
| MEDIUM | docs/blog/mcp-security-tool-poisoning/index.html | 265 | <p>A <a href="/#what">multi-agent harness</a> gives every agent MCP tools and skills — which means it inherits this | CODE |
| MEDIUM | docs/blog/recovering-from-agent-failures/index.html | 199 | patterns that get you there, grounded in how a real <a href="/#what">multi-agent harness</a> handles each.</p> | CODE |
| MEDIUM | docs/blog/crystal-claude-code-alternative/index.html | 221 | to a <a href="/#what">multi-agent harness</a>: agents with roles and mailboxes, a <a href="/#how">GOD orchestrator</a> t | CODE |
| MEDIUM | docs/blog/launching-munder-difflin-v0-3-5/index.html | 306 | <p class="a">They're complementary answers to the same problem. qm is a multiplayer agent harness for team | CODE |
| MEDIUM | docs/blog/tags/claude-code/index.html | 729 | <p class="dek">An honest September 2026 comparison of YC's qm and Munder Difflin. qm is a multiplayer agent harn | CODE |
| MEDIUM | docs/blog/tags/claude-code/index.html | 761 | <p class="dek">tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude Code sessions a | CODE |
| MEDIUM | docs/blog/tags/tools/index.html | 153 | <p class="dek">An honest September 2026 comparison of YC's qm and Munder Difflin. qm is a multiplayer agent harn | CODE |
| MEDIUM | docs/blog/tags/comparisons/index.html | 505 | <p class="dek">An honest September 2026 comparison of YC's qm and Munder Difflin. qm is a multiplayer agent harn | CODE |
| MEDIUM | docs/blog/tags/comparisons/index.html | 569 | <p class="dek">tmux panes, git worktrees, shell scripts, and cron will absolutely run several Claude Code sessions a | CODE |
| MEDIUM | docs/blog/tags/open-source/index.html | 200 | <h3><a href="/blog/what-is-zcode/">ZCode: Z.ai's coding agent harness, explained</a></h3> | CODE |
| MEDIUM | docs/blog/tags/open-source/index.html | 204 | <a class="more" href="/blog/what-is-zcode/" aria-label="Read: ZCode: Z.ai's coding agent harness, explained">R | CODE |
| 92 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | electron-builder.yml | 1 | appId: in.munderdiffl.app | COMMENT |
| LOW | electron-builder.yml | 21 | # `* { box-sizing: border-box; }` inside RELEASE.md's <style> block, so the | COMMENT |
| LOW | electron-builder.yml | 101 | # Flow dictation (Groq transcription) and Realtime Michael (live voice chat | COMMENT |
| LOW | blog/src/_data/theme.js | 1 | // Blog theme switch. The blog deliberately has its own identity, separate from | COMMENT |
| LOW | .github/workflows/contributors.yml | 1 | name: Update contributors | COMMENT |
| LOW | .github/workflows/pr-evidence.yml | 1 | name: PR evidence | COMMENT |
| LOW | .github/workflows/blog.yml | 1 | name: Build blog | COMMENT |
| LOW | .github/workflows/contributor-role.yml | 1 | # Grants the Discord "employee of the month" role. | COMMENT |
| LOW | src/renderer/src/App.tsx | 101 | window.cth.getConfig().then(c => { | COMMENT |
| LOW | src/renderer/src/integrations/registryClient.ts | 1 | // Integrations registry client — the renderer's single doorway to the | COMMENT |
| LOW | src/renderer/src/components/ReleaseDrop.tsx | 61 | // subresources, so a drop with slow remote images would hold the loader for the | COMMENT |
| LOW | src/renderer/src/components/AgentCard.tsx | 61 | }: AgentCardProps) { | COMMENT |
| LOW | src/renderer/src/components/terminalPool.ts | 141 | scrollback: 100000, | COMMENT |
| LOW | src/renderer/src/components/terminalPool.ts | 201 | // replacement (which would silently drop every keystroke). It can't: kill() | COMMENT |
| LOW | src/renderer/src/components/terminalPool.ts | 761 | entry.term.open(entry.host); | COMMENT |
| LOW | src/renderer/src/components/PtyTerminalView.tsx | 161 | // Tracks the first fit that actually ran against a real (non-zero) host, so | COMMENT |
| LOW | src/renderer/src/components/PtyTerminalView.tsx | 181 | window.cth.resizePty(ptyId, entry.term.cols, entry.term.rows); | COMMENT |
| LOW | src/renderer/src/components/OnboardingWizard.tsx | 161 | platform === 'darwin' ? 'mac' : platform === 'win32' ? 'windows' : 'linux'; | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 281 | // already nudged this agent about. A SET, not a high-water mark. | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 301 | // Per-agent context size at the last auto-/compact queued. See the latch note | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 321 | // must leave the agent alone — set while its boot sequence is typing so nothing | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 441 | useStore.getState().addAgent(god); | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 641 | // 'working' — and BOTH delivery paths (#3 nudge, #4 queue-drain) are idle-gated, | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 681 | // QUEUES the nudge rather than typing it. This loop used to write straight | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 701 | // | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 1001 | useStore.getState().enqueueMessage(msg.targetId, msg.text.trim()); | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 1081 | // ~250k windows, 20% for ~1M windows)". No such check was ever implemented: | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 1121 | // byte-identical and the pressure gate passes on the same number the next | COMMENT |
| LOW | src/renderer/src/hooks/useHive.ts | 1161 | // drops the duplicate. | COMMENT |
| LOW | src/renderer/src/hooks/useRestoreTeam.ts | 81 | // couldn't spawn anything looked like a dead button. | COMMENT |
| LOW | src/renderer/src/hooks/useRestoreTeam.ts | 101 | try { | COMMENT |
| LOW | src/renderer/src/hooks/useRestoreTeam.ts | 201 | // ALWAYS surface a result so the button can never look inert. | COMMENT |
| LOW | src/renderer/src/scene/office/cafeteriaLines.ts | 1 | // Cafeteria small-talk — The Office edition. | COMMENT |
| LOW | src/renderer/src/scene/office/themeRegistry.ts | 1 | // Theme registry — the pluggable "office theme" contract. | COMMENT |
| LOW | src/renderer/src/scene/office/OfficeFloor.tsx | 181 | // The active office theme (store mirror of config.officeTheme). Changing it | COMMENT |
| LOW | src/renderer/src/store/store.ts | 361 | // ─── The roster mirror ────────────────────────────────────────────────────── | COMMENT |
| LOW | src/renderer/src/store/store.ts | 761 | }), | COMMENT |
| LOW | src/renderer/src/store/store.ts | 901 | // | COMMENT |
| LOW | src/shared/releaseDrop.ts | 81 | // A remote `@import` is RENDER-BLOCKING: the frame paints nothing until the | COMMENT |
| LOW | src/shared/releaseDrop.ts | 521 | export function buildDropSrcDoc(html: string): string { | COMMENT |
| LOW | src/shared/providerAutomation.ts | 61 | // argument for every command that takes one (/goal, /raw, /mcp, /keymap, | COMMENT |
| LOW | src/shared/providerAutomation.ts | 81 | // "/clear (/new) — Clear the terminal and reset active conversation | COMMENT |
| LOW | src/shared/providerAutomation.ts | 101 | // (capped at 2000 chars) → it genuinely takes a focus. | COMMENT |
| LOW | src/shared/providerAutomation.ts | 121 | // hint "/ or ctrl+p" means a leading `/` OPENS that palette rather than | COMMENT |
| LOW | src/shared/agentProvider.ts | 201 | // Auto mode: never prompt (-a never) but KEEP codex's OS sandbox, scoped to the | COMMENT |
| LOW | src/shared/agentProvider.ts | 221 | // Codex's INITIAL prompt, which it takes POSITIONALLY (`codex "<prompt>"`) — | COMMENT |
| LOW | src/shared/agentProvider.ts | 361 | // block when a base-URL is set). So no auto flag is spliced onto the command. | COMMENT |
| LOW | src/shared/agentProvider.ts | 381 | // NO recommended model — deliberately. This used to preselect | COMMENT |
| LOW | src/shared/agentProvider.ts | 401 | // Both are trusted, hardcoded constants and contain no double-quotes (the | COMMENT |
| LOW | src/shared/agentProvider.ts | 441 | bridge: { kind: 'proxy', api: 'openai', baseUrlEnv: 'CRUSH_PROXY_BASE_URL', inboxDelivery: 'terminal' }, | COMMENT |
| LOW | src/shared/agentProvider.ts | 521 | recommendedOrchestratorModel: 'claude-sonnet-4.5', // Copilot's default; user may pick gpt-5.4 | COMMENT |
| LOW | src/main/analytics.ts | 201 | // here for country-level numbers, but nothing in this codebase ever read | COMMENT |
| LOW | src/main/analytics.ts | 461 | if (lines[j + 1]?.includes(LOG_QUIT_FAILED)) return 'manual'; | COMMENT |
| LOW | src/main/pty.ts | 281 | // there; dropping them silently would change how the CLI runs, so we bail out | COMMENT |
| LOW | src/main/pty.ts | 441 | // Only a plain command name is resolved against PATH. Anything else is | COMMENT |
| LOW | src/main/pty.ts | 581 | const lower = resolved.toLowerCase(); | COMMENT |
| LOW | src/main/pty.ts | 601 | // shell PATH (nvm/asdf/brew included), and skipping `-i` avoids dumping the | COMMENT |
| LOW | src/main/pty.ts | 621 | // learned they had an inbox/outbox and could not message each other. | COMMENT |
| LOW | src/main/pty.ts | 701 | // Keep only the trailing window; slice AFTER appending so a single | COMMENT |
| LOW | src/main/ptyEnv.ts | 61 | } | COMMENT |
| 51 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/renderer/src/terminal/arabicSetting.ts | 65 | export function isArabicTerminalFollowingLanguage(): boolean { | CODE |
| LOW | src/renderer/src/terminal/arabicSetting.ts | 77 | export function clearArabicTerminalOverride(): void { | CODE |
| LOW | src/renderer/src/components/terminalSelection.ts | 43 | export function sanitizeTerminalSelection(text: string): string { | CODE |
| LOW | src/renderer/src/components/terminalPool.ts | 522 | export function terminalAutomationBlockFor( | CODE |
| LOW | src/renderer/src/components/terminalPool.ts | 732 | export function notifyArabicTerminalChangeAll(): void { | CODE |
| LOW | src/renderer/src/components/terminalPool.ts | 798 | function repaintTerminalAfterRendererLoss(entry: TerminalEntry): void { | CODE |
| LOW | src/renderer/src/components/terminalPool.ts | 980 | function registerMarkdownLinkProvider(term: Terminal, ptyId: string): void { | CODE |
| LOW | src/renderer/src/components/terminalAutomation.ts | 21 | export function opensInteractiveTerminalUi(input: string): boolean { | CODE |
| LOW | src/renderer/src/components/terminalAutomation.ts | 34 | export function shouldFollowTerminalOutput(viewportY: number, baseY: number): boolean { | CODE |
| LOW | src/renderer/src/components/terminalRecovery.ts | 6 | export function createTerminalRecoveryState(): TerminalRecoveryState { | CODE |
| LOW | src/renderer/src/hooks/queueDelivery.ts | 3 | export async function deliverWithAcknowledgement( | CODE |
| LOW | src/renderer/src/scene/office/glRecovery.ts | 44 | export function installContextLossRecovery( | CODE |
| LOW | src/renderer/src/scene/office/glRecovery.ts | 127 | export function isContextUnavailableError(err: unknown): boolean { | CODE |
| LOW | src/renderer/src/store/config.ts | 323 | export function modelsForProviderAtVersion( | CODE |
| LOW | src/shared/integrations.ts | 106 | export function validateIntegrationRecord( | CODE |
| LOW | src/shared/providerAutomation.ts | 153 | export function contextCommandsForProvider(provider: AgentProvider): ProviderContextCommands { | CODE |
| LOW | src/shared/providerAutomation.ts | 164 | export function compactionCommandForProvider( | CODE |
| LOW | src/shared/providerAutomation.ts | 219 | export function remoteControlCommandForProvider( | CODE |
| LOW | src/shared/engineAvailability.ts | 38 | export function classifyEngineAvailability( | CODE |
| LOW | src/shared/engineAvailability.ts | 73 | export function engineAvailabilityMessage(a: EngineAvailability, label: string): string | null { | CODE |
| LOW | src/shared/agentProvider.ts | 668 | export function defaultCommandForProvider(provider: AgentProvider, fallback = ''): string { | CODE |
| LOW | src/shared/agentProvider.ts | 706 | export function nonInteractiveEnvForProvider(provider: AgentProvider): Record<string, string> { | CODE |
| LOW | src/main/shellEnv.ts | 40 | function captureFromLoginShellUncached(script: string): string | null { | CODE |
| LOW | src/main/shellEnv.ts | 104 | function isAbsoluteWindowsPathWithVolume(path: string): boolean { | CODE |
| LOW | src/main/shellEnv.ts | 114 | export function windowsFallbackCandidates( | CODE |
| LOW | src/main/hive.ts | 315 | function repairLiteralLineBreaksInJsonStrings(raw: string): { text: string; changed: boolean } { | CODE |
| LOW | src/main/index.ts | 159 | async function enableCodexRemoteForSpawn( | CODE |
| LOW | src/main/index.ts | 1403 | function buildAutonomousRequestProtocol(channel: string, threadTs: string, helperPath: string): string { | CODE |
| LOW | src/main/index.ts | 1851 | function notifyTriggerHistoryUpdated(): void { | CODE |
| LOW | src/main/index.ts | 4371 | function upsertLegacyWebhookTrigger(patch: { secret?: string; enabled?: boolean }): void { | CODE |
| LOW | src/main/index.ts | 5021 | function startEphemeralWorkerWatcher(): void { | CODE |
| LOW | src/main/index.ts | 5028 | function stopEphemeralWorkerWatcher(): void { | CODE |
| LOW | src/main/config.ts | 798 | function ensureClaudeGlobalPermissions(home: string): void { | CODE |
| LOW | src/main/config.ts | 876 | export function ensureClaudePermissionsAccepted(cwd?: string): void { | CODE |
| LOW | src/main/git.ts | 291 | export async function worktreeHasUnintegratedWork( | CODE |
| LOW | src/main/realtimeActions.ts | 839 | export function registerRealtimeActionIpc(deps: RealtimeActionDeps): void { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | blog/src/posts/run-munder-difflin-on-a-mac-mini.md | 93 | ## Step 1: Install a model server | COMMENT |
| LOW | blog/src/posts/run-munder-difflin-on-a-mac-mini.md | 114 | ## Step 2: Wire each engine to the local server | COMMENT |
| LOW | blog/src/posts/run-munder-difflin-on-a-mac-mini.md | 154 | ## Step 3: Run the office | COMMENT |
| LOW | blog/src/posts/how-to-add-a-github-copilot-cli-agent.md | 35 | ## Step 0: have the floor running | COMMENT |
| LOW | blog/src/posts/how-to-add-a-github-copilot-cli-agent.md | 39 | ## Step 1: install Copilot CLI (or don't — the harness will offer) | COMMENT |
| LOW | blog/src/posts/how-to-add-a-github-copilot-cli-agent.md | 53 | ## Step 2: Add Agent, pick Copilot | COMMENT |
| LOW | blog/src/posts/how-to-add-a-github-copilot-cli-agent.md | 65 | ## Step 3: choose a model | COMMENT |
| LOW | blog/src/posts/give-claude-code-long-term-memory.md | 36 | ## Step 1: Write durable facts to markdown | COMMENT |
| LOW | blog/src/posts/give-claude-code-long-term-memory.md | 55 | ## Step 2: Add semantic recall on top | COMMENT |
| LOW | blog/src/posts/give-claude-code-long-term-memory.md | 77 | ## Step 3: Make reading a startup ritual | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 92 | ## Step 1: Which AI engine will you use? | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 144 | ## Step 2: Install your engine, and log in | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 279 | ## Step 3: Install Munder Difflin | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 301 | ## Step 4: Onboarding, six screens | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 364 | ## Step 5: Your first job | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 395 | ## Step 6: Add agents yourself | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 408 | ## Step 7: Work that starts without you | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 428 | ## Step 8: Context and auto-compaction, briefly | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 440 | ## Step 9: Settings worth knowing | COMMENT |
| LOW | blog/src/posts/how-to-install-and-use-munder-difflin.md | 458 | ## Step 10: Focus mode | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/hires/manifests-data.js | 871 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias rut | CODE |
| LOW | docs/hires/manifests-data.js | 899 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias | CODE |
| LOW | docs/hires/manifests-data.js | 926 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias | CODE |
| LOW | docs/hires/manifests-data.js | 948 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias | CODE |
| LOW | docs/hires/manifests/ryan-prototype.hire.json | 5 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias ruthles | CODE |
| LOW | …ires/manifests/variants/ryan-prototype.codex.hire.json | 5 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias ruthles | CODE |
| LOW | …res/manifests/variants/ryan-prototype.claude.hire.json | 5 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias ruthles | CODE |
| LOW | …anifests/variants/ryan-prototype.antigravity.hire.json | 5 | "goal": "Turn a one-paragraph idea into a clickable prototype before anyone schedules a meeting about it. Bias ruthles | CODE |
| LOW | blog/BLOG_README.md | 24 | `alt`, a generation `prompt`, and a `status`. While `status` is `"placeholder"` the | CODE |
| LOW | blog/src/_data/media.json | 3213 | "status": "placeholder" | CODE |
| LOW | blog/src/_data/media.json | 3219 | "status": "placeholder" | CODE |
| LOW | blog/src/_data/media.json | 3995 | "status": "placeholder" | CODE |
| LOW | src/renderer/src/i18n/locales/zh-CN.json | 25 | "placeholder": "输入命令", | CODE |
| LOW | src/renderer/src/i18n/locales/zh-CN.json | 650 | "placeholder": "/path/to/HarnessAgents", | CODE |
| LOW | src/renderer/src/i18n/locales/en.json | 25 | "placeholder": "Type a command", | CODE |
| LOW | src/renderer/src/i18n/locales/en.json | 650 | "placeholder": "/path/to/HarnessAgents", | CODE |
| LOW | src/renderer/src/i18n/locales/ar.json | 25 | "placeholder": "اكتب أمرًا", | CODE |
| LOW | src/renderer/src/i18n/locales/ar.json | 650 | "placeholder": "/path/to/HarnessAgents", | CODE |
| LOW | src/shared/releaseDrop.ts | 215 | /* Drop-in placeholder: <div class="placeholder" data-label="Hero"></div> | COMMENT |
| LOW | src/shared/releaseDrop.ts | 365 | <div class="placeholder" data-label="Two agents messaging" style="aspect-ratio:24/9"></div> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | docs/r/claudeai.json | 1 | [{"kind": "Listing", "data": {"after": null, "dist": 1, "modhash": "h2ik1d6nwt862c817e1dac32effb623774ed719e842bdc108d", | CODE |
| MEDIUM | docs/blog/gpt-6-intelligent-ui/index.html | 305 | <p class="a">It is a capability that lets ChatGPT answer with interactive interfaces as well as text. OpenAI&# | CODE |
| MEDIUM | docs/blog/codex-cli-vs-claude-code/index.html | 357 | <p class="a">Partly. OpenAI's help centre says Codex is included across ChatGPT plans, including Free and | CODE |
| MEDIUM | docs/blog/claude-code-hooks-explained/index.html | 398 | <p class="a">Read the stop_hook_active field from the hook's input and exit 0 when it is true, because tha | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/blog/an-agent-redesigned-this-blog/index.html | 263 | <p class="a">They're not AI-generated bitmaps — they're drawn as code. A small SVG parts library (a ch | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/mapgen/build_map.py | 32 | CODE | |
| LOW | tools/mapgen/render_map.py | 42 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/mapgen/render_map.py | 86 | except Exception: | CODE |