Documentation menu
Troubleshooting & FAQ
Concrete fixes for common herdr-plus issues: the plugin not registering, dead keybindings, config not loading, per-project actions, and template errors.
Concrete answers to the things that go wrong. Each item lists what to check, in order.
The plugin didn’t install or its actions don’t show up
- Is it registered? Run
herdr plugin listand look forcloudmanic.herdr-plus. If it’s missing, re-runherdr plugin install cloudmanic/herdr-plus. - Did the build step fail? The install builds the binary (Go, or a prebuilt
download as a fallback). Check the plugin’s log for build output:
herdr plugin log list --plugin cloudmanic.herdr-plus. - Is herdr new enough? herdr-plus requires herdr ≥ 0.7.0. Check with
herdr --version. - Are the actions there?
herdr plugin action list --plugin cloudmanic.herdr-plusshould listprojectsandquick-actions.
Nothing happens when I press the key
Work through these:
- Did you bind the action? A key does nothing until you bind it. Add the
[[keys.command]]entries (type = "plugin_action") to your herdrconfig.toml— see Keybindings — or just run the action from herdr’s action menu instead. - Did you reload herdr? After editing
config.toml, runherdr server reload-config(or restart herdr) so the binding goes live. - Are you inside herdr? herdr-plus runs as a herdr plugin; the actions only exist inside a herdr session.
- Are you pressing the prefix correctly? herdr keybindings are prefixed:
press your prefix (default
ctrl+b), release, then press the bound key (e.g.up). See Keybindings.
A key opens the wrong thing, or two actions collide
You manage the bindings yourself in herdr’s config.toml, so a conflict means two
[[keys.command]] entries claim the same key. Give each action a distinct key
and reload with herdr server reload-config.
My config / action / project isn’t picked up
- Right directory? Both live under herdr-plus’s config dir — find it with
herdr plugin config-dir cloudmanic.herdr-plus. Quick actions go in itsquick-actions/subdir; projects go inprojects/. Per-project quick actions go in a repo’s.herdr-plus/quick-actions/. See Configuration. - Is the file
*.toml? Only files ending in.tomlare loaded. - Is the TOML valid? A malformed or invalid file fails the whole load for that directory, with an error naming the offending file. Fix the named file.
- Required fields present? Actions need a
nameand a non-emptycommand;selectactions need at least one option with a label. Projects need anameand at least one[[tabs]]entry, and each tab needs aname.
My per-project actions don’t show up
.herdr-plus/quick-actions/at the repo root? The directory must mirror the global layout and sit at the root of the repo.- Launched from inside the repo? Project actions appear only when the pane’s working directory is inside that repo — that’s the launch directory herdr-plus uses.
- The directory is never auto-created. herdr-plus won’t make it for you; the repo has to provide it.
See Quick Actions for the full behavior.
A project’s working directory error
Opening a project fails with “working directory does not exist” when its
working_dir doesn’t resolve to a real directory on this machine. The path is
checked at open time, not load time, so the same file can be valid elsewhere. Fix
the working_dir (remember ~ and $VARS expand). See Projects.
My worktree didn’t get its layout
Creating or opening a git worktree gave you a plain workspace instead of your
tabs. The worktree auto-layout handler runs on herdr’s
worktree.created and worktree.opened events and logs why it did or didn’t act
— check the plugin log first:
herdr plugin log list --plugin cloudmanic.herdr-plus
Common causes:
- The worktree wasn’t created through herdr. herdr only fires these events for
worktrees it creates or opens itself (
herdr worktree create/openor its right-click worktree dialog). A worktree made with plaingit worktree add— or from lazygit or another tool — is invisible to herdr, so no event fires and no layout applies. The plugin log will have noon-worktreeentry at all. - No file for that repo. A layout is on only if a file for it exists in
worktrees/. Confirm the file is there (not inprojects/) and hasn’t been deleted or moved. - No matching layout. The log says
no worktree layout matches repo …. Therepoin your layout must match the worktree’s repo name (its basename), case-insensitively. - A branch mismatch. A layout with a
branchonly fires for worktrees created on exactly that branch. Drop thebranchline to apply to every branch. - A config typo. An invalid file fails the whole load with an error naming the file — fix it and create the worktree again.
Template errors in a command
The command is a Go text/template. A bad field name or malformed {{...}}
produces a parse or render error when the action runs (printed to stderr).
- Check your field names against Template Variables — they’re
case-sensitive (
{{.WorkDir}}, not{{.workdir}}). - Make sure braces are balanced:
{{.Value}}, not{{.Value}or{.Value}}.
My action’s output flashed by before I could read it
The Quick Actions launcher closes itself once the command finishes. To hold it
open, end the command with a wait that reads the terminal directly (its stdin is
/dev/null):
read _ </dev/tty # wait for Enter, then close
read -t 30 _ </dev/tty # ...but auto-close after 30s
sleep 5 # just linger N seconds
See the Examples & Cookbook for full action snippets.
“command not found: herdr-plus”
You don’t normally need the herdr-plus binary on your PATH — the plugin install
handles everything, and the actions run the plugin’s own binary. You’ll only see
this if you try to run herdr-plus at a prompt without having installed the
optional standalone binary.
How do I check the version?
herdr-plus version
(--version, -v, and -V work too — this needs the optional standalone binary.)
To upgrade the plugin, re-run herdr plugin install cloudmanic/herdr-plus; see
Installation.
Still stuck?
herdr-plus is open source. File an issue or read the source on GitHub.
Spot something off? Edit this page on GitHub ↗