Herdr: One terminal to rule them all

(herdr.dev)

117 points | by handfuloflight 5 days ago

17 comments

  • robgough 4 minutes ago
    I'm a big tmux fan, but admittedly I've found myself switching between a lot of sessions recently and wishing it was a little bit more mouse friendly.

    If you're a Mac user, and can forgive the shameless plug, you might find belfry.robgough.net useful. Connects to local and remote machines entirely through tmux, and libghostty - populating the sidebar from tmux session info, and optionally adds a little Claude visibility in there for good measure.

    There's even an iOS/iPadOS version – though for the moment you'll need to build that yourself. Source is all on Github.

  • spudlyo 2 hours ago
    So I've tried to figure out why you might want to use this over Tmux, and essentially I think it comes to down to:

    - everything is mouse clickable

    - tmux style display-popups are used for friendly UI interactions everywhere

    - it has a UI for agents running in panes, with a cool status (idle/working) display

    - has opinionated defaults like automatic clipboard copy on mouse text select

    - makes nested sessions easier & has default affordances for remote SSH attach

    - is generally prettier

    - uses display-popups for notifications

    Otherwise it seems exactly like tmux.

    • jvican 1 hour ago
      I wanted to mention that `zmx` is a beautiful piece of minimal software that basically has gotten rid of my tmux and zellij use. Uses a ghostty-based terminal emulator for each session, supports pretty much all of these features by leveraging ghostty. I truly don’t see the benefit of something like herdr over this minimal, robust setup. If I really wanted a lot of customization for AI assistants, I’d consider using Orca, but my current zmx approach works OOB and it’s solid. Great software!
    • fcarraldo 1 hour ago
      I think https://zellij.dev/ covers all of these? But it isn't an "agent native", and `herdr` seems to support importing existing agent sessions.
      • alasano 46 minutes ago
        I use zellij a lot and created myself a zellij skill for an agent to manage my sessions/layouts in zellij directly.

        So for a new worktree the agent can create a tab in zellij with multiple panes, properly named etc.

        It works really nicely.

        Although since I got the 52 inch Dell monitor I tend to just put everything visible at all once most of the time.

    • benrutter 1 hour ago
      From what I can figure it is actively calling itself a multiplexer, so pretty closely linked to something like tmux (one of the review videos on the page calls it a "tmux rewrite").

      But they seem to be targeting very different scopes use wise.

      I think if you use this to do stuff like, edit files, run htop, drop into an interactive shell, compile some code, my guess is you're gonna be fighting uphill and have a bad time.

      On the other hand, if you're only using tmux so that you can have a bunch of terminal windows for agents. Then this is probably going to make your workflow a fair bit smoother.

      • Tadpole9181 47 minutes ago
        What? Do y'all even try it before saying things like this?

        I use it primarily as a replacement for tmux to do terminal stuff, not use agents. It's awesome. It worked out of the box, has actually good, working mouse support, quickly ships fixes, and the defaults are sane with obvious behaviors represented in an intuitive TUI.

    • nijave 1 hour ago
      tmux has a mouse switch--does this do more than that?
      • spudlyo 1 hour ago
        I think that just enables xterm mouse support, and allows for various mouse key bindings in tmux. I think the deal is that it's turned on by default, and lots of the UI elements by default are configured with mouse bindings. Not just selecting and resizing panes, you can right click on a pane or a workspace and one of those display-popups pops up with a "rename" dialog box.

        I think this is why it's described as "mouse first" terminal.

    • himata4113 53 minutes ago
      You can enable mouse in tmux as well.
    • jonfw 2 hours ago
      Mobile support?
      • spudlyo 2 hours ago
        The example I saw of "mobile support" was connecting via a mobile terminal emulator. I don't see how that is any different than using tmux with the same mobile terminal emulator.
        • codybontecou 2 hours ago
          The clickable areas work on mobile as well - at least using supported clients like Moshi
    • cyanydeez 2 hours ago
      you dropped this >rust
  • graypegg 2 hours ago

        > Popular with engineers from... (bunch of logos)
        > Individual engineers, not company endorsements.
    
    Bold haha. Maybe that's fine with the disclaimer, but feels like lawyer-bait.
    • obmelvin 2 hours ago
      I've seen a lot of companies list logos if just a single engineer or team is using the product.
      • anticorporate 26 minutes ago
        I used to work at BigTech in a role where I spent a lot of time reviewing new open source projects. It was always a fun game to guess which single person in which department tried out a piece of software that caused our logo to end up on the "as used by..." description on the tiniest of projects.
      • graypegg 1 hour ago
        Fair haha. I'm no trademark lawyer, but I have to assume there's some wiggle room when you're not actively stealing their trademark and just referencing it... but still, the combined value of endorsements from Google/Nvidia/Amazon/ByteDance/Tencent/Alibaba/SalesForce/IBM etc has to be worth... a lot. That "not company endorsements" is rather load-bearing. I don't think I've seen anyone just say that, so maybe they're being a bit less bold haha.

        You might as well say Herdr runs on 3 billion devices, go all in! 16 billion devices! Every human on earth installed Herdr twice! (source: study amongst users of herdr, n=5)

        • obmelvin 17 minutes ago
          I get your point completely. I was (naively, I suppose) pretty surprised when I realized how low most people's threshold is to add a logo and claim a client/brand.

          I've seen VCs very much encourage this (and shadier) behavior. There's a line between hustling / being an entrepreneur and actively trying to mislead people... clearly we don't all see that line being in the same place (:

      • bdangubic 1 hour ago
        I go from company to company just to be able to add their logo to stuff I use :)
    • nijave 1 hour ago
      Everyone does that. Some random startup "We're used by Google!". More often than not some random engineer signed up for a trial or some tiny department somewhere is using it for some internal thing
    • logdahl 1 hour ago
      I was under the impression that "individual engineers ..." is basically implied always, if not just outright lies, I don't trust these listings very highly. Except when its clear that the companies are actually customers. Like; how do I even add my company to this list? Email them?
  • 3abiton 2 hours ago
    I still don't fully get the additional value over tmux, beside notification regarding the agent status?
    • linsomniac 2 hours ago
      For me, that was the big selling point. If you aren't working with multiple agents at once, I'm not sure you'd pick Herdr.
  • linsomniac 2 hours ago
    I've been using Herdr for running my AI agents and it has been really nice. I like that I can reconnect to it from multiple sessions (I have one up in a window on my desktop, and when I ssh in from my "after hours" laptop I can also attach to it there and continue one if I'm at my son's Dr appt or the like. I can also attach to it natively from my Mac over SSH transport as well as resuming a remote wezterm connection that is running herdr.

    A few small downsides: I can't copy/paste in wezterm using the keyboard/vim keys because it is constantly drawing the screen and unselects my selection. The mouse drag in herdr works very well though. It'd also be nice if you could rebind key mappings in the UI, because I still haven't rebound the keys and am using the mouse.

    • dbl000 2 hours ago
      How is this different from sshing into a server and attaching to a tmux session? I don't see the benefits in switching over.
      • linsomniac 2 hours ago
        The primary benefit I've gotten over just a straight tmux session is that there is a collapsable left "tab" bar that shows you your different workspaces, which you can relabel, and below that is a list of the agents you are running (claude code, codex, etc) along with their status (idle, blocked, working).

        So I will start a workspace for each different thing I'm working on, label it "Studio Shed Packet", "Teapot game", "Mux experiment". Then in each one I run a Claude Code. Then I can see the status of my Claude Codes just by glancing at the sidebar, rather than having to switch between screens to see what is waiting next.

        I've been using it around a week so far.

        • nijave 1 hour ago
          You can rename the tabs in tmux but not sure if there's a way to do dynamic status (I suspect there is but it's probably non trivial to get it to play nice with the harness)
          • yjftsjthsd-h 10 minutes ago
            If you're willing to go down to a single boolean of "needs attention", tmux responds to the terminal bell.
      • jboss10 2 hours ago
        I think most of this can be done with tmux and some simple extras. An afternoon of vibing.
        • fragmede 1 hour ago
          Yes but someone else has put in the effort so I don't have to. I could go to the supermarket and buy a bunch of groceries and make food, or I could buy food from a restaurant.
  • vadepaysa 1 hour ago
    I saw this trending on github yesterday and tried it and liking it so far. What I like: - familiar tmux like key binding (configurable) interface - comes with all the tmux advantages like detach, ssh etc - mouse - nice sidebar

    I prefer to manage my worktrees manually with a super simple script.

  • dagss 2 hours ago
    Is there git worktree support?

    With the long waits for agents to do stuff I really don't see how one can get anything done without multitasking with multiple worktrees in parallel. So I'd want support for listing the worktrees and then have a list of agents within each worktree.

    Emdash and Nimbalyst have this kind of UI. Unfortunately both of them want to manage the state of each worktree group themselves; I'm looking for something that just would just call git worktree directly so that I can switch more seamlessly between CLI and IDE/TUI..

    • dools 2 hours ago
      I use this bash script that creates tmux windows and panes in a worktree and then undoes the process:

      https://gist.github.com/iaindooley/cc8a61a1ff0fe23526c850906...

      You include a script .worktree in your repo that does any copying or symlinking to setup the target directory.

      It also has a headless mode so that it does the worktree operations without the tmux which I use for executing pi -p prompts in worktrees.

    • linsomniac 2 hours ago
      Yes, it seems that it does though I have not yet tried it: https://herdr.dev/docs/configuration/#worktrees
    • tim-projects 2 hours ago
      I haven't been able to use worktrees because when there are major conflicts I find the ai can't handle it. Often it ends up dropping a lot of code.

      How do you manage that? How do you successfully navigate complex merges using ai?

      • dagss 2 hours ago
        Claude can easily do the merges I need (or myself manually for that matter). I guess all codebases and usecases are very different here and hard to give general advice.

        But I do have many years of experience working in a larger team and it's the same problem there (just that people want to merge after some days of working). I'm not sure if AI changes the picture much vs working in a team.

        Either way one has to plan ahead a bit and select tasks that are not going to trample on each other. I can typically imagine roughly what the code generated is going to be (at least what files will likely be involved in what way) and when selecting tasks to work on I take into account if it's going to likely cause conflicts.

        In my experience if different branches work on different things, Claude have no issue doing "trivial" merges where you just ended up changing different aspects of the same lines. Of course, if two branches rewrite the same pieces of code there's a problem -- so don't do that..

      • dools 2 hours ago
        I always rebase the worktree back to the source branch before merging, and resolve conflicts on the branch. I have a resolve conflicts skill and just say:

        echo “resolve conflicts” | runpi

        Where runpi is my pi -p wrapper. I’ve never had a regression from it, but it gives me a report at the end so I can double check the decisions if I need to.

        The skill is basically don’t use automatic resolvers, err on the side of including both sides, refer to recent commits, missions and runfiles for context and in your report to me use real branch names not HEAD and incoming because I can never remember what those refer to.

      • nomel 39 minutes ago
        As conceptually required, serialized work that works on the same lines of code, or fix conflicts.
    • ahmadyan 1 hour ago
      git worktrees are managed by git, not the IDEs. e.g. at agentastic.dev, we use git's worktree command to create them, and they should be portable to any other IDE or app.
      • dagss 1 hour ago
        Of course. But I prefer IDEs that group and name the agent sessions by the worktree they are tasked with automatically.
    • dv_dt 2 hours ago
      what is the advantage of git worktree vs using a git remote set to a local file upstream.
      • jamie_ca 2 hours ago
        I'm sure they're roughly equivalent. Parent is probably actually asking: is there native support for managing multiple checkouts/branches for parallel work (and I would add: with lifecycle hooks for create/teardown so I can have dedicated test databases etc).
      • dagss 2 hours ago
        As the sibling comments note, this is kind of off-topic to my post.

        But I think git worktrees are a bit more ergonomic, I don't have to think about local vs upstream there's just one place to push.

        I like to organize my projects like this:

            myproject/.repo/git  # bare repository .. my own convention..
            myproject/main       # worktrees from ../.repo/git
            myproject/feature1
            myproject/feature2
        • nomel 36 minutes ago
          The problem I have with this is if I need to switch branches to merge something. If a work tree for any branch involved exists, it prevents me. So, I have to go clone somewhere else, do whatever, then update everything. I really wish git didn't care about the other worktree folders, since it clearly doesn't anyways, since you can switch a worktree to and branch you want.
      • dools 2 hours ago
        What is the advantage of a git remote set to a local upstream vs a git worktree?
  • pshirshov 43 minutes ago
    I'm happy with tmux - can use it on my phone.
  • emosenkis 1 hour ago
    I thought for a minute that they had built agent support for all terminals, which would render obsolete https://terminai.app which I just released. Luckily for me, this is on the other end of the spectrum. Maybe there would even be a use case for running herdr as the AI CLI inside of terminai.
  • orliesaurus 1 hour ago
    I cant figure out how to make subagents work with herdr, tried to email the maintainer and got no reply back (yet) - has anyone figured it out?
    • nlh 45 minutes ago
      Can you elaborate a bit on what you're trying to get to work?
  • anr0 2 hours ago
    how does this compare to superset and conductor?
  • r-w 53 minutes ago
    "hurr durr"
  • beepbooptheory 2 hours ago
    > Each runs in its own real terminal, on a server that keeps it alive when you close the laptop.

    How does one describe what's happening with stuff like this? Where a business tries to intercept people who are still learning the lay of some land, to get them to pay for something that they just haven't learned yet can be essentially free to them? Is there a word for it?

  • colesantiago 2 hours ago
    I read the website and still don't understand what this solves.

    Doesn't tmux and zellij do all of these things that 'herdr' does?

    • derdi 1 hour ago
      This 6-minute video (linked from the website) demoes it nicely: https://www.youtube.com/watch?v=qnIu-Xu64H0

      It sets up a bunch of panes for you and tracks your agents' status and everything is clickable. You could probably do much of the same by setting up tmux appropriately. Or you could use this, which is already set up.

      I tried herdr today, and it's not bad. Better than my previous many terminal tabs. Copy-and-paste is wonky (and it's ridiculous that copying is documented in multiple places in the docs, but pasting is never mentioned). And when an agent is waiting for a shell command, it shows as "idle", which IMO is wrong. Still, seems OK so far, I'll stick with it for a while.

    • fragmede 1 hour ago
      yes but this does it wrapped up together.
  • kordlessagain 2 hours ago
    I've been working on Hyperia, which is very similar: https://github.com/deepbluedynamics/hyperia. Hyperia is a fork of Hyper Terminal. Both are open source. Competition is good for this space, I think, especially for the user. There's also cmux and Intelligent Terminal (by Microsoft).

    I do separation of concerns with the agent orchestrator (Nemesis8): https://github.com/deepbluedynamics/nemesis8. That can be run with or without Hyperia. I do not suggest anyone run agents on their bare metal. Putting them in a container gets a lot of wins, especially around log aggregation. Working now on a Splunk/Loggly-like interface for searching logs, tool runs (useful in tuning a custom local MoE drafter) and full session suspend, stop, detach, and search. It also does single MCP tool installs for all agents. Nemesis also supports dynamic port exposure to the host metal, for testing agent builds inside their containers.

    Hyperia has a lot of extra features as well that I have found personally useful:

    - Sticky notes (search too) - addressable panes in addressable tabs, tabs in windows, multiple windows - full ACLs across panes, notes, tabs, windows - Poke-a-pane to keep an agent going (any agent, not just CC which has a timer function) - webpanes with markdown extraction, JavaScript injection - directory pickers for people who find cd'ing to things confusing or those weary of typing nearly the same directory path over and over again in new terminals (not perfect, but I'm iterating on it) - a built in agent loop (in the Rust sidecar) that allows using local models for tool calls (needs a trained drafter to make it viable) or using a local model for token maxxing (compresses reads of panes by frontier models) - pane splits down/up/left/right and quick layouts.

    As for whether it was "vibe coded" or not, or Herdr for that matter, I don't think that term is useful, other than for quick judgment. No, this is not a one-prompt project. I've spent 100s of hours on it, started out with Hyper, and did a crazy amount of planning on how to architect it. I have done systems architecture for a living before, and have a strong search background. People who hate on AI, and therfore projects done with AI, are threatened. Nothing more. That's why they shortcut with "AI slop" or "Vibecoded. Nope". That's just ignorance speaking from a standpoint of fear.

    Slop, whether AI or human, is an effort problem: https://deepbluedynamics.com/blog/ai-slop-effort-problem. Looking at Herdr, it looks solid. Judge the product by it's outcomes, it's use, not whether or not AI wrote it or not. That's the moment we're in though, for now, so downvote or not. I don't care.

    • orliesaurus 1 hour ago
      Cool that you're using Hyper Terminal as a starting point! What was the reason why you've added MCP to this? How is the intended use? I launch Claude Code on Hyperia and then Claude Code can open as many tabs as it wants inside of Hyperia? Or m I missing something
  • essenial 2 hours ago
    [flagged]
  • ori_b 2 hours ago
    Vibecoded. Nope.
    • jatora 32 minutes ago
      Good call. Break up with her first before she breaks up with you.
    • andhug 2 hours ago
      i mean the app is for vibe coding, what did you really expect?
      • r-w 53 minutes ago
        Then it doesn't "rule them all" for anyone who needs a terminal, does it?