Skip to content
unversioned · 18c10296d4b6MIT

Starts each piece of work in its own git worktree with wkt, opening a Herdr workspace only when one is wanted

wkt

Teaches coding agents to give every piece of work its own git worktree, through wkt, so parallel work never trips over one checkout. Inside Herdr, the agent opens a worktree as its own Herdr workspace only when a separate workspace is wanted.

The worktrees skill has the agent start work with wkt new, rename a branch with wkt rename, set up a fresh clone with wkt setup and, when you ask, convert an existing clone with wkt adopt.

Install

The skill needs wkt:

brew install wmxscott/tap/wkt

Then the plugin. Claude Code:

claude plugin marketplace add wmxscott/ai-toolkit
claude plugin install wkt@ai-toolkit

Codex:

codex plugin marketplace add wmxscott/ai-toolkit
codex plugin add wkt@ai-toolkit

What the agent does

Inside Herdr, wkt new and wkt rename open or update a Herdr workspace unless given --no-herdr. The agent passes --no-herdr by default, including for worktrees it works in itself, and leaves it off only when you ask for a workspace or the work is meant to carry on in one.

TaskCommand
Start new workwkt new -b <branch> [-s <source>] [-n <label>] [--no-herdr]: creates or reopens the branch's worktree, and opens it as a Herdr workspace when that's wanted. A new branch starts from a freshly fetched default branch and doesn't track it
Rename the current branchwkt rename -b <new-branch> [-n <label>] [--no-herdr]: renames the branch locally and on origin, moves the folder and, if the worktree has one, updates its workspace. The agent asks before a rename that would close an open pull request
Set up a repositorywkt setup <repo-url> in an empty folder: clones into a .bare layout with a worktree for the default branch
Convert a clonewkt adopt at the top of a clone: turns it into a .bare layout in place. Only when you ask, since every path changes

Worktrees of normal clones go under ~/.herdr/worktrees/<org>/<repo>/<branch>, or $WKT_ROOT if you set it. In a .bare layout they sit next to .bare/. wkt picks the path; the agent doesn't.

Without wkt, the agent suggests installing it, then creates the worktree with git worktree add --no-track in the same place and, only when a workspace is wanted, opens it with herdr worktree open. It won't rename a branch by hand.

Agent support

AgentManifest
Claude Code.claude-plugin/plugin.json
Codexplugin.json (Agent Plugins format)

Both load the same skills/ directory.