Show HN: TAW, herdr for tmux: see which coding agent needs you Developer 27medkamal released tmux-agent-wizard (taw), a tmux plugin that uses herdr's detection engine to track the state of 22 coding agents across panes, showing each as blocked, working, done or idle. The plugin requires tmux 3.2 or newer on macOS or Linux plus TPM, installs via a single `set -g @plugin '27medkamal/tmux-agent-wizard'` line, and runs one watcher per pane at about 9 MB each with no central daemon or account. Pressing `prefix + A` opens a tree of every session and agent, `Tab` jumps to the next agent that needs attention, and optional `taw integration install` hooks let agents resume their prior conversation after a reboot. Every agent. One key. Your tmux. herdr's detection engine for 22 coding agents, as a plugin for the tmux you already run. From the maker of tmux-session-wizard https://github.com/27medkamal/tmux-session-wizard . Try it in your browser, no install https://27medkamal.com/tmux-agent-wizard/try/ Install install | Docs https://27medkamal.com/tmux-agent-wizard/ | How it compares how-it-compares | Coming from herdr https://27medkamal.com/tmux-agent-wizard/herdr/ You run coding agents in tmux: Claude Code in one session, Codex in another, OpenCode in a worktree. One of them has been waiting on a permission prompt for twenty minutes; another finished an hour ago. You find out by flicking through windows. taw reads every pane and shows you. prefix + A opens one tree of every session and agent, with each one's state: blocked, working, done or idle. Tab goes to the one that needs you, Enter takes you there. Not in the popup? A toast says who needs you, and prefix + O jumps there. After a reboot, the agents come back in the conversation they were in, once each agent's hook is installed. One plugin line in the tmux you already run. Nothing to restart, nothing to migrate. - Every agent's state, in the tmux you already run. taw reads 22 agents with herdr https://herdr.dev 's own detection engine and rules. - Pick a project, land in its session. n in the popup picks a project folder and switches to its session, or makes it: tmux-session-wizard's session picking, folded in. - Back after a reboot, tmux-resurrect's job included. Save and restore for sessions, layouts and folders, and agents come back in their conversations. Your tmux.conf , keys, plugins and status line stay as they are. No central daemon one small watcher per pane, about 9 MB each , no account. Needs tmux 3.2 or newer, on macOS or Linux, and TPM https://github.com/tmux-plugins/tpm . 1. Add the plugin to ~/.tmux.conf : set -g @plugin '27medkamal/tmux-agent-wizard' 2. Press prefix + I . TPM installs the plugin, and its first load downloads the taw binary for your machine from the project's GitHub releases https://github.com/27medkamal/tmux-agent-wizard/releases , checked against the release's SHA-256 checksum. tmux says tmux-agent-wizard: taw is ready, press prefix + A when it is done. 3. Press prefix + A . The agents you already have running are in the list. 4. Optional, for restore: once for each agent you use, let it tell taw its session, so a restore brings it back into the same conversation: taw integration install claude and codex, opencode, cursor, ... 5. Optional, for a shell outside tmux inside tmux, taw is on your PATH already : mkdir -p ~/.local/bin && ln -s ~/.local/state/tmux-agent-wizard/bin/taw ~/.local/bin/taw Without TPM, from source, or with the download off: see Install https://27medkamal.com/tmux-agent-wizard/install/ . | Key | What happens | |---|---| | prefix + A | One tree: every session, its panes, and the worktrees whose session you closed. Each agent shows its state, its task and for how long. The border counts what needs you. | | Tab | Moves the cursor to the next agent that needs you blocked, or finished and not looked at yet , else to the next agent. | | Enter | Goes there. | 1 - 9 jump to a session, / filters the whole tree with fzf syntax, and ? lists every key on one screen. If you know tmux, you already know taw. Keys https://27medkamal.com/tmux-agent-wizard/keys/ When an agent in a pane you are not looking at blocks or finishes: | Where | What you see | |---|---| | In tmux | a toast on the status line the default | | On your desktop | a macOS or Linux notification ui.toast delivery = "system" | | In your terminal, over ssh too | your terminal's own notification ui.toast delivery = "terminal" | | On your status line, all the time | ⏸1 ⏵3 ✓2 : blocked, working, done, once you add {@agent wizard status} to it | | On your phone | a message through ntfy, Pushover or any command, from a one-line hook | prefix + O takes you to the agent that needs you, from anywhere in tmux. Press it again for the next one. It is all tmux, so your agents are wherever your tmux is: ssh in from any terminal app on your phone, tmux attach , and prefix + A lists every agent; Tab and Enter take you to the one that needs you. With the one-line hook above, your phone also tells you when one does. taw saves on its own, a few seconds after each change, and keeps a copy of the layout at most every 15 minutes. After a reboot or a tmux crash, taw session restore brings back your sessions, windows, layouts and folders, and 18 agents Claude Code, Codex and OpenCode among them reopen in their own conversations once each agent's hook is installed one command per agent, such as taw integration install claude . Next to tmux-resurrect and tmux-continuum: taw restores when you run the command, not by itself when tmux starts, and it does not start other programs such as vim again, which resurrect can. So you do not need resurrect unless you want that, and if you keep it, one line runs taw's restore after resurrect's own. Save and restore https://27medkamal.com/tmux-agent-wizard/restore/ - 22 agents. Claude Code, Codex, Gemini CLI, OpenCode, Copilot CLI, Cursor, Amp and 15 more, also when started through npm, a wrapper script or a container. Agents https://27medkamal.com/tmux-agent-wizard/agents/ - Worktrees as sessions. w makes a git worktree with its own tmux session; a closed one stays in the tree and Enter reopens it. Sessions and worktrees https://27medkamal.com/tmux-agent-wizard/sessions/ - Your other machines. taw app lists every machine's agents in one list, over your ssh. Remote machines https://27medkamal.com/tmux-agent-wizard/machines/ - A sandbox on request. taw sandbox runs an agent in a container, through a profile you can read in beta . Sandbox https://27medkamal.com/tmux-agent-wizard/sandbox/ - Hooks. A command of yours on any event: an agent going blocked, a session opening, a worktree closing. Hooks https://27medkamal.com/tmux-agent-wizard/hooks/ - Agents can drive agents. Every verb is a JSON CLI taw agent prompt --wait , and taw skill prints a skill any agent can read. CLI https://27medkamal.com/tmux-agent-wizard/cli/ - herdr-compatible. Your herdr config.toml means what it meant, and herdr's CLI-driven plugins install here plugin support is in beta . Coming from herdr https://27medkamal.com/tmux-agent-wizard/herdr/ ✅ has it, | | taw | herdr | tmux and its plugins | |---|---|---|---| | Runs in the tmux you already run | ✅ a TPM plugin, no restart; running agents show up at once | ❌ its own terminal workspace and config | ✅ | | Project picker your project folders, open or not | ✅ n in the popup, or taw open | ❌ a new workspace starts in the folder new cwd names | ✅ with tmux-session-wizard zoxide | | An agent in a container | ✅ taw sandbox , through a profile you can read | ❌ no sandbox of its own | ❌ by hand | | An agent you start in Docker or Podman | ✅ recognised, with nothing set | HERDR AGENT set | ❌ | | A command of yours on any event | ✅ one line under hooks | | | | Notifications on your phone | ✅ a one-line hook | | ❌ | | Knows each agent's state | ✅ 22 agents, herdr's rules plus seven of taw's own | ✅ 22 agents | ❌ | | Takes you to what needs you | ✅ Tab in the popup, prefix + O anywhere | ✅ its sidebar and notification key | ❌ | | Agents back in their conversations after a reboot | ✅ 18 agents, once each one's hook is installed | ✅ the same 18 | ❌ tmux-resurrect: layouts, folders, some programs | | Agents always accessible | ✅ in a popup on a key, plus a count on the status line | ✅ in a sidebar | ❌ | | Updates live as agents change | ✅ the popup, the status line and the toasts, as it happens | ✅ the sidebar, and events on its socket | ❌ | | Supports herdr's plugins | ✅ in beta: herdr's CLI-driven plugins, beside your TPM ones | ✅ plugins and a marketplace | ❌ | herdr as of v0.9.4, October 2026. taw is independent of herdr and uses herdr's Apache-2.0 detection engine and rules, with credit. herdr is its own terminal workspace, and a good one outside tmux; taw is for the people who stay in tmux. The parity ledger https://github.com/27medkamal/tmux-agent-wizard/blob/master/docs/PARITY.md goes through herdr feature by feature, and Beyond herdr https://27medkamal.com/tmux-agent-wizard/beyond-herdr/ lists what taw does differently. One small watcher per pane, about 9 MB each; eleven panes with ten agents among them used 2.7% of one core of an M1 Pro, and scripts/demo/measure.sh https://github.com/27medkamal/tmux-agent-wizard/blob/master/scripts/demo/measure.sh measures your own. State lives in tmux's own options, kept current by those watchers. taw writes nothing into your tmux.conf or your status line: it adds its two keys and its tmux hooks when it loads, beside yours. The only thing it asks the network for on its own is newer detection rules from herdr.dev, at most once every 6 hours, and one setting turns that off. An end-to-end suite drives real tmux servers. - Install https://27medkamal.com/tmux-agent-wizard/install/ and Keys https://27medkamal.com/tmux-agent-wizard/keys/ - Configuration https://27medkamal.com/tmux-agent-wizard/config/ : tmux options, config.toml , 12 themes that can follow your terminal's light or dark mode, two key presets - Notifications https://27medkamal.com/tmux-agent-wizard/notifications/ , Sessions and worktrees https://27medkamal.com/tmux-agent-wizard/sessions/ , Save and restore https://27medkamal.com/tmux-agent-wizard/restore/ - Agents https://27medkamal.com/tmux-agent-wizard/agents/ : integrations, reporting an agent of your own, containers, Sandbox https://27medkamal.com/tmux-agent-wizard/sandbox/ - Remote machines https://27medkamal.com/tmux-agent-wizard/machines/ , Hooks https://27medkamal.com/tmux-agent-wizard/hooks/ , Plugins https://27medkamal.com/tmux-agent-wizard/plugins/ , CLI https://27medkamal.com/tmux-agent-wizard/cli/ - Questions https://27medkamal.com/tmux-agent-wizard/faq/ : why not herdr, Claude Code's own agent view, what it costs, how to remove it - Coming from herdr https://27medkamal.com/tmux-agent-wizard/herdr/ , Coming from tmux-session-wizard https://27medkamal.com/tmux-agent-wizard/session-wizard/ , Troubleshooting https://27medkamal.com/tmux-agent-wizard/troubleshooting/ - In the repo: COMPAT.md https://github.com/27medkamal/tmux-agent-wizard/blob/master/docs/COMPAT.md , ARCHITECTURE.md https://github.com/27medkamal/tmux-agent-wizard/blob/master/docs/ARCHITECTURE.md , RELEASING.md https://github.com/27medkamal/tmux-agent-wizard/blob/master/docs/RELEASING.md , CONTRIBUTING https://27medkamal.com/tmux-agent-wizard/development/ MIT. The parts taken from herdr https://github.com/herdrdev/herdr keep herdr's Apache 2.0 licence; THIRD PARTY LICENSES.md https://github.com/27medkamal/tmux-agent-wizard/blob/master/THIRD PARTY LICENSES.md lists them.