Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Okay, back to tmux it is then.


Over the last year I ended up duct taping a lot of functionality onto tmux to get what these new age multiplexers set out to do (session launch, live agent status, etc). And it works, but it definitely feels like duct tape.

I'm not sure the tmux project wants to evolve to support this natively so for now herdr seems like one of the best open and forkable options available. Considering how little I've had to really touch my tmux setup after getting it going I don't think it's necessarily the worst thing in the world if the FOSS community maintains a deshittified fork of herdr, should it come to that.


I've been wondering what the point of a lot of these new multiplexer projects are when tmux is so extensible. I'd be curious to see eactly what you've done. Care to share a tmux config?


It's less the tmux config and more the scripting around it.

(shameless plug: I launch agents in tmux directly into docker containers with remuda, a tool I built at work & open sourced [0])

Anyway, I have a vibe coded script that shows me this overview for each of the agents I launch in tmux (hope this doesn't turn out mangled):

  ╭───────┬───────────┬────────────┬─────────────┬───────────────────────────────────────────────╮
  │ AGENT │ PR        │ REPO       │ BRANCH      │ ISSUE                                         │
  ├───────┼───────────┼────────────┼─────────────┼───────────────────────────────────────────────┤
  │ ready │ draft   │ <redacted> │ branch1     │ Fix data race in e2e mock AssertExpectations  │
  │ ready │           │ <redacted> │ branch2     │ Modernize such and such                       │
  │ ready │ open    │ <redacted> │ branch3     │ JIRA-123: some sprint work                    │
  ╰───────┴───────────┴────────────┴─────────────┴─────────────────────────────────────────────-─╯
The agent status column (ready/working/etc) is just using heuristics from the terminal title (since a lot of harnesses have the live status in the title) or tmux capture-pane

The rest of the fields are either the gh cli or from beads, detected from the branch name (using https://github.com/Dicklesworthstone/beads_rust).

My session switcher is cool (shows the session name and the issue title + a preview of the issue details) but ultimately also along those lines; tmux itself doesn't do a whole lot, it's just being extensible and letting me run an fzf pipeline enriched with data from beads.

This works great for me personally but the part that actually pulls data out of the agent sessions is built on heuristics, and I didn't even attempt to get notifications out of it, I just side channel those out using peon-ping[1]

[0]: https://github.com/yendo-eng/remuda [1]: https://github.com/PeonPing/peon-ping


very cool. thanks!


I built hive that’s similar to herdr but sits beside tmux instead. It provides a nice status UI on top of tmux instead of building the multiplexer. It also has a bunch of other utilities for working with agents like a message bus and task management framework.

https://github.com/colonyops/hive


I started noticing problems with MCP auth state failing inside herdr, but working in a normal terminal session or with tmux, so I switched back to using tmux and it's been flawless. I also noticed that herdr was causing errors/warnings in ordinary terminal sessions so it's more trouble than it's worth at the moment (at least for me). It's a shame though, since I otherwise think it's a good tool.


could you help me understand the appeal of running everything in tmux? i use tmux if i have long running scraping/db backup or restore, or something similar.

it seems like an awesome thing to geek out on.

but i keep claude code sessions running for days that sometimes get interrupted that are easily resumed. without the tmux latency or giving up aspects of rendering.


I haven't experienced any latency in tmux, so I'm not sure what you're experiencing. For rendering, you may have to change your `TERM` value in your shell.

Tmux is highly keyboard driven and I hardly use any graphical applications outside of my browser. My workflow is basically the same regardless of whether I'm using Linux, macOS or Windows because my workflow lives in the terminal. If I close the terminal, I can continue the session and I can SSH into the machine from another machine.

It's also got a rich plugin ecosystem and is available on pretty much any package distribution. You can also preprogram your layouts if you always do your layouts the same way.


appreciate the reply!


Give it a whirl with Workmux! I moved from Herdr to Workmux + Tmux about a month ago and am enjoying it. Significantly more flexibility.


Yes, just using tmux. I built a lightweight python TUI wrapper than can start Claude code, codex and open code using tmux because I was loosing my mind to retrieve my sessions and context. Using it for the last 6+ months. Some bugs still where the Claude sessions are not killed properly time to time. https://github.com/michaelricordeau/ccs


I am going to be PRing herdr to stagex as it is my daily driver. This will give it a totally independent release process with multiple parties bootstrapping, reproducing, and signing deterministic binaries for it alongside our tmux releases.

We (the stagex team) will naturally patch out any corpo tracking bullshit that may or may not happen in the future, and follow the dominant community fork should it be needed, as we did with terraform -> opentofu.

As long as herdr does not enshittify though, we will be happy to provide very high supply chain integrity releases for it as-is starting with probably next months stagex release.

Absolutely no problem with FOSS developers finding revenue streams to give themselves more resources to make their projects better.

My own company is 100% FOSS with nothing held back and will stay that way, even though we are in the current YC batch with more customers signing every week. Admittedly this is atypical, but it can be done.


For the tmux crowd: please consider sponsoring the author

https://github.com/nicm

https://liberapay.com/tmux


Try https://zmx.sh for a more minimalist tool




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: