Build1 distinct publisher3 min readUpdated
One practitioner's teardown notes: shared authenticated sessions, half-redirected homes, hardlinks that deny being links, and a delete that blames permissions for something else.
The Engineer · Build desk
Compiled by The EngineerSomething wrong?How this is made
Each of these failures either says nothing or points somewhere else. Redirecting `HOME` alone, a POSIX convention Windows itself does not honor [3], moves a CLI's config to the new directory while git carries on writing `.gitconfig` to the old one [4], and the first visible symptom, according to the post, is two panes sharing a git identity [5]. The set that actually works is `HOME`, `USERPROFILE`, `HOMEDRIVE` and `HOMEPATH` per process [6], plus `GEMINI_CLI_HOME` pointed at its own subdirectory for Gemini CLI [7]. Five variables to relocate one idea of home [1], and nothing errors if you set three of them.
The linking layer has the same property. Full isolation is not the goal, since `CLAUDE.md`, `settings.json` and skills are meant to be identical in every pane, so they get linked back to the global copy instead of duplicated [8]. On Windows, `mklink` needs elevation or Developer Mode for a file symlink while junctions need neither, so directories are easy and files fall back to hardlinks [9]. A hardlink returns false from `lstat().isSymbolicLink()` [10]. Build a "detach this account from shared config" action as "replace symlinks with real copies" and the hardlinked files are skipped: the account goes on editing the global config while the interface reports it detached [11]. The author's detection compares device and inode numbers with `bigint: true`, because a plain `ino` comes back as `0` on some Windows configurations, which makes every pair of files look like the same file [12]. A comparison tested without that flag would have passed.
Teardown is where the error message actively misdirects. `git worktree remove --force` returns `failed to delete ... Permission denied` [13] when the actual cause is that Windows will not delete a directory that is some process's current directory, and git renders that refusal as a permissions error [14]. Testing it is worse than reading it. PowerShell's `Set-Location` does not reproduce the failure, because the PowerShell location is a provider concept layered over a process whose real working directory never moved [15], so a harness built on `Set-Location` will tell you the bug is imaginary. Killing the shell is not sufficient either: in the author's run the `cmd.exe` was dead and the delete still failed, because the holder was `timeout.exe`, a child that had inherited the directory [16]. Any teardown that kills the pane process and then removes the worktree will fail on the first agent that leaves a grandchild running.
For people writing the launcher rather than using one, Node's `os.homedir()` does not reliably reflect a `USERPROFILE` injected at spawn time on Windows [18]. The author's project ended up with a dedicated variable for its own storage and a separate function for where a new shell should start, because collapsing the two meant every new terminal opened inside the agent's config directory [19].
This is one account, from someone who discloses that he works on a product in this space and marks which decisions are his own [20]. It is also the class of detail that only gets written down by someone who has already lost a weekend to it.
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.
Alex Shev commented that parallel agents are only practical when workspace boundaries are boring and explicit, and that on Windows he would care less about the launch trick and more about isolation, logs, file ownership and cleanup after failed runs.
Two agents running under the same Windows account share ~/.claude, ~/.codex and ~/.gemini.
Sharing those directories means sharing the same config and, more importantly, the same authenticated session; two Claude accounts side by side require separate home directories.
On Windows, HOME is not the variable that redirects a home directory; it is a POSIX convention that some tools honor and Windows itself does not.
Setting only HOME produces a half-redirected agent: the CLI writes its config to the new location while git writes .gitconfig to the old one.
The half-redirected state goes unnoticed until two panes start sharing a git identity.
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.
One reproducible first-hand account, no corroboration
The single source supplies verbatim commands, verbatim git error output and a working lstat comparison snippet, which is unusually checkable for a practitioner post. But it is one author on one platform with no independent replication, no upstream issue or documentation references, and two central assertions (Node homedir behaviour, the Linux contrast) left unevidenced.
No adoption signal in supplied sources
The cluster contains no release, deployment, benchmark, pricing, licensing or usage disclosure. NestMux is mentioned only as the author's affiliation, with no user counts, downloads or customer evidence, and the commenter quote is not an adoption datapoint. Nothing supports a measured adoption value.
Close to aligned, slight generalization beyond evidence
Framing is deliberately modest — 'the boring half' of parallel agents — and most claims are demonstrated rather than asserted, so there is no large overstatement. The small positive gap comes from platform-wide generalizations ('does not reliably reflect', 'on Linux the same removal succeeds') stated with more certainty than the shown evidence carries, and from the fact that a vendor's design decisions are presented as the resolution.
Disclosed vendor stake in the problem being described
The author states he works on NestMux, an agent multiplexer, and the post's problem set maps directly onto features such a product sells (per-account isolation, shared config linking, worktree teardown). That is a real incentive to frame these frictions as central. It is materially mitigated by an up-front disclosure, an explicit note that the commands run with or without his tool, and stated shortfalls, so distortion pressure is moderate rather than high.
Moderate: checkable mechanics, single unverified voice
Confidence is limited by a one-publisher, one-author cluster with a disclosed commercial stake and no adoption dimension at all. It is raised above low by the specificity and reproducibility of the core Windows and git behaviours, which a reader can verify independently in minutes.
build
Claude Code's agent-team panes need tmux, and Anthropic says Windows Terminal is out1 distinct publisher
build
wmic is gone, and Node's process trees on Windows 11 now come back empty1 distinct publisher
build
The hard part of running five coding agents is not the model, it is the process tree1 distinct publisher
build
The malware asks a question and reads its orders off the doormat: PowerShell in FTP banners1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 23, 2026