Herdr
The server's Herdr session, run as a user service for remote clients.
Herdr is the shared agent terminal multiplexer. Product behaviour, concepts, and configuration options live in the official docs. This page covers only what this branch customises. On the server, Herdr is the main way in: other machines attach to its session over SSH.
Remote host
There is no desktop to start Herdr, so a systemd user service owns the server process. Lingering keeps it running with nobody logged in.
# On the server, once
loginctl enable-linger "$USER"
systemctl --user enable --now herdr.service
# From another machine
herdr --remote <host>
The config matches the desktop’s keys, theme and sidebar, so a remote session feels the same. Sounds are off.
Layout
| Piece | Why |
|---|---|
herdr/ package |
Stow source for managed session and plugin config |
herdr.service |
Keeps the Herdr server running for remote clients |
Runtime ~/.config/herdr/ |
Herdr-owned logs, sockets, and session state stay untracked beside stowed files |
config.toml |
Reproducible session layer (prefix commands, theme, sidebar, plugin chords) |
plugins/config/ |
Selected third-party plugin config stowed with the package |
scripts/.local/share/herdr-plugins/ |
Local dotfiles.* plugin sources linked on dot update |
Plugins
dot update links the local dotfiles.* plugins (repository picker, terminal titles, Yazi, mise tasks, Plannotator and dot links) and restores the pinned third-party plugins through herdr-lazy. Some of them, such as Plannotator reviews and dot:// links, were built for the desktop and still need checking from a remote client.