Build1 distinct publisher3 min readUpdated
NestMux's author documents the plumbing: HOME redirected per pane, one git worktree each, and a resource panel that has to guess which process belongs to whom.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
Seventy-seven megabytes per pane is the most instructive number in the write-up [14]. It is not a fault that announces itself, because the process the app spawned really does use about that much: the pane's own process is a shell, the agent CLI is its child, and a dev server the agent started is a grandchild or has been reparented away entirely [13]. Measure the handle you hold and you get the same figure in every cell, with every agent apparently asleep.
What replaces that measurement is not a better measurement. It is an ownership argument in three passes [1]. The first walks the tree from a single machine-wide `Get-CimInstance Win32_Process` snapshot, cached for a second and a half and shared by everything that needs it in that polling cycle [15]. The second gives up on lineage: if a process's executable path or command line points inside a worktree, it belongs to that worktree's pane [16]. The third reads the process's current directory, which on Windows means going through `ntdll` because no API exposes it [17]. Each pass answers a weaker question than the one before, and the author says plainly that the result is a heuristic that gets the common cases right [18].
The cache is the part worth stealing. One enumeration of every process on the machine per cycle, reused by all consumers, means the cost does not scale with panes: a five-agent grid pays for one snapshot rather than five [2].
All of that sits on top of an isolation story that is close to trivial. A shell is spawned with node-pty, HOME is redirected to the pane's account directory, cwd is set to its worktree, and the command is typed in [3]. That is what buys two simultaneous Claude logins where `~/.claude` means something different in each [6], and four agents editing one repository without overwriting each other [7]. The author notes the Windows specifics of both are genuinely fiddly and covered separately [8]. Nothing parses agent output and nothing wraps an API [5], which is why supporting a new CLI is a row in a list instead of a release [4]. The stated reason for refusing readiness detection is that same economy: read agent output to decide whether a pane is ready, and every upstream CLI update becomes a potential outage [12]. The compensation is that raw-keystroke broadcast works against anything that reads a terminal, a REPL or an interactive rebase included [10].
The honesty the piece promises about what does not survive a restart [19] is where the data model has already answered the question, even if the published excerpt stops before spelling it out. A pane is described entirely by strings and paths [2], so a restart can rebuild the container: same HOME, same worktree, same command. What cannot come back is anything that lived in the pty and the process tree hanging off it [3]. That last inference is mine rather than the author's, but it is the line any tool in this shape has to draw, and the one users deserve written down: the durable state is a config file, and the session is something you agreed in advance to lose.
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
NestMux is a desktop app whose author runs Claude Code, Codex, Gemini CLI, Copilot and OpenCode in a grid of real terminals, each with its own account and its own git worktree.
Every cell in the grid is described by a plain object (PaneNode) with fields id, aiType, accountName, accountDir, cmd, repoPath, shellId and borderColor.
A pane spawns a shell with node-pty, redirects HOME to accountDir, sets cwd to repoPath and types cmd into it; there is no AI-specific code behind any of it.
Adding support for a new agent CLI is a row in a list, which is why custom CLIs are a user-facing feature rather than a release.
The app does not parse the agent's output, does not wrap its API, and does not know what the agent is doing; it is a program in a terminal.
accountDir is an isolated HOME, so two panes can be signed into two different Claude accounts at once and ~/.claude means something different in each.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Detailed first-party engineering account, no external corroboration
The single source is unusually specific for a self-published writeup: a concrete data model, three verbatim code snippets (broadcast onData, worktree path-prefix matching, the git diff invocation), a named Windows API path (Get-CimInstance Win32_Process, ntdll for current directory) and explicit limits. That specificity is checkable in principle but is not checked anywhere in this cluster: every claim originates with the app's own author, the 77 MB figure and the 1.5s cache are unverified, and no second publisher, benchmark or user report appears.
No adoption signal in cluster
The source discloses no users, downloads, installs, stars, releases, pricing or deployments, and no other publisher reports usage. The only usage described is the author's own workflow, which is not an adoption measurement.
Claims stay inside their own caveats
The rhetorical claims and the technical claims match closely. The author frames the harness as 'a program in a terminal', calls the resource bar 'a good signal and not accounting', states plainly that broadcast has no readiness detection and that terminal state dies on restart. Nothing in the cluster promises model quality, autonomy or productivity gains that the evidence would have to carry, so there is no overstatement to score; equally, with zero adoption evidence there is no basis to call the story understated.
Product author writing about his own product
The piece is authored by NestMux's builder on a developer blogging platform and explicitly addresses readers 'deciding whether to use it', so it carries a direct promotional interest in the app looking well-engineered. The candour about heuristics and missing features partially offsets that interest, but no independent voice in the cluster counterbalances it and no disclosure of commercial terms is offered.
Internally consistent but single-sourced
Confidence is capped by structure rather than by content quality: one publisher, one author, one article, and no adoption dimension to triangulate against. The technical claims are internally consistent, code-level and self-limiting, which supports moderate confidence in the described design, but nothing in the cluster verifies that the shipped app behaves as documented or that anyone beyond the author runs it.
build
Claude Code's agent-team panes need tmux, and Anthropic says Windows Terminal is out1 distinct publisher
build
Waku 0.1.0 bets the product is the control plane, not another coding agent1 distinct publisher
build
Parallel coding agents on Windows break at the home directory, not the launcher1 distinct publisher
build
Your reviewing model is reading the diff when it should be reading the session1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 23, 2026