v0.1.0 — Dev Container panes for Herdr
Superseded by
v0.1.1. Two defects in this release's exec path were found on first real use, so installv0.1.1instead.Two claims below are no longer accurate for the current plugin:
- "Opens an interactive login shell (
sh -l)" — panes now run the container user's own shell, interactively, becausesh -lsources no rc file and so missed thePATHentries and API endpoints a container writes for itself.- "Maps a pane's current directory into
remoteWorkspaceFolderwhen available" — in this release it never was available. The directory was read from the wrapper's own process, which Herdr runs from the plugin root, so every pane opened at the container workspace root and printed an out-of-repo notice.The rest of this text describes
v0.1.0as shipped and is left unchanged.
First public release of a Herdr plugin for opening shell and coding-agent panes
inside a repository's existing Dev Container.
Highlights
- Opens an interactive login shell (
sh -l) inside the container. - Runs a configurable command inside the container; defaults to
claude. - Uses the official Dev Containers CLI and the repository's own
devcontainer.json— no second container format, and no editor required. - Detects both
.devcontainer/devcontainer.jsonand.devcontainer.json, plus
an alternate repo-relative config path. - Uses the main Git worktree as repository and container identity, so linked
worktrees share one container instead of colliding on ports. - Refuses to guess when multiple running containers claim the same repository.
- Serializes concurrent bring-up with a per-repository file lock.
- Maps a pane's current directory into
remoteWorkspaceFolderwhen available,
and says so plainly when it cannot. - Explicit, confirmed stop — only
yoryesproceeds, and the plugin never
runsdocker rm. - Runs host subprocesses as direct argv arrays and reports actionable errors.
Requirements
- Herdr 0.8.0+
- Linux or WSL2
- Git
- Docker with a reachable daemon
- Dev Containers CLI (
npm install -g @devcontainers/cli) - Rust 1.74+ and Cargo, for the install-time build
The committed Cargo.lock is resolved against Rust 1.74 rather than against the
newest published dependencies, and CI verifies that minimum on every change, so
the declared toolchain requirement is the one that actually compiles.
Install this release
herdr plugin install gambtho/herdr-devcontainer --ref v0.1.0Installing from GitHub builds the plugin from source via the manifest's
cargo build --release hook.
Known limitations
- macOS and native Windows are not supported.
- GitHub installation builds from source and requires a Rust toolchain.
- Linked worktrees share the main repository's container; a checkout outside the
main repository directory is not separately mounted, and panes opened there
start at the container workspace root. - The plugin uses its own XDG configuration path rather than Herdr's managed
plugin config directory. - Nothing in the repository parses
herdr-plugin.toml, so manifest validity is
established by installing into a real Herdr, not by the Rust test suite.
Trust
Installing a Herdr plugin runs its build and runtime commands as your user, and
devcontainer up executes repository-controlled Dockerfile and lifecycle code.
This plugin inherits the Dev Containers trust model and is not a security
boundary. Review herdr-plugin.toml and the source before installing.