Model or dataset
alexarthurs/herdr-sidebar avatar
alexarthurs/herdr-sidebar

herdr-sidebar: a VS Code-style file explorer and Git panel for the herdr terminal

VS Code-style sidebar for the herdr: file explorer + git source control in one pane — syntax-highlighted previews, VS Code-style diffs, GitLens-style drawers, AI commit messages

356 stars34 forksRustMIT

At a glance

What is it?
herdr-sidebar puts an expandable file tree, content search and a full source-control panel into one dockable herdr pane. It is a single Rust crate that talks to herdr's socket API, and it assumes you already live inside herdr.
Who is it for?
Adopt herdr-sidebar if you already run herdr 0.8 or newer and keep alt-tabbing out of the terminal to read a tree or a diff; the install is one command and the pane docks like any other. Skip it if you do not use herdr, if your repository is a monorepo with nested repositories you expect to stage across, or if you want a standalone TUI file manager.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The alt-tab loop herdr-sidebar closes

The README states the problem in one line: if you have alt-tabbed out of your terminal just to look at the tree, the diff, or what's staged, this closes that loop. That is a narrow audience and the project is honest about it. herdr-sidebar is a plugin for herdr, not a general terminal file manager, and it does nothing useful outside a herdr session.

What it gives you inside that session is a dockable pane with three views. The activity bar switches between Explorer, Search and Source Control in one process, by mouse or by pressing 1, 2 and 3. The Explorer is a real expandable tree with file icons, hover actions and Git decorations. Search covers project contents with case, whole-word, regex and include/exclude filters. Source Control stages, unstages, discards, commits, inspects diffs and syncs with the upstream.

The intended user is someone running a fleet of coding agents in herdr panes and who wants the repository state visible beside them rather than in another window. The hero screenshot in the repository shows exactly that: the sidebar docked beside a 2x2 grid of Claude Code and Codex agents.

One Rust crate on top of herdr's socket API

The README is explicit that all docking, metadata, pane creation and preview control go through herdr's socket API directly. The plugin is one Rust crate. There is no separate daemon and no language server process to supervise, which is why the install path is a single plugin command rather than a build pipeline.

The interesting design decision is what happens outside that crate. Optional external tools only enhance three features: glow for Markdown, ffmpeg for video poster frames, and claude for AI commit drafts. Everything else works without them. The commit-message button falls back to a filename-based message when the claude CLI is unavailable, so the feature degrades instead of failing.

Previews are the other place where the architecture shows through. Clicking a file reuses an ephemeral preview tab; double-clicking pins it. Setting Preview opens in to pane changes that placement. Previews are read-only by default, with mouse selection and clipboard copy, and there is an experimental editor behind the e key in a text preview that adds selection, find, clipboard actions, explicit save and external-change protection. The word experimental is the project's own, and it is the right framing: the editor is a side feature, not the reason to install this.

Installing herdr-sidebar and opening the pane

The README gives one install command for the tagged release. Tagged releases use SHA-256-verified binaries on supported platforms and fall back to a source build when needed, so you do not have to compile Rust yourself on Windows, macOS or Linux.

bash
herdr plugin install alexarthurs/herdr-sidebar/plugins/herdr-sidebar

After that, open or toggle the sidebar. The action name differs on Windows, and the README is specific about the suffix.

bash
herdr plugin action invoke herdr-sidebar.open-sidebar-windows   # Windows
herdr plugin action invoke herdr-sidebar.open-sidebar           # Linux / macOS

If you are working from a local checkout instead, the README documents a source build. This path requires Rust 1.89 or newer, and the plugin must be linked rather than installed.

bash
cd plugins/herdr-sidebar
cargo build --release
herdr plugin link .

The first real use is to dock it and let it follow your work. The sidebar follows a neighbouring pane's working directory by default, and a manually chosen folder stays put until that pane changes directory again. Once it is open, press 3 for Source Control, stage a file with Enter, press c for the commit message, and S to sync. Add the -windows suffix to the direct actions on Windows.

Where the sidebar stops being the right tool

Nested repositories are the clearest boundary. The README says you can stage files or folders from the tree without crossing nested-repository boundaries. That is a deliberate safety choice, and it means a monorepo with vendored or submodule repositories inside it will not let you stage across those lines from the tree. You stage inside each repository, or you go back to the command line.

Optional dependencies are a second limit that is easy to miss. Markdown rendering needs glow, video poster frames need ffmpeg, and AI commit drafts need the local claude CLI. The README describes these as enhancements, and the fallback behaviour confirms it, but a reader who sees Markdown and video mentioned in the feature list may expect them to work on a fresh machine. They will not.

Third, the editor is explicitly experimental. If your workflow depends on editing files inside the pane, the README does not document that path as production-ready, and the primary loop it describes is read-only previews with clipboard copy. Treat the editor as a convenience for small edits, not as a replacement for your editor.

Finally, the whole thing is a herdr plugin. Outside herdr there is no standalone mode, no separate binary to run, and no fallback UI.

herdr-sidebar against yazi and lazygit

The honest comparison is not to VS Code, which the README cites as inspiration, but to the standalone terminal tools people already use. yazi is a terminal file manager with its own preview pipeline and its own keymap; it runs anywhere, in any terminal, with no host application. lazygit is a terminal Git UI with staging, committing and diff browsing, and it also runs anywhere.

The difference in approach is integration versus portability. herdr-sidebar gives up portability entirely: it exists as a herdr pane, it is docked by herdr's socket API, it follows a neighbouring pane's working directory, and its host keybindings can invoke direct actions such as show-explorer, show-search, show-git and quick-open. If you already run herdr, that integration is the whole point, because the tree and the diff sit beside the agents instead of in a separate window you have to switch to. If you do not run herdr, yazi and lazygit cover overlapping ground without asking you to change your terminal multiplexer.

The feature overlap is real but not complete. lazygit covers source control more deeply than a sidebar pane needs to. yazi covers file navigation and previews. herdr-sidebar's argument is that you should not have to leave the pane you are working in to get either.

Settings, keys and the maintenance surface

Settings persist across tabs and restarts, and the README lists what they cover: unified or separate Explorer and Source Control panes, left or right docking and preferred width, material or emoji icons, VS Code, light or terminal colors, tab or pane preview placement and an optional custom editor, hidden files, Git decorations, the Git footer and its hotkeys, plus auto-open, a strict open/close toggle, focus-on-open and live folder following. That is a long list for a sidebar, and it is the part most likely to accumulate upgrade cost, because each setting is a behaviour you may have configured differently than the default.

The keymap is stable enough to describe in a table: arrows or jk to move, hl to fold and unfold, Enter to toggle or preview, Ctrl+P for quick open, Ctrl+F for content search, . for hidden files, r to refresh, m for the context menu, s for settings, b to hide. In Source Control, Enter stages or unstages, a and u stage all or none, c opens the commit message, A drafts one, S syncs, o opens the diff.

The release cadence is visible in the tags: v0.11.0 on 2026-09-02, v0.12.0 on 2026-09-13 and v0.13.0 on 2026-09-15, with the last push to the repository also on 2026-09-15. Three releases in under two weeks suggests active work, and it also means you should expect the settings surface to move. The licence is MIT, which permits commercial and private use; the repository ships a LICENSE file at the top level. That is a statement about the licence text, not legal advice, and if you redistribute the plugin you should read the file yourself.

Editorial conclusion

Adopt herdr-sidebar if you already run herdr 0.8 or newer and keep alt-tabbing out of the terminal to read a tree or a diff; the install is one command and the pane docks like any other. Skip it if you do not use herdr, if your repository is a monorepo with nested repositories you expect to stage across, or if you want a standalone TUI file manager. Before relying on it, verify that herdr reports version 0.8 or newer, decide whether you want unified or separate Explorer and Source Control panes, and confirm whether the optional glow, ffmpeg and claude binaries are present on the machines where you expect Markdown rendering, video posters and AI commit drafts.

Frequently asked questions

How do I hide the sidebar in herdr-sidebar?

Press b in any view to hide it, or invoke the open-sidebar action again to toggle it, since the README describes that action as open, focus or hide. On Windows use the open-sidebar-windows action name.

What does herdr-sidebar do?

It adds a dockable herdr pane with three views: an expandable file explorer with previews, content search, and a Git source control panel for staging, committing, diffs and syncing. The activity bar switches between them with the mouse or the 1, 2 and 3 keys.

How do I install and start using herdr-sidebar?

The README gives one command, herdr plugin install alexarthurs/herdr-sidebar/plugins/herdr-sidebar, then herdr plugin action invoke herdr-sidebar.open-sidebar to open it on Linux or macOS, or the -windows variant on Windows. From a local checkout you build with cargo build --release and link with herdr plugin link . instead.

What is the default shell used by herdr-sidebar?

The README does not document a shell setting for this plugin. herdr-sidebar runs inside herdr and its settings cover panes, docking, icons, colors, preview placement, hidden files, Git decorations and folder following, not a shell choice.

Official sources

  1. alexarthurs/herdr-sidebar on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Community notes

Community notes