{"slug": "show-hn-taw-herdr-for-tmux-see-which-coding-agent-needs-you", "title": "Show HN: TAW, herdr for tmux: see which coding agent needs you", "summary": "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.", "body_md": "**Every agent. One key. Your tmux.**\n\n  herdr's detection engine for 22 coding agents, as a plugin for the tmux you already run.\n  From the maker of [tmux-session-wizard](https://github.com/27medkamal/tmux-session-wizard).\n\n[Try it in your browser, no install](https://27medkamal.com/tmux-agent-wizard/try/)\n\n[Install](#install)  | \n  [Docs](https://27medkamal.com/tmux-agent-wizard/)  | \n  [How it compares](#how-it-compares)  | \n  [Coming from herdr](https://27medkamal.com/tmux-agent-wizard/herdr/)\n\nYou 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.\n\n**taw** reads every pane and shows you. `prefix + A` opens one tree of every session and agent,\nwith each one's state: blocked, working, done or idle. `Tab` goes to the one that needs you,\n`Enter` takes you there. Not in the popup? A toast says who needs you, and `prefix + O` jumps\nthere. After a reboot, the agents come back in the conversation they were in, once each agent's\nhook is installed.\n\nOne plugin line in the tmux you already run. Nothing to restart, nothing to migrate.\n\n- **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.\n- **Pick a project, land in its session.**`n` in the popup picks a project folder and switches\nto its session, or makes it: tmux-session-wizard's session picking, folded in.\n- **Back after a reboot, tmux-resurrect's job included.** Save and restore for sessions, layouts\nand folders, and agents come back in their conversations.\n\nYour `tmux.conf`, keys, plugins and status line stay as they are. No central daemon (one small\nwatcher per pane, about 9 MB each), no account.\n\nNeeds tmux 3.2 or newer, on macOS or Linux, and [TPM](https://github.com/tmux-plugins/tpm).\n\n1. \nAdd the plugin to `~/.tmux.conf` :\n\n```\nset -g @plugin '27medkamal/tmux-agent-wizard'\n```\n\n2. \nPress `prefix + I` . TPM installs the plugin, and its first load downloads the`taw` binary for\nyour machine from the project's[GitHub releases](https://github.com/27medkamal/tmux-agent-wizard/releases) , checked against\nthe release's SHA-256 checksum. tmux says`tmux-agent-wizard: taw is ready, press prefix + A` when it is done.\n3. \nPress `prefix + A` . The agents you already have running are in the list.\n4. \nOptional, for restore: once for each agent you use, let it tell taw its session, so a restore brings it back into the same conversation: \n\n```\ntaw integration install claude    # and codex, opencode, cursor, ...\n```\n\n5. \nOptional, for a shell outside tmux (inside tmux, `taw` is on your`PATH` already):\n\n```\nmkdir -p ~/.local/bin && ln -s ~/.local/state/tmux-agent-wizard/bin/taw ~/.local/bin/taw\n```\n\nWithout TPM, from source, or with the download off: see\n[Install](https://27medkamal.com/tmux-agent-wizard/install/).\n\n| Key | What happens | \n|---|---|\n| `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. | \n| `Tab` | Moves the cursor to the next agent that needs you (blocked, or finished and not looked at yet), else to the next agent. | \n| `Enter` | Goes there. | \n\n`1`-` 9` jump to a session, `/` filters the whole tree with fzf syntax, and `?` lists every key on\none screen. If you know tmux, you already know taw.\n[Keys](https://27medkamal.com/tmux-agent-wizard/keys/)\n\nWhen an agent in a pane you are not looking at blocks or finishes:\n\n| Where | What you see | \n|---|---|\n| In tmux | a toast on the status line (the default) | \n| On your desktop | a macOS or Linux notification ( `[ui.toast] delivery = \"system\"` ) | \n| In your terminal, over ssh too | your terminal's own notification ( `[ui.toast] delivery = \"terminal\"` ) | \n| On your status line, all the time | `⏸1 ⏵3 ✓2` : blocked, working, done, once you add`#{@agent_wizard_status}` to it | \n| On your phone | a message through ntfy, Pushover or any command, from a one-line hook | \n\n**`prefix + O`** takes you to the agent that needs you, from anywhere in tmux. Press it again\nfor the next one.\n\nIt is all tmux, so your agents are wherever your tmux is: ssh in from any terminal app on your\nphone, `tmux attach`, and `prefix + A` lists every agent; `Tab` and `Enter` take you to the one\nthat needs you. With the one-line hook above, your phone also tells you when one does.\n\ntaw saves on its own, a few seconds after each change, and keeps a copy of the layout at most\nevery 15 minutes. After a reboot or a tmux crash, `taw session restore` brings back your\nsessions, windows, layouts and folders, and 18 agents (Claude Code, Codex and OpenCode among\nthem) reopen in their own conversations once each agent's hook is installed (one command per\nagent, such as `taw integration install claude`).\n\nNext to tmux-resurrect and tmux-continuum: taw restores when you run the command, not by itself\nwhen tmux starts, and it does not start other programs such as vim again, which resurrect can.\nSo you do not need resurrect unless you want that, and if you keep it, one line runs taw's\nrestore after resurrect's own.\n[Save and restore](https://27medkamal.com/tmux-agent-wizard/restore/)\n\n- **22 agents.** Claude Code, Codex, Gemini CLI, OpenCode, Copilot CLI, Cursor, Amp and 15 more,\nalso when started through npm, a wrapper script or a container.[Agents](https://27medkamal.com/tmux-agent-wizard/agents/)\n- **Worktrees as sessions.**`w` makes a git worktree with its own tmux session; a closed one\nstays in the tree and`Enter` reopens it.[Sessions and worktrees](https://27medkamal.com/tmux-agent-wizard/sessions/)\n- **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/)\n- **A sandbox on request.**`taw sandbox` runs an agent in a container, through a profile you\ncan read (in beta).[Sandbox](https://27medkamal.com/tmux-agent-wizard/sandbox/)\n- **Hooks.** A command of yours on any event: an agent going blocked, a session opening, a\nworktree closing.[Hooks](https://27medkamal.com/tmux-agent-wizard/hooks/)\n- **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/)\n- **herdr-compatible.** Your herdr`config.toml` means what it meant, and herdr's CLI-driven\nplugins install here (plugin support is in beta).[Coming from herdr](https://27medkamal.com/tmux-agent-wizard/herdr/)\n\n✅ has it, \n\n|  | taw | herdr | tmux and its plugins | \n|---|---|---|---|\n| Runs in the tmux you already run | ✅ a TPM plugin, no restart; running agents show up at once | ❌ its own terminal workspace and config | ✅ | \n| 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) | \n| An agent in a container | ✅ `taw sandbox` , through a profile you can read | ❌ no sandbox of its own | ❌ by hand | \n| An agent you start in Docker or Podman | ✅ recognised, with nothing set | `HERDR_AGENT` set | ❌ | \n| A command of yours on any event | ✅ one line under `[hooks]` |  |  | \n| Notifications on your phone | ✅ a one-line hook |  | ❌ | \n| Knows each agent's state | ✅ 22 agents, herdr's rules plus seven of taw's own | ✅ 22 agents | ❌ | \n| Takes you to what needs you | ✅ `Tab` in the popup,`prefix + O` anywhere | ✅ its sidebar and notification key | ❌ | \n| 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 | \n| Agents always accessible | ✅ in a popup on a key, plus a count on the status line | ✅ in a sidebar | ❌ | \n| Updates live as agents change | ✅ the popup, the status line and the toasts, as it happens | ✅ the sidebar, and events on its socket | ❌ | \n| Supports herdr's plugins | ✅ in beta: herdr's CLI-driven plugins, beside your TPM ones | ✅ plugins and a marketplace | ❌ | \n\nherdr as of v0.9.4, October 2026.\n\ntaw is independent of herdr and uses herdr's Apache-2.0 detection engine and rules, with\ncredit. herdr is its own terminal workspace, and a good one outside tmux; taw is for the people who\nstay in tmux. The [parity ledger](https://github.com/27medkamal/tmux-agent-wizard/blob/master/docs/PARITY.md) goes through herdr feature by feature, and\n[Beyond herdr](https://27medkamal.com/tmux-agent-wizard/beyond-herdr/) lists what taw does differently.\n\nOne small watcher per pane, about 9 MB each; eleven panes with ten agents among them used 2.7%\nof 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\nown. State lives in tmux's own options, kept current by those watchers. taw writes nothing into\nyour `tmux.conf` or your status line: it adds its two keys and its tmux hooks when it loads,\nbeside yours. The only thing it asks the network for on its own is newer detection rules from\nherdr.dev, at most once every 6 hours, and one setting turns that off. An end-to-end suite drives\nreal tmux servers.\n\n- [Install](https://27medkamal.com/tmux-agent-wizard/install/) and[Keys](https://27medkamal.com/tmux-agent-wizard/keys/)\n- [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\n- [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/)\n- [Agents](https://27medkamal.com/tmux-agent-wizard/agents/) : integrations, reporting an agent of your own, containers,[Sandbox](https://27medkamal.com/tmux-agent-wizard/sandbox/)\n- [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/)\n- [Questions](https://27medkamal.com/tmux-agent-wizard/faq/) : why not herdr, Claude Code's own agent view, what it costs, how to remove it\n- [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/)\n- 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/)\n\nMIT. The parts taken from [herdr](https://github.com/herdrdev/herdr) keep herdr's Apache 2.0\nlicence; [THIRD_PARTY_LICENSES.md](https://github.com/27medkamal/tmux-agent-wizard/blob/master/THIRD_PARTY_LICENSES.md) lists them.", "url": "https://wpnews.pro/news/show-hn-taw-herdr-for-tmux-see-which-coding-agent-needs-you", "canonical_source": "https://github.com/27medkamal/tmux-agent-wizard", "published_at": "2026-10-28 11:13:13+00:00", "updated_at": "2026-10-28 11:42:40.578225+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "ai-tools"], "entities": ["tmux-agent-wizard", "taw", "herdr", "tmux", "Claude Code", "Codex", "OpenCode", "27medkamal"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-taw-herdr-for-tmux-see-which-coding-agent-needs-you", "markdown": "https://wpnews.pro/news/show-hn-taw-herdr-for-tmux-see-which-coding-agent-needs-you.md", "text": "https://wpnews.pro/news/show-hn-taw-herdr-for-tmux-see-which-coding-agent-needs-you.txt", "jsonld": "https://wpnews.pro/news/show-hn-taw-herdr-for-tmux-see-which-coding-agent-needs-you.jsonld"}}