We're all in the same boat right now: trying to figure out the best development setup. We've always done this in the past with VS Code extensions, LSPs, dotfiles but the question has changed. Now it's how do I connect, optimize and orchestrate a bunch of coding agents on my machine?
As a Vim/Neovim user, my first pick for an ADE (agentic development environment) was herdr. I've been using it for a few weeks and it's been working great. Then a new competitor showed up, Orca, so I gave it a fair shot: I read the docs, installed it, and ran my usual work through it.
I'm still sticking with herdr. Here's why.
Orca is genuinely good
Let me be fair first. Orca's GUI is polished and friendly. Seeing Claude and Codex usage and rate-limit resets at a glance is great, worktrees are front and centre, and features like fanning one prompt out to several agents and annotating AI diffs line by line are excellent.
But I live in the terminal. Neovim, tmux, CLIs is just home for me. Even though Orca's GUI does a good job of feeling like a terminal, it isn't my terminal, and switching to a separate app always felt slightly off for me.
What herdr gives me that fits my workflow
It runs inside the terminal I already use. herdr is a single Rust binary, no Electron. It runs in my terminal next to Neovim, with my fonts, my theme, my keybindings.
Coming from tmux, there was nothing to learn. Prefix keys, splits, ctrl+b q to detach. My muscle memory just worked on day one. (And the mouse works too when I feel like clicking.)
Agents can drive it, not just me. This is the big one. herdr exposes a CLI that agents can use to spawn panes, prompt each other, and wait until another agent finishes or gets blocked. My main Claude Code session hands mechanical work to Codex on its own, based on routing rules in my CLAUDE.md:
| long-running or needs supervision | gpt-5.5 | herdr pane — see "herdr delegation" |
### herdr delegation
- Prompt with `herdr agent prompt <name> "…" --wait`. Never sleep/poll.
- `blocked` = approval/question UI → show me what it's asking; don't approve it yourself.
Claude opens a Codex pane, waits on its state (no polling, no wasted tokens), and stops to ask me whenever Codex hits an approval prompt.
Here in this small screenshot the codex panes were open by claude
I always know which agent is stuck. Every pane is marked working, blocked or idle. When something needs me, herdr tells me (I even gave Codex its own sound).
Closing the window doesn't kill the work. Sessions live on a background server, so I can detach, close my laptop or drop my SSH connection, and everything keeps running. herdr reattaches.
My whole setup is a TOML file. It lives in my dotfiles, so moving from my Mac to Linux, or onto a remote box over SSH, is completely seamless. Same keys, same popups, same everything.
It doesn't care which agent I use. Claude Code, Codex, Gemini, Cursor, OpenCode and a long list more. herdr doesn't wrap them; it just owns their terminals.
Stealing Orca's best ideas
Trying Orca wasn't wasted time. I took its best ideas and rebuilt them on top of herdr.
Fan-out. One prompt, several agents, each in its own git worktree, then compare and merge the winner. In herdr that's a Claude Code skill: it creates the worktrees, starts the agents with herdr agent start, prompts them in parallel, runs the tests in each, and gives me a comparison table. Nothing gets merged until I approve.
/fanout “add retry with backoff to the S3 uploader” --agents codex,codex,opus
Diff review. Orca's annotate the diff feature is chef's kiss. My version is a small script bound to a herdr popup. It opens the diff in Neovim, I add #! comments under the lines I care about, and on save they're sent to whichever agent I pick, with file and line references.
[[keys.command]]
key = "prefix+alt+r"
type = "popup"
command = "herdr-review"
width = "90%"
height = "90%"
I use the same popup trick for gh dash and lazygit, so PRs and diffs are one keystroke away without leaving the terminal.
Phone notifications. Doable with a hook and a push service, but honestly I don't want it. When I'm away from my desk, I want to be away and disconnect so checking on agents from my phone isn't a feature I'm missing.
Design Mode. Clicking a UI element to send its HTML and CSS to an agent is clever. I'm not doing frontend work lately i feel like i could use it in the future for sure and a browser MCP gets me close enough when I need it.
So which one should you use?
If you like a GUI, want everything built in, and prefer to steer agents by hand, Orca is a great choice.
If you live in the terminal, want agents that can orchestrate other agents, and like owning your setup as config files, herdr is hard to beat. The features it doesn't ship with, you can build in an afternoon.
For me, the deciding question was simple: do I want a new app, or a better terminal? I wanted a better terminal.
What's your ADE setup? I'd love to hear what's working for you.

Top comments (0)