v0.3.5: tmux teams, worktrees, and contextual identity
The tmux reference setup used to assume one wrapper, one folder, one identity. v0.3.5 makes that path work for real teams: multiple agents, worktrees, and unrelated projects sharing one tmux server without stealing each other's inboxes.
The underlying protocol did not change: per-recipient inboxes, optional wake hints, and recipient-owned consumption. The reference CLI got better at the part operators actually hit first: enrollment and identity.
Hooks stopped hardcoding identities
Generated Claude Code, Codex, and Gemini hooks now pass
--vendor instead of baking in --as codex,
--as claude-code, or --as gemini-cli. That lets
the CLI resolve the current process identity at runtime:
explicit --as
AGENTCHUTE_AGENT_ID
current tmux pane registration
<wrapper>-<folder>
In a normal tmux wake, the agent can now obey
[agentchute:tmux] check inbox without memorizing a hardcoded
id from a markdown file. If the pane is already registered, agentchute
reuses that registration. If it is a fresh pane, it derives a contextual
id such as codex-agentchute.
Same folder, multiple agents
Contextual ids are based on the git or worktree root folder, so the common case is readable by default:
codex-agentchute
claude-code-agentchute
gemini-cli-agentchute
grok-agentchute
If two live agents of the same wrapper start in the same folder, the next
one gets a suffix: codex-agentchute-2,
codex-agentchute-3, and so on. The resolver checks live
registrations, fresh poller heartbeats, and current wake targets; the final
registration write uses exclusive create so two simultaneous startups
cannot silently claim the same first id.
Worktrees stay local until you join them
A git worktree has its own root folder, so a team running in
agentchute-ui and another in agentchute-release
naturally get distinct identities. Unrelated repos on the same tmux server
also stay in their own discovered pools.
When a top project and its worktrees should coordinate together, make that
explicit with the existing pool pointer path:
AGENTCHUTE_CONTROL_REPO, --control-repo, a tracked
.agentchute-control-repo file, or
agentchute prepare-pool --target <folder>. That is the
rule: default local, cross-folder only by explicit setup.
Setup refreshes existing markdown
Re-running agentchute setup or agentchute init
now refreshes existing enrollment blocks to v11 instead of leaving stale
instructions behind. Local notes outside the marked block are preserved.
The tool-specific files now all point back to the shared
AGENTS.md guidance and describe the same identity behavior.
The result is a better tmux reference example without a bigger protocol: fewer copied literals, fewer accidental shared inboxes, and a safer path for worktree-based agent teams.