N. Corbellari
← Notes

Outil · IA

Herdr, the agentic terminal multiplexer

Having your development environment and all your AI agents in one place is possible. Today, let's talk about Herdr.

Introduction

Today, we are going to talk about Herdr, a terminal multiplexer designed specifically to make AI agents and sessions easier to access.

Herdr’s general interface

What is a terminal multiplexer?

The term “terminal multiplexer” may sound intimidating. In reality, the explanation is simple: a terminal multiplexer lets you create and manage different terminal sessions in a single window. There are others, such as tmux.

Why use a terminal multiplexer?

After all, why have several terminal sessions in the same window? For a developer, it is extremely useful. You can monitor and check different parts of a project simultaneously without juggling between windows.

A concrete example

In this example, we have a project with a Django backend and a Next.js frontend. The project is simple: a review website.

Imagine I want to run the project: the multiplexer lets me quickly get a view of the backend and frontend development servers. Indeed, we split a pane in two to have the frontend on top and the backend at the bottom:

Pane split with the frontend on top and the backend at the bottom

Now imagine we also want to create a Django shell to access our database live; we just split the pane vertically to get another terminal.

Pane split vertically to add a Django shell

There are plenty of other interesting features in a multiplexer:

  • Avoid losing an SSH session when you get disconnected
  • Fast execution with keyboard shortcuts

Installing and testing Herdr

Herdr is available on Windows, macOS and Linux. Installation is relatively simple: once a terminal is open, enter the command:

# Linux and macOS
curl -fsSL https://herdr.dev/install.sh | sh

# Windows
powershell -ExecutionPolicy Bypass -c "irm https://herdr.dev/install.ps1 | iex"

And the installer does its job. It is recommended to close and open a new terminal afterwards to reload the bash/PowerShell configuration with an up-to-date PATH.

Herdr is a program that consumes little. The program is written in Go, so it is ultra fast, and the binary weighs barely 21 MB.

Herdr’s footprint and binary weight

Getting started

To launch Herdr, type in the terminal:

herdr

Herdr starts and you see the following screen:

Herdr launch screen

Once confirmed, you get Herdr’s general workspace.

Tool layout

Herdr’s general layout

The space is divided into four main parts:

Part 3 - Terminal layout

This is where you will find your different terminals; here you can split them horizontally and vertically and even move from one to another without using your mouse.

Part 4 - tabs

Tabs represent a terminal arrangement. You can have different windows and give them a name. For example, in my daily configuration, I have this tab layout:

Example tab layout

Part 1 - spaces

This part lets you create workspaces. Workspaces can be:

  • user-defined
  • defined by worktree (we will talk about this later) A workspace is a specific tabs configuration.
Part 2 - AI session

Here, you will find the different AI sessions and their state; we will come back to this later.

In practice

Practice makes perfect, so let’s use Herdr. I am a developer working on the digital library seen earlier.

My (hypothetical) way of working is as follows:

  • I develop with AI to assist me, notably using opencode
  • I run two development servers to test the project on my machine
  • I have a terminal for developing with Neovim (no judgment).

One important thing to know is that Herdr works with commands triggered from the keyboard. The format is always:

<prefix> + <keyboard_key>

By default <prefix> is Ctrl+b

AI Agent

The first thing I can do is create a workspace dedicated to my opencode AI. To do so, I press <Ctrl+b> + c, and a dialog appears:

Workspace creation dialog

You just need to choose the workspace name:

Choosing the workspace name

And the new tab appears at the top in the bar. To access it, just click on it.

New tab shown in the top bar

And you can launch opencode, Claude or any other AI agent inside:

opencode .
pi
claude
codex

You will notice that once launched, an “agent” appears at the bottom left of the interface:

Agent detected at the bottom left of the interface

The small dot to the left of the agent’s name indicates its state:

  • hollow green dot (current case): the agent is not working
  • solid yellow dot: the agent is working
  • solid red dot: the agent is stuck and needs human intervention
Why is this useful?

You can see at a glance where the agents are and what state they are in. Right now I am using this feature: I am writing this blog note while waiting for the agent to finish implementing a feature on my SaaS, and I instantly see whether it needs intervention or not. As a result, I waste no time waiting for the agent to finish or leaving the agent idle for long. The strong point is that you can see all these agents at a glance.

Development space

Now, we can create a new space for our development space. Again:

<Ctrl+b> + c

I will name it “nvim” and launch nvim inside

Development space with nvim

And I can code inside.

Is that all?

Obviously: no. Herdr’s strength lies, just like tmux, in the fact that you don’t need to touch the keyboard if you know the tool well. Unlike tmux, where you have to go to the website to get the commands, Herdr is designed so that if you know what you want to do but don’t know how to do it, you just need to:

  1. press <Ctrl + b> + ?
  2. press ?
  3. type what you are looking for, Close pane for example

Searching for a command with Close pane

This way, you learn the tool on your own without going back and forth to your web interface.

Git

This is a tool you normally use a lot as a developer. Herdr offers a well-made integration with worktrees.

What is a worktree?

A worktree is a Git branch that is not in the same folder as the current project. It is a feature that became popular with AI agents because it lets several agents work on different features (since they don’t work in the same folder).

For example, in our project, imagine we want to work on a co-authoring feature.

First step, create a worktree:

git worktree add <worktree_folder> -b <branch_name>

Creating a Git worktree

Then, press <Ctrl+b> + Shift + n, which creates a new workspace. And, on the left, in the spaces tab, you should see a new item (in my case, I renamed it hobby because I am writing these lines in my free time)

New item in the spaces tab

Why are we doing this?

Very good question, and we can answer it right now. What is interesting now is that by right-clicking on this space, you see Open worktree

Open worktree menu on right-click

And by clicking on it, you can select our worktree.

Selecting the worktree

And by clicking on the new worktree, you see a new space under main being created.

New space under main

You can see that by clicking on it, a new empty space appears. So you can customize spaces per worktree.

This is great because it lets you customize the workspace per feature. Imagine I am creating a CI pipeline in my project. I can then create a terminal with

docker compose logs -f

to see in real time what my CI is doing.

Two seconds later, I go back to the feature/tests_frontend worktree where I can run my Playwright tests in two seconds with up-arrow then Enter (because the terminal belongs to that worktree and only contains that worktree-space’s commands)

Right after, I can go back to the docs worktree and tell the AI agent that the docs it wrote are not great, and ask it to improve some passages.

Conclusion

In this note, we have only scratched the surface of Herdr’s features. I didn’t even talk about its ultra-rich plugin ecosystem, nor the advanced features for AI agents. It is a very useful and versatile tool, especially for DevOps and developers.

If you want to learn more on the subject, I redirect you to the Herdr website itself.

This article has been translated by AI from the french handwritten version.