worktree-init — команда для Claude Code: параллельные worktrees
Раскладывает несколько задач по отдельным git worktree, чтобы каждая шла в своём окне Ghostty со своим Claude.
npx claude-code-templates@latest --command git-workflow/worktree-initЧто делает worktree-init
Команда принимает список задач через |, проверяет, что вы внутри git-репозитория, и заводит под каждую отдельную ветку вида claude/<имя-задачи> с рабочим каталогом в ../worktrees/<repo>/claude-<имя>. Внутри нового worktree появляется файл .worktree-task.md с описанием задачи, веткой и датой создания. В конце выводится таблица с путями и готовые строки для вставки в панели Ghostty.
Перед созданием команда проверяет чистоту рабочего дерева через git status --porcelain. Если есть незакоммиченные изменения, она предупредит и спросит, продолжать ли. Дальше идёт git fetch origin, а базовой веткой берётся main или master — что найдётся в origin/HEAD.
Если в корне лежит package.json, команда отметит, что в каждом worktree, скорее всего, понадобится установка зависимостей, и подскажет менеджер по локфайлу: package-lock.json, yarn.lock, pnpm-lock.yaml или bun.lockb. Это повод проверить, что зависимости вообще ставятся без конфликтов, прежде чем запускать несколько Claude сразу.
Какие задачи решает
- развести несколько задач по отдельным веткам без ручного
git worktree add - поднять параллельные сессии Claude в разных панелях терминала
- зафиксировать описание задачи рядом с её рабочим каталогом
- получить готовые команды перехода в каждый worktree
- не забыть про установку зависимостей в новых каталогах
Примеры запросов агенту
- /worktree-init починить логин | обновить документацию API | добавить тесты на экспорт
- /worktree-init рефакторинг модуля оплаты | миграция на новый SDK
Как установить worktree-init
1Через claude-code-templates
npx claude-code-templates@latest --command git-workflow/worktree-init2Вручную: положить файлы
.claude/commands/worktree-init.mdВызов — /worktree-init. Для всех проектов — ~/.claude/commands/
Вручную: положить файлы
~/.codex/prompts/worktree-init.mdВызов — /prompts:worktree-init. В Codex этот формат помечен устаревшим, замена — скиллы
Вручную: положить файлы
.github/prompts/worktree-init.prompt.mdВручную: положить файлы
.gemini/commands/worktree-init.tomlGemini хранит команды в TOML: текст запроса — в поле prompt
Вопросы о worktree-init
Как установить worktree-init в Claude?
Через шаблоны: npx claude-code-templates@latest --command git-workflow/worktree-init. Файл команды окажется в .claude/commands/worktree-init.md.
Что делает worktree-init?
Создаёт по git worktree на каждую задачу из списка, заводит ветки claude/<имя> и печатает команды для запуска Claude в панелях Ghostty.
Как задать несколько задач?
Перечислите их в аргументе через вертикальную черту, например /worktree-init задача 1 | задача 2. Если аргумент пустой, команда спросит описания отдельно.
Исходный текст
worktree-init.md · MIT
--- allowed-tools: Bash(git:*), Bash(mkdir:*), Bash(ls:*), Bash(cat:*), Bash(basename:*), Bash(pwd:*), Bash(sed:*) argument-hint: task 1 | task 2 | task 3 description: Create parallel worktrees for multi-task development with Ghostty panels --- # Worktree Parallel Init Create multiple git worktrees for parallel development: $ARGUMENTS ## Instructions You are setting up parallel worktrees so the user can work on multiple tasks simultaneously in separate Ghostty terminal panels, each running its own Claude instance. ### Step 1: Validate Environment 1. Check this is a git repository: `git rev-parse --is-inside-work-tree` 2. Get the repo name: `basename $(git rev-parse --show-toplevel)` 3. Get the main branch name (check for `main` or `master`): `git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@'` — if that fails, default to `main` 4. Ensure working tree is clean: `git status --porcelain`. If dirty, warn the user and ask if they want to continue. 5. Fetch latest: `git fetch origin` ### Step 2: Parse Tasks Parse tasks from `$ARGUMENTS`. Tasks are separated by `|` (pipe character). If `$ARGUMENTS` is empty, use AskUserQuestion to ask the user to describe their tasks (they can provide multiple separated by `|`). For each task description: - Trim whitespace - Generate a kebab-case branch name: `claude/<kebab-case-task>` (max 50 chars, alphanumeric and hyphens only) - Generate a worktree directory path: `../worktrees/<repo-name>/claude-<kebab-case-task>` ### Step 3: Create Worktrees For each task: 1. Create the parent directory if needed: `mkdir -p ../worktrees/<repo-name>` 2. Create the worktree: ```bash git worktree add -b claude/<name> ../worktrees/<repo-name>/claude-<name> origin/<main-branch> ``` 3. Write a `.worktree-task.md` file inside the new worktree with this content: ```markdown # Worktree Task **Branch:** claude/<name> **Task:** <original task description> **Created:** <ISO date> **Source repo:** <path to main repo> ``` ### Step 4: Check for Dependencies If a `package.json` exists in the repo root, note that each worktree may need `npm install` (or the appropriate package manager). Check for: - `package-lock.json` → npm install - `yarn.lock` → yarn install - `pnpm-lock.yaml` → pnpm install - `bun.lockb` → bun install ### Step 5: Output Summary Display a clear summary table: ``` | # | Task | Branch | Path | |---|------|--------|------| | 1 | ... | claude/... | ../worktrees/repo/claude-... | ``` Then display ready-to-copy commands for Ghostty panels. For each worktree: ``` # Panel <N>: <task description> cd <absolute-path-to-worktree> && claude ``` If dependencies were detected, add a note: ``` # Note: Run <package-manager> install in each worktree before starting ``` Finally, remind the user: - Open a new Ghostty panel with `Cmd+D` (split right) or `Cmd+Shift+D` (split down) - When done with a task, use `/worktree-deliver` to commit, push, and create a PR - After merging all PRs, use `/worktree-cleanup --all` from the main repo
© davila7 · MIT · davila7/claude-code-templates