Worktrees and Dev Servers
pierrecomputer/pierre
Explains the Pierre repo's moonx root:wt helper for managed git worktrees, per-worktree port offsets, and cleaning up stale dev servers and test fixtures.
A skill your agent uses when an agent needs a running, seeded, Playwright-ready Breeze stack for the current git worktree.
$ npx skills add LanternOps/breeze --skill worktree-stack -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LanternOps/breeze worktree-stack --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/LanternOps/breeze.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/worktree-stack .claude/skills/worktree-stack && 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 "worktree-stack" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/worktree-stack into .claude/skills/worktree-stack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "worktree-stack", 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/LanternOps/breeze/tree/main/.claude/skills/worktree-stackType 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 LanternOps/breeze --skill worktree-stack -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LanternOps/breeze worktree-stack --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/worktree-stack .agents/skills/worktree-stack && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "worktree-stack" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/worktree-stack into .agents/skills/worktree-stack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "worktree-stack", 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 LanternOps/breeze --skill worktree-stack -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LanternOps/breeze worktree-stack --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/worktree-stack .cursor/skills/worktree-stack && 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 "worktree-stack" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/worktree-stack into .cursor/skills/worktree-stack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "worktree-stack", 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/LanternOps/breeze.git --path .claude/skills/worktree-stack--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 LanternOps/breeze --skill worktree-stack -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LanternOps/breeze worktree-stack --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/worktree-stack .gemini/skills/worktree-stack && 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 "worktree-stack" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/worktree-stack into .gemini/skills/worktree-stack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "worktree-stack", 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 LanternOps/breeze worktree-stackInstalls 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 LanternOps/breeze --skill worktree-stack -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/worktree-stack .github/skills/worktree-stack && 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 "worktree-stack" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/worktree-stack into .github/skills/worktree-stack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "worktree-stack", 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 LanternOps/breeze --skill worktree-stack -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LanternOps/breeze worktree-stack --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/worktree-stack .opencode/skills/worktree-stack && 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 "worktree-stack" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/worktree-stack into .opencode/skills/worktree-stack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "worktree-stack", 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.
worktree-stackA skill your agent uses when an agent needs a running, seeded, Playwright-ready Breeze stack for the current git worktree.
Worktree Stack is an agent skill from LanternOps/breeze. Use when an agent needs a running, seeded, Playwright-ready Breeze stack for the current git worktree. Brings up pg+redis+api+web+portal+caddy running the worktree's own code and emits a JSON descriptor.
Its SKILL.md is about 1.2k 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 Playwright, Redis, Git and Docker. The repository describes itself as: The open-source IT platform that comes with the workers. RMM + PSA in one system, with a governed AI operator built in. The licence is AGPL-3.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1f72bb7. 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:
dockerpnpmjqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker and 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 these keys or tokens, usually read from environment variables:
RESEND_API_KEYMAILGUN_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Worktree Stack loads about 1.2k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 383 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.
e v22.20.0 on PATH and a populated root `.env` (image refs).- `.env.stack` pins `RESEND_API_KEY`, `MAILGUN_API_KEY` and `SMTP_HOST` to empty so a QA stack never sends real email evAutomated 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 LanternOps/breeze at commit 1f72bb7, republished under its AGPL-3.0 licence (© LanternOps). 383 words, ~1,154 tokens.
.claude/skills/worktree-stack/SKILL.md (or your agent's skills folder).Loop for testing the current worktree end to end:
pnpm wt-stack up--shared for the singleton stack (ports are always ephemeral, read from .breeze-stack.json).--rebuild after Dockerfile or dependency changes..breeze-stack.json at the worktree root for baseUrl, apiUrl,
portalUrl, and admin creds (admin@breeze.local / BreezeAdmin123!).pnpm wt-stack test -- tests/<spec>.spec.ts, or point the
Playwright MCP browser at baseUrl.pnpm wt-stack down (removes volumes by default). Run it from
the same worktree and branch that ran up — the project name is derived
from the branch, so a renamed branch or deleted worktree orphans the stack
(see "Tear down when done" below for how to reap those).Notes:
.env (image refs)..env.stack pins RESEND_API_KEY, MAILGUN_API_KEY and SMTP_HOST to empty so a QA stack never sends real email even though the root .env carries live keys; set BREEZE_WT_STACK_LIVE_MAIL=1 to keep the root values.baseUrl is http://localhost:<port>.docker compose interface.pnpm wt-stack ls lists running stacks; pnpm wt-stack info prints the descriptor.Every stack you bring up stays up until something tears it down: OrbStack / Docker never expire them, and each agent session tends to leave its own behind. On 2026-09-01 the dev machine had five Breeze compose projects and two bare containers running from earlier sessions. Tear down what you brought up before you end, and say in your final summary what you left running and why.
pnpm wt-stack ls is not the whole picture. It lists only breeze and
breeze-wt-* projects. pnpm test-stack ls lists only breeze-test-*. Neither
shows a docker-compose.test.yml brought up without -p (project = directory
name, e.g. worktree-quiet-field-f8d5) or an ad-hoc docker run Postgres from a
plan task. Use the engine-wide listing below.
# 1. What is still up, across ALL worktrees and sessions?
docker compose ls -a --format json \
| jq -r '.[] | select(.ConfigFiles|test("breeze")) | "\(.Name)\t\(.Status)"'
docker ps -a --format '{{.Names}}\t{{.Status}}\t{{.Label "com.docker.compose.project"}}' \
| grep -i breeze # blank 3rd column = bare `docker run` container, no compose project
# 2. Tear down what YOU brought up, from the worktree that created it
pnpm wt-stack down # this worktree's dev stack (drops volumes)
pnpm test-stack down # this worktree's integration pg+redis
pnpm --filter @breeze/api test:docker:down # the shared :5433 test stack (docker-compose.test.yml, no -p)
docker compose -f docker-compose.yml -f docker-compose.override.yml.dev down -v --remove-orphans
# a compose-mode stack — pass the same -f files you used for `up`
# 3. Anything left over (worktree deleted, branch renamed, another session's stack)
docker compose -p <name> down -v --remove-orphans # <name> = first column of step 1; no -f needed
docker rm -f <container> # bare containers, e.g. breeze-<issue>-drift
# 4. Verify — both must print nothing
docker compose ls -a --format json | jq -r '.[] | select(.ConfigFiles|test("breeze")) | .Name'
docker ps -a --format '{{.Names}}' | grep -i breezeEverything-Breeze reset. Only when you own every stack on the machine — this kills other sessions' stacks too, so never run it from a parallel agent:
docker compose ls -a --format json | jq -r '.[] | select(.ConfigFiles|test("breeze")) | .Name' \
| xargs -r -I{} docker compose -p {} down -v --remove-orphans
docker ps -aq --filter name=breeze | xargs -r docker rm -f
docker network ls --format '{{.Name}}' | grep -i breeze | xargs -r docker network rm # stray *-net networks--keep-volumes on wt-stack down keeps the Postgres data for a re-up; the
default drops it, which is what you want at the end of a task.
© LanternOps, AGPL-3.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 .claude/skills/worktree-stack of LanternOps/breeze.
Open the folder on GitHubat commit 1f72bb7
Worktree Stack 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 |
|---|---|---|---|---|---|---|
| Worktree Stack this skillLanternOps/breeze | 130 | — | ~1.2k | Automated safety check: Notes | AGPL-3.0 | |
| Worktrees and Dev Serverspierrecomputer/pierre | 6.2k | — | ~573 | Automated safety check: Notes | Apache-2.0 | |
| Devcontainer Devstacklok/toolhive-studio | 170 | — | ~3.8k | Automated safety check: Notes | Apache-2.0 | |
| Run Dozzle Dev Instanceamir20/dozzle | 15k | — | ~747 | Automated safety check: Pass | MIT | |
| Subwave Worktree Devperminder-klair/subwave | 1.4k | — | ~2.1k | Automated safety check: Notes | MIT | |
| Burla Parallel Dev ClustersBurla-Cloud/burla | 263 | — | ~1.6k | Automated safety check: Pass | Custom licence |
pierrecomputer/pierre
Explains the Pierre repo's moonx root:wt helper for managed git worktrees, per-worktree port offsets, and cleaning up stale dev servers and test fixtures.
stacklok/toolhive-studio
Spin up and interact with ToolHive Studio's containerized dev environment (Xvfb + noVNC + DinD).
amir20/dozzle
Starts a Dozzle dev server on a port derived from the current worktree so you can test by hand in a browser, without disturbing instances started elsewhere.
perminder-klair/subwave
Stage a SUB/WAVE git worktree so the dev stack can run from it, then start it.
Burla-Cloud/burla
Sets up an isolated Burla dev cluster per git worktree so several agents can work in parallel, and explains when to use local-dev or remote-dev.
trieb-work/nextjs-turbo-redis-cache
Run tests and add Next.js version coverage for the cache handler.
LanternOps/breeze
Quick reference for the Breeze RMM Go agent architecture, commands, configuration, build process, and data flows.
LanternOps/breeze
A skill your agent uses when debugging agent issues, investigating agent errors, checking agent connectivity, or reviewing agent diagnostic logs.
LanternOps/breeze
Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server.
LanternOps/breeze
Quick reference for the Breeze Helper Tauri desktop app — architecture, Rust backend commands, React frontend, config files, IPC with the Go agent, helper chat API routes, tool approval flow, and…
LanternOps/breeze
A skill your agent uses when running a broad manual/AI-driven end-to-end verification of Breeze RMM across many merged PRs or commits — "test everything since the last release", release-readiness…
LanternOps/breeze
A skill your agent uses when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a…
Works with
Categories
A skill your agent uses when an agent needs a running, seeded, Playwright-ready Breeze stack for the current git worktree. Worktree Stack is an agent skill from LanternOps/breeze. Use when an agent needs a running, seeded, Playwright-ready Breeze stack for the current git worktree.
Worktree Stack fits situations like: an agent needs a running; playwright-ready Breeze stack for the current git worktree.
Run `npx skills add LanternOps/breeze --skill worktree-stack -a claude-code`. Or copy the skill folder (.claude/skills/worktree-stack in LanternOps/breeze) into .claude/skills/worktree-stack in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LanternOps/breeze --skill worktree-stack -a codex`. Or copy the skill folder (.claude/skills/worktree-stack in LanternOps/breeze) into .agents/skills/worktree-stack 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 LanternOps/breeze --skill worktree-stack -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/worktree-stack, .gemini/skills/worktree-stack, .github/skills/worktree-stack and .opencode/skills/worktree-stack in your project.
Going by SKILL.md and its folder, Worktree Stack needs the command-line tools its instructions call (docker, pnpm and jq) and credentials named RESEND_API_KEY and MAILGUN_API_KEY. Our summary lists: Docker; A credential in RESEND_API_KEY; A credential in MAILGUN_API_KEY.
SKILL.md contains no URLs. Its commands use docker, which can reach the network depending on how they are called. 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.
Worktree Stack is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.2k tokens (SKILL.md is roughly 4.6k 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 Worktree Stack: Worktrees and Dev Servers (pierrecomputer/pierre, 6.2k stars), Devcontainer Dev (stacklok/toolhive-studio, 170 stars), Run Dozzle Dev Instance (amir20/dozzle, 15k stars) and Subwave Worktree Dev (perminder-klair/subwave, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LanternOps (a GitHub organization) maintains it in LanternOps/breeze, which has 130 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: LanternOps/breeze on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.