Git Worktree Manager
microsoft/WindowsAppSDK
Creates and manages Git worktrees with PowerShell scripts so separate issues and Copilot sessions each get an isolated branch, build and test environment.
Make builder worktrees runnable — the .codev/config.json worktree block (symlinks, postSpawn, devCommand), the afx dev CLI, VSCode dev controls, and per-stack config recipes.
$ npx skills add cluesmith/codev --skill runnable-worktrees -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cluesmith/codev runnable-worktrees --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cluesmith/codev.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.codex/skills/runnable-worktrees .claude/skills/runnable-worktrees && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "runnable-worktrees" agent skill from https://github.com/cluesmith/codev/tree/main/.codex/skills/runnable-worktrees into .claude/skills/runnable-worktrees/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runnable-worktrees", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cluesmith/codev/tree/main/.codex/skills/runnable-worktreesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cluesmith/codev --skill runnable-worktrees -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cluesmith/codev runnable-worktrees --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cluesmith/codev.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.codex/skills/runnable-worktrees .agents/skills/runnable-worktrees && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "runnable-worktrees" agent skill from https://github.com/cluesmith/codev/tree/main/.codex/skills/runnable-worktrees into .agents/skills/runnable-worktrees/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runnable-worktrees", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cluesmith/codev --skill runnable-worktrees -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cluesmith/codev runnable-worktrees --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cluesmith/codev.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.codex/skills/runnable-worktrees .cursor/skills/runnable-worktrees && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "runnable-worktrees" agent skill from https://github.com/cluesmith/codev/tree/main/.codex/skills/runnable-worktrees into .cursor/skills/runnable-worktrees/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runnable-worktrees", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cluesmith/codev.git --path .codex/skills/runnable-worktrees--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cluesmith/codev --skill runnable-worktrees -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cluesmith/codev runnable-worktrees --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cluesmith/codev.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.codex/skills/runnable-worktrees .gemini/skills/runnable-worktrees && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "runnable-worktrees" agent skill from https://github.com/cluesmith/codev/tree/main/.codex/skills/runnable-worktrees into .gemini/skills/runnable-worktrees/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runnable-worktrees", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cluesmith/codev runnable-worktreesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cluesmith/codev --skill runnable-worktrees -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cluesmith/codev.git skills-src && mkdir -p .github/skills && cp -r skills-src/.codex/skills/runnable-worktrees .github/skills/runnable-worktrees && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "runnable-worktrees" agent skill from https://github.com/cluesmith/codev/tree/main/.codex/skills/runnable-worktrees into .github/skills/runnable-worktrees/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runnable-worktrees", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cluesmith/codev --skill runnable-worktrees -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cluesmith/codev runnable-worktrees --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cluesmith/codev.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.codex/skills/runnable-worktrees .opencode/skills/runnable-worktrees && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "runnable-worktrees" agent skill from https://github.com/cluesmith/codev/tree/main/.codex/skills/runnable-worktrees into .opencode/skills/runnable-worktrees/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "runnable-worktrees", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
runnable-worktreesMake builder worktrees runnable — the .codev/config.json worktree block (symlinks, postSpawn, devCommand), the afx dev CLI, VSCode dev controls, and per-stack config recipes.
Runnable Worktrees is an agent skill from cluesmith/codev. Make builder worktrees runnable — the .codev/config.json worktree block (symlinks, postSpawn, devCommand), the afx dev CLI, VSCode dev controls, and per-stack config recipes. Use when configuring a repo so reviewers can run a builder's branch, when afx dev fails to bind or start, when a dev process is orphaned holding a port, or when asked why worktree dev uses the same ports as main.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git worktrees. It works with Visual Studio Code. The repository describes itself as: Codev helps humans and agents co-develop both the context and the code of the project. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 9cd8607. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmcargoexpoturboFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Runnable Worktrees loads about 1.6k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 695 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
relative path. Root `.env` and `.codev/config.json` are *always* symlinked regardless.{"worktree": {"symlinks": [".env.local", ".env.development.local", "packages/*/.env", "packages/*/.env.local", "turbo.js**npm** — `{"symlinks": [".env.local", ".env.development"], "postSpawn": ["npm ci"], "devCommand": "npm run dev"}`**yarn** — `{"symlinks": [".env.local"], "postSpawn": ["yarn install --frozen-lockfile"], "devCommand": "yarn dev"}`**bun** — `{"symlinks": [".env.local"], "postSpawn": ["bun install --frozen-lockfile"], "devCommand": "bun dev"}`**cargo** — `{"symlinks": [".env"], "postSpawn": [], "devCommand": "cargo run"}`**poetry / uv** — `{"symlinks": [".env", ".env.local"], "postSpawn": ["uv sync"], "devCommand": "uv run python -m myapp"**go mod** — `{"symlinks": [".env"], "postSpawn": ["go mod download"], "devCommand": "go run ./cmd/server"}`Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from cluesmith/codev at commit 9cd8607, republished under its Apache-2.0 licence (© cluesmith). 695 words, ~1,562 tokens.
.claude/skills/runnable-worktrees/SKILL.md (or your agent's skills folder).When configured, each builder worktree (.builders/<id>/) becomes runnable: reviewers can run
whatever your dev command starts — a dev server, cargo run, expo start, a test watcher, a
build script — against the builder's branch without cd'ing, installing, or hunting for the
command. Opt-in via .codev/config.json; unconfigured repos see zero behavior change.
worktree block{
"worktree": {
"symlinks": ["..."], // globs symlinked from the workspace root into each new worktree
"postSpawn": ["..."], // shell commands run inside each new worktree after createWorktree
"devCommand": "..." // consumed by `afx dev <builder-id|main>`
}
}symlinks — globs resolve from the workspace root and link into the worktree at the same
relative path. Root .env and .codev/config.json are always symlinked regardless.
Symlinks, not copies, so edits to main's env files reflect instantly in a running dev
session. A directory match is silently skipped (a glob cannot mask the worktree's own source)
unless the entry ends in a slash: ".local-user-data/" is treated as a literal path and
links the directory whole — shared with the parent, not branch-isolated. A dangling link is
fine if the source does not exist yet.postSpawn — commands run sequentially with cwd = worktree path. A non-zero exit aborts
the spawn loudly; the half-built worktree stays for inspection.devCommand — the foreground command that starts your dev process. Required for
afx dev.Codev does not auto-detect your stack. Pick a recipe below.
afx dev <builder-id> # start dev in that builder's worktree
afx dev main # start dev in the MAIN workspace (Codev-managed)
afx dev --stop # stop the running dev PTY (builder or main)
afx setup <builder-id> # re-apply symlinks + postSpawn to an existing worktree (idempotent)One dev PTY at a time, across {main + all builders} — deliberate; see URLs are
load-bearing. main is a reserved target running worktree.devCommand in the main checkout as
a Codev-managed, swappable PTY, symmetric with builders. Starting a second target prompts to
swap; a same-target request prints the existing terminal URL and exits. Dev PTYs are
non-persistent — a Tower restart or crash kills them; re-run to restart.
Start main's dev with afx dev main, not a bare pnpm dev. A hand-run pnpm dev is
invisible to Codev (which never kills what it did not spawn), so a builder dev started while it
holds the ports either fails to bind or — worse — serves main's code under the worktree URL.
afx dev main makes it a managed PTY that swap-detection can stop cleanly. This only helps if
used consistently.
Right-click a builder row in the Codev sidebar (Builders or Needs Attention):
.builders/<id>/ in the OS file manager.worktree.symlinks and worktree.postSpawn to an
existing worktree (the git steps are skipped). Idempotent. Use when the lockfile changed, when
symlinks/postSpawn grew after the builder spawned, when a link was deleted, or when the
original setup aborted. Streams install output in a fresh terminal. CLI: afx setup <id>.main...HEAD diff for that worktree with a file-list pane.Codev: <name> (dev) tab;
prompts to swap if another dev is running.The sidebar's Workspace view carries a dev control for whatever folder the window is rooted
at — the main checkout resolves to main, a .builders/<id>/ window resolves to that builder.
The row tooltip names the resolved target. Commands are also in the palette (Cmd+Shift+P); no
default keybindings.
The dev PTY intentionally uses the same ports and URLs as main. OAuth callbacks, CORS
allowlists, cookie scoping, CSP connect-src and webhook URLs are all keyed off origin, so
running a worktree on a different port would break them.
Consequence: stop main's dev before starting a builder's, or the spawned dev fails at bind time
with EADDRINUSE.
afx dev --stop and the swap path kill the entire PTY process group (SIGTERM, then SIGKILL
after 5s), which signals every grandchild of a monorepo orchestrator (pnpm dev, turbo dev,
pnpm -r --parallel run dev) at once. Ports are reclaimed by the OS as a consequence — Codev
never manipulates ports directly.
If Tower hard-crashes mid-dev and a process is left holding a port outside Codev's records:
lsof -ti :<port> | xargs kill
lsof -ti :3000,:3001,:4000 | xargs killpnpm monorepo (Next.js / Turbo)
{"worktree": {"symlinks": [".env.local", ".env.development.local", "packages/*/.env", "packages/*/.env.local", "turbo.json"], "postSpawn": ["pnpm install --frozen-lockfile"], "devCommand": "pnpm dev"}}npm — {"symlinks": [".env.local", ".env.development"], "postSpawn": ["npm ci"], "devCommand": "npm run dev"}
yarn — {"symlinks": [".env.local"], "postSpawn": ["yarn install --frozen-lockfile"], "devCommand": "yarn dev"}
bun — {"symlinks": [".env.local"], "postSpawn": ["bun install --frozen-lockfile"], "devCommand": "bun dev"}
cargo — {"symlinks": [".env"], "postSpawn": [], "devCommand": "cargo run"}
poetry / uv — {"symlinks": [".env", ".env.local"], "postSpawn": ["uv sync"], "devCommand": "uv run python -m myapp"}
go mod — {"symlinks": [".env"], "postSpawn": ["go mod download"], "devCommand": "go run ./cmd/server"}
© cluesmith, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .codex/skills/runnable-worktrees of cluesmith/codev.
Open the folder on GitHubat commit 9cd8607
Runnable Worktrees next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Runnable Worktrees this skillcluesmith/codev | 288 | — | ~1.6k | Automated safety check: Notes | Apache-2.0 | |
| Git Worktree Managermicrosoft/WindowsAppSDK | 4.7k | — | ~2k | Automated safety check: Pass | MIT | |
| Knowledge Extension Ecosystem Lsp Code IntelligenceechoVic/blade-code | 181 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Finishing A Development Branchfarm-fe/farm | 5.6k | 34 repos | ~1.8k | Automated safety check: Pass | MIT |
microsoft/WindowsAppSDK
Creates and manages Git worktrees with PowerShell scripts so separate issues and Copilot sessions each get an isolated branch, build and test environment.
echoVic/blade-code
覆盖 Session 级 LSP 配置快照、stdio 进程、文档同步、语义查询、诊断回注、崩溃恢复 和子 Session 继承。进入条件:新增语言服务器、修改 LSP 工具、排查诊断缺失/重复、 处理 worktree 或 ACP 差异、修复进程泄漏或 transport 代际问题。不包含:VS Code 扩展桥接(见…
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
farm-fe/farm
A skill your agent uses when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for…
lobehub/lobehub
Audits stale Git worktrees and branches with a bundled script, classifies each one, and deletes only after you approve the exact candidates.
cluesmith/codev
Agent Farm CLI — the tool for spawning builders, managing Tower, workspaces, and cron tasks.
cluesmith/codev
Adopt an architect identity and recover its state from codev/state/<name.md.
cluesmith/codev
Save an architect's state, clear its context, and re-init automatically — the packaged save→clear→re-init refresh cycle.
cluesmith/codev
Refresh a builder's own context at a protocol boundary — save working state, verify it, clear, and re-orient.
cluesmith/codev
Codev project management CLI — init, adopt, update, and doctor commands.
cluesmith/codev
AI consultation CLI — query Gemini, Codex, or Claude for reviews and analysis.
Works with
Categories
Make builder worktrees runnable — the .codev/config.json worktree block (symlinks, postSpawn, devCommand), the afx dev CLI, VSCode dev controls, and per-stack config recipes. Runnable Worktrees is an agent skill from cluesmith/codev.json worktree block (symlinks, postSpawn, devCommand), the afx dev CLI, VSCode dev controls, and per-stack config recipes.
Runnable Worktrees fits situations like: configuring a repo so reviewers can run a builders branch; afx dev fails to bind; A dev process is orphaned holding a port; asked why worktree dev uses the same ports as main.
Run `npx skills add cluesmith/codev --skill runnable-worktrees -a claude-code`. Or copy the skill folder (.codex/skills/runnable-worktrees in cluesmith/codev) into .claude/skills/runnable-worktrees in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cluesmith/codev --skill runnable-worktrees -a codex`. Or copy the skill folder (.codex/skills/runnable-worktrees in cluesmith/codev) into .agents/skills/runnable-worktrees in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cluesmith/codev --skill runnable-worktrees -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/runnable-worktrees, .gemini/skills/runnable-worktrees, .github/skills/runnable-worktrees and .opencode/skills/runnable-worktrees in your project.
Going by SKILL.md and its folder, Runnable Worktrees needs the command-line tools its instructions call (pnpm, cargo, expo and turbo). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Runnable Worktrees is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Runnable Worktrees: Git Worktree Manager (microsoft/WindowsAppSDK, 4.7k stars), Knowledge Extension Ecosystem Lsp Code Intelligence (echoVic/blade-code, 181 stars), Finishing a Development Branch (obra/superpowers, 296k stars) and Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cluesmith (a GitHub organization) maintains it in cluesmith/codev, which has 288 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 6, 2026.
Source: cluesmith/codev on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.