A `post-*` pipeline step that fails aborts the rest of the pipeline, but the detached runner's stderr is a log file and the command that spawned it has already exited 0 — so the abort, the skipped steps, and the exit code were all invisible. The only record was `runner.log`. The runner now appends one record per aborted pipeline to `.git/wt/hook-failures.jsonl`, and the next foreground `wt` in that repo drains it and warns, naming the failed step, its exit code, the steps the abort skipped, and the log to read. Closes #3858
Worktrunk Plugin for Claude Code
Git worktree management CLI integration with activity tracking.
Requires the wt CLI (worktrunk.dev) and jq (used
by the worktree-lifecycle hooks).
Features
- Configuration skill — Guides LLM-powered commit message setup, project hooks (pre-start, pre-merge), and worktree path customization
- Activity tracking — Shows which branches have active Claude sessions via indicators in
wt list /wt-switch-createcommand — Creates a worktrunk worktree and moves the current Claude session into it
Examples
Activity tracking across worktrees
The plugin installs Claude Code hooks that track session activity per branch. When a prompt is submitted, the hook sets 🤖 on that branch. When Claude finishes and waits for input, it switches to 💬. When the session ends, the marker clears.
These markers appear in wt list output, making it easy to see which worktrees have active Claude sessions — useful when running multiple instances in parallel.
Set up LLM commit message generation
The configuration skill guides through configuring an AI tool (Claude Code, Codex, llm, or aichat) and adding [commit.generation] to the user config so wt merge can auto-generate commit messages.
Add pre-start hooks to run npm install automatically
The skill configures .config/wt.toml with project hooks. Pre-start hooks run when creating worktrees, pre-merge hooks validate before merging.
Start work in a fresh worktree
/wt-switch-create fix-auth Investigate the 5-minute session timeout creates a fix-auth worktree in worktrunk's normal sibling layout (<repo>.fix-auth/), switches the session into it, and starts the task there. The branch name is optional (/wt-switch-create -- <task>). The worktree persists after the session — merge or remove it with wt merge / wt remove like any other.