Agent-Manager: A Tmux TUI for Running Claude Code, Codex and OpenCode
github.com
github.com
Can someone who uses one of these agent-specific multiplexers share their experience and reasoning for reaching for / building these? What makes this better than a normal multiplexer? I am asking in earnest; I just don’t understand but I want to.
I should probably download different types of frog sounds for different agents though.
The primary reason people reach for these tools are two to three reasons:
1. Tmux does not natively show agent statuses of agents / notify you when one needs input. Helpful when you have a huge list of small things to fix: I just spin up N agents in parallel to handle all of them, then I go over and review.
2. Tmux does not handle worktree handling. If you wanna make changes in parallel you cannot have two agents make db migrations at the same time. The way to solve for this is to have them work on two different worktrees with separate environments, ports etc.
3. Tmux tree view is not super beautiful, especially for viewing agents.
I built this as a tmux plugin since I don't really want to opt-out of tmux as a whole, especially since I like my keybindings there.
If you're truly multi-tasking with this type of setup it feels more like "tiktok coding", "brainrot coding", or any other term that should be used for it.
I'm pretty sure we're moving away from it, the agent you interact with via voice or typing will go to a higher and higher abstraction level, and you won't have to effectively micro-manage them.
What are you using for the environment part? Containers?
setup.sh figures out which ports are available and changes .env files accordingly. Run.sh runs the actual setup.
For me the main advantage of herdr is that when I have the codex integration activated, herdr will keep track of the codex session ids and automatically restore them after restart
With the other multiplexers I had to create a separate tool that would save/restore layout/tabs/panes/session ids. And I had to run it manually. With herdr it just works, almost out of the box
Oh, it’s also very nice that you can create groups of tabs, so it’s easier to organize if you have more than 3-4 terminal sessions open (I usually keep at least 3 tabs, each split into an agent pane and a zsh pane)
And lastly, mouse scroll support is a lot better. I’ve had many issues with scrolling codex’s output. tmux and zellij’s scrolling wouldn’t play nicely with codex’s output, but herdr seems to work very well
- I don't need to use TMUX's wonky keyboard shortcuts
- I moved off of TMUX anyway, when ssh-ing into remote servers became 'not a thing'
- automatic coding session management, like auto resume, layout manamgement, etc. out of the box, without setting up TMUX, which could be a wormhole for some, by the time you fix mouse scrolling, cut/paste, etc...
I'm currently using CMUX, and been pretty happy with it it at this time, but loving the evolution of all these tools
If you're making valuable tools, anthropic, openai, or one of the other big players in the space will hire you/buy you out and then they will release the tool themselves.
I'm getting really tired of everyone doing their own special rain dances and then acting like they made it rain.
I then make it show icons and indicators for blockers, ready sessions that need attention, TODO lists that include notifications and actions (because it's so easy to miss things while working on/with many sessions). Shows costs (loop coordinator and non-LC costs, by day, etc) so I can optimize costs.
It's fun, a learning experience and it's more productive. With excellent SOTA and coding agents now, we should be building tools to improve our work even more than before. Try it.
tmux has a better `prefix-[` mode where you 1) can do visual selection using line/block mode 2) you can use `o` to switch to other side (just like vim) 3) it pauses/freezes the state of the output so you have time to capture
In herdr, its very basic and incomplete if you're a vim/nvim/tmux power user. And if you're in a TUI that shows some text and then hides it, its hard to do the selection in herdr before it disappears.
To give herdr credit, I did like it's `prefix-e` which opens the history in vim so you can you real selection utils.
As I was looking at herdr, I found there many other solutions that were like it built on the more robust tmux. I am still evaluating, but there are plenty of solutions that have hooks to observe what's going on in agents in other panes/windows like herdr.
I like the Primeagen's `tmux sessionizer` style solutions for nvim to work with git worktrees that each agent may be in. And I like the tmux-agent-sidebar.
If you decide to try it out, please make sure to read the security implications. There is no sandboxing added as of yet, and guardrails are pretty minimal.
For all of these tools, now, there are many. After I built my own agent sandboxer[0] I went so far as to create a site dedicated to 36 other similar projects / approaches: https://pleasedonotescape.com/
There are projects that have no stars that may be great and projects that have a high star count and are absolute garbage (because you can fake stars)
I tend to look at the commits, contributors, closed/open issue count ratio and the changelog.
I have always been a traditional simple command line tool kind of developer (I am an old man, old habbits die hard!) but I recommend at least a one day experiment with tools like agent-manager and/or Herdr that integrate tools like Claude Code and OpenCode into an integrated work environment.
I have been hacking on my own Emacs based agentic coding and work environment (so much fun!) but my recent experience with Herdr has been much more productive.
Anyway, the docs for agent-manager look good, I look forward to reading HNer’s experience with it.
codex(or whatever they're calling the bundled desktop experience) = selling inference
claude code = selling inference
conductor = selling hosted agents
superlogical = selling... something
I recommend everyone build their own. It's fun, you'll learn a bit, and assuming you work as a software engineer the dogfooding is built in. I built ouijit as my own example of this: https://ouijit.com & https://github.com/ouijit/ouijit (note that I am not trying to make money, just free as in libre AND beer)
I had the problem of crashing terminals due to OOM kills and wanted to switch to a more lightweight terminal. Also I had too many of them and couldn't find the right one any more.
I thought, why not build one yourself. The result:
https://github.com/ThePixelPilgrim/kabelsalat
It has GTK tabbed, (almost) transparently tmux-backed terminals (so quitting or crashing the app and starting it up again restores the state) in colored, named groups.
I recently added Wayland app embedding to run Chrome side by side with the terminal, local to each group, but this is still a bit shaky.
Would be nice if someone would test drive it and give me some feedback. :)
Curious how herdr or agent-manager fits into this remote-dev with intermittent connections experience
I had no idea how far the ADE / multiplexer space was, I'm very excited for more progress in this space!
what I kept missing was answering an agent without attaching to it. so space on a blocked one, type, enter, and it lands in that pane. on a project row it spawns a new agent already working on what you typed. the other half is review, ctrl+r opens what it changed as whole files with the diff tinted, c comments a line, C sends the notes into the pane.
deck does plenty I don't, worktrees, cost, forking. different bets.
Ghostty has tabs which show the icons for the terminal TUI. You can just look at those for the status.
Same with windows terminal, and you can use either of those to have tiling.
overlap on the status sidebar is real. two things I lean on that I couldn't find a key for over there: space on a blocked agent types the answer into its pane without attaching, and ctrl+r opens its repo as full-file diffs where a comment on a line goes back to that agent as a prompt. herdr's socket api can push text into a pane, so the first one is scriptable at least. correct me if I missed something.
mouse and windows, herdr's ahead.
We built a "fire and forget" agent that's supposed to complete whole jira tasks or that we're supposed to be able to call from slack. You put a ticket in to "make random.md document" and it creates a ton of unit tests and makes "notrandom.md" and says "success". Tons of engineers pulling plugins/skills/etc and injecting them in places they don't belong, lots with blatantly wrong info. People making whole frameworks and tools around their AI workflows, but they're worthless, anything that made sense gets released a week after they finish building from anthropic/openai/etc.
It's ai psychosis from c-level down.
I'm tired.
Can't tell you how much garbage AI tooling is being built within my org. Whole teams spinning their wheels basically rebuilding claude code because execs are obsessed with "dark factory". Individuals building plugins/skills/mcps that are duplicated or just plain wrong (why do I see so many skills/plugins telling our agents to use main branch when we've always used master???).
I've yanked MOST tools OUT of my claude code/opencode/codex. MCPs to centralize auth to our knowledge base, jira, gitlab. Then a singular short simple markdown file in each project/repo. When brainstorming, maybe I'll create a one off .md that I'll delete once the thing is built/implemented.
I'm tired.
agent-manager is a Go binary on top of tmux. No config file, no daemon, no server. Every agent shows up in one list with a live status, grouped by the project it's running in. Status comes from reading the pane, so adding a CLI is a few lines of regex in a toml file rather than an integration.
The keystroke I use constantly is space: press it on an agent, type, enter, and the prompt lands in that agent's pane without attaching. Press it on a project row and you get a new agent already working on what you typed. ctrl+r opens what an agent changed as whole files with the diff highlighted, and a comment left on a line is sent back to that agent as a prompt.
Sessions are plain tmux sessions, so quitting the manager leaves everything running and v reattaches a session with its conversation intact.
I built it for four agents and most days I use it with one. Still rough in places, and I'd like to hear what breaks for you.
No idea's original, there's nothing new under the sun
It's never what you do, but how it's doneAnd I’ve noticed that my hobby project went from being a niche toy to something everyone was independently building almost overnight. My guess is that AI now makes it trivial for people to get started.
In any case, I since decided it would be better to focus on building my tool for myself rather than releasing it, like I was originally planning to do.
I too built my own equivalent of this (belfry.robgough.net). I take it as a good thing, we're all using these tools and coming to similar conclusions.
I suspect over time it'll settle down, once we've gotten comfortable with the new ways of working and found the new normal.