Skip to content
dots
Esc
↑↓navigate↵open⌘Jpreview
On this page

herdr

herdr, an agent-aware terminal multiplexer, with its keys, theme, plugins and Claude Code hook.

herdr is a terminal multiplexer with workspaces, tabs and panes, a sidebar, a prefix key (ctrl+b), and a plugin system. It tracks coding agents running in its panes: agent-state colors, next/previous agent keys, and an integration that reports Claude Code sessions to it.

Source dot_config/herdr/config.toml, dot_config/herdr/plugins.json, dot_config/herdr/plugins/config/, dot_config/herdr/empty_dot_plugins.lock, dot_config/herdr/kitty.conf, dot_config/herdr-nvim/config.toml
Target ~/.config/herdr/, ~/.config/herdr-nvim/config.toml
Install Not in packages.yaml; updated by topgrade (herdr update)
Launch kitty super+a (see kitty); Ghostty keys send the same prefix bytes

config.toml

onboarding = false.

UI and theme

Setting Value
ui.pane_borders, ui.pane_outer_borders false (panes separated by gaps only)
ui.prompt_new_tab_name false
ui.accent #5ea1ff
ui.status_indicators symbols
ui.toast.delivery system
theme.name terminal, auto_switch = false
theme.custom.panel_bg reset (keeps kitty’s translucency and compositor blur)
sidebar_bg / active_row_bg / selection_bg #16181a / #1e2124 / #3c4048
accent / surface_dim #243348 / #5ea1ff (active tab plate matches kitty’s tab bar)
Agent-state colors green #5eff6c, yellow #f1ff5e, red #ff6e5e, peach #ffbd5e, mauve #bd5eff
experimental.kitty_graphics true; pane_history = false
switch_ascii_input_source_in_prefix true

These are cyberdream colors.

Keys

Key Action
prefix % Split vertical
prefix " Split horizontal
prefix d Detach
prefix s Workspace picker
prefix shift+s Settings
k / j Move up / down in the workspace picker (pane up/down in navigate mode unbound)
prefix . / prefix , Next / previous agent
prefix j / prefix k Next / previous workspace
prefix up/down/left/right Focus pane
ctrl+h/j/k/l vim-herdr-navigation left/down/up/right
prefix e chmarax.herdr-nvim.toggle (nvim sidebar)
prefix o chmarax.herdr-nvim.pick-file (open file from agent output)
prefix t switchboard.menu
prefix shift+p switchboard.commands
prefix shift+l switchboard.git
prefix shift+k switchboard.projects
prefix y Open official.browser plugin in a right split
prefix shift+o Open official.browser as an overlay

Plugins

plugins.json is herdr’s plugin registry. .plugins.lock is created empty. plugins/config/official.browser/ and plugins/config/vim-herdr-navigation/ hold placeholder .keep files for per-plugin config.

Plugin Description (from its manifest)
chmarax.herdr-nvim Full-height nvim sidebar with agent annotations
herdr-automatic-rename Names tabs after the foreground program, adds 1–9 jump numbers
io.github.salemsayed.omaherd Tells the Omarchy bar when an agent changes state
official.browser Open and inspect real browser pages from herdr
oh-my-opencode-slim OpenCode agent orchestration with a herdr adapter
persiyanov.reviewr Review agent-written diffs beside the chat
rjyo.window-title-sync Syncs the outer terminal title to the focused workspace, tab and agent
switchboard Command palette: projects, commands, ports, git, clone, settings
vim-herdr-navigation Vim-aware ctrl+h/j/k/l pane movement

fish sources herdr-automatic-rename’s shell/hook.fish if present.

herdr-nvim

[sidebar]
position = "left"

The nvim sidebar opens to the left of existing panes (default is right).

Claude Code integration

dot_claude/hooks/executable_herdr-agent-state.sh is installed and managed by herdr (integration id claude, version 7) and registered in dot_claude/settings.json with the session argument. It runs only inside herdr (HERDR_ENV=1, HERDR_SOCKET_PATH, HERDR_PANE_ID set), ignores subagent events, and sends a pane.report_agent_session JSON request over herdr’s Unix socket with the pane id, Claude session id and transcript path. See Claude Code.

herdr/kitty.conf

A legacy kitty config kept in the herdr folder. It runs tmux new-session -A -s main, listens on unix:@mykitty, includes current-theme.conf, maps super/alt keys to tmux prefix bytes, and has a copy of an older tmux.conf appended. The active herdr host is ~/.config/kitty/herdr.conf.

Was this page helpful?