← Back to Skills Marketplace
alirezarezvani

git-worktree-manager

by Alireza Rezvani · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ Security Clean
431
Downloads
0
Stars
5
Active Installs
2
Versions
Install in OpenClaw
/install git-worktree-manager
Description
Git Worktree Manager
README (SKILL.md)

Git Worktree Manager

Tier: POWERFUL
Category: Engineering
Domain: Parallel Development & Branch Isolation

Overview

Use this skill to run parallel feature work safely with Git worktrees. It standardizes branch isolation, port allocation, environment sync, and cleanup so each worktree behaves like an independent local app without stepping on another branch.

This skill is optimized for multi-agent workflows where each agent or terminal session owns one worktree.

Core Capabilities

  • Create worktrees from new or existing branches with deterministic naming
  • Auto-allocate non-conflicting ports per worktree and persist assignments
  • Copy local environment files (.env*) from main repo to new worktree
  • Optionally install dependencies based on lockfile detection
  • Detect stale worktrees and uncommitted changes before cleanup
  • Identify merged branches and safely remove outdated worktrees

When to Use

  • You need 2+ concurrent branches open locally
  • You want isolated dev servers for feature, hotfix, and PR validation
  • You are working with multiple agents that must not share a branch
  • Your current branch is blocked but you need to ship a quick fix now
  • You want repeatable cleanup instead of ad-hoc rm -rf operations

Key Workflows

1. Create a Fully-Prepared Worktree

  1. Pick a branch name and worktree name.
  2. Run the manager script (creates branch if missing).
  3. Review generated port map.
  4. Start app using allocated ports.
python scripts/worktree_manager.py \
  --repo . \
  --branch feature/new-auth \
  --name wt-auth \
  --base-branch main \
  --install-deps \
  --format text

If you use JSON automation input:

cat config.json | python scripts/worktree_manager.py --format json
# or
python scripts/worktree_manager.py --input config.json --format json

2. Run Parallel Sessions

Recommended convention:

  • Main repo: integration branch (main/develop) on default port
  • Worktree A: feature branch + offset ports
  • Worktree B: hotfix branch + next offset

Each worktree contains .worktree-ports.json with assigned ports.

3. Cleanup with Safety Checks

  1. Scan all worktrees and stale age.
  2. Inspect dirty trees and branch merge status.
  3. Remove only merged + clean worktrees, or force explicitly.
python scripts/worktree_cleanup.py --repo . --stale-days 14 --format text
python scripts/worktree_cleanup.py --repo . --remove-merged --format text

4. Docker Compose Pattern

Use per-worktree override files mapped from allocated ports. The script outputs a deterministic port map; apply it to docker-compose.worktree.yml.

See docker-compose-patterns.md for concrete templates.

5. Port Allocation Strategy

Default strategy is base + (index * stride) with collision checks:

  • App: 3000
  • Postgres: 5432
  • Redis: 6379
  • Stride: 10

See port-allocation-strategy.md for the full strategy and edge cases.

Script Interfaces

  • python scripts/worktree_manager.py --help
    • Create/list worktrees
    • Allocate/persist ports
    • Copy .env* files
    • Optional dependency installation
  • python scripts/worktree_cleanup.py --help
    • Stale detection by age
    • Dirty-state detection
    • Merged-branch detection
    • Optional safe removal

Both tools support stdin JSON and --input file mode for automation pipelines.

Common Pitfalls

  1. Creating worktrees inside the main repo directory
  2. Reusing localhost:3000 across all branches
  3. Sharing one database URL across isolated feature branches
  4. Removing a worktree with uncommitted changes
  5. Forgetting to prune old metadata after branch deletion
  6. Assuming merged status without checking against the target branch

Best Practices

  1. One branch per worktree, one agent per worktree.
  2. Keep worktrees short-lived; remove after merge.
  3. Use a deterministic naming pattern (wt-\x3Ctopic>).
  4. Persist port mappings in file, not memory or terminal notes.
  5. Run cleanup scan weekly in active repos.
  6. Use --format json for machine flows and --format text for human review.
  7. Never force-remove dirty worktrees unless changes are intentionally discarded.

Validation Checklist

Before claiming setup complete:

  1. git worktree list shows expected path + branch.
  2. .worktree-ports.json exists and contains unique ports.
  3. .env files copied successfully (if present in source repo).
  4. Dependency install command exits with code 0 (if enabled).
  5. Cleanup scan reports no unintended stale dirty trees.

References

Decision Matrix

Use this quick selector before creating a new worktree:

  • Need isolated dependencies and server ports -> create a new worktree
  • Need only a quick local diff review -> stay on current tree
  • Need hotfix while feature branch is dirty -> create dedicated hotfix worktree
  • Need ephemeral reproduction branch for bug triage -> create temporary worktree and cleanup same day

Operational Checklist

Before Creation

  1. Confirm main repo has clean baseline or intentional WIP commits.
  2. Confirm target branch naming convention.
  3. Confirm required base branch exists (main/develop).
  4. Confirm no reserved local ports are already occupied by non-repo services.

After Creation

  1. Verify git status branch matches expected branch.
  2. Verify .worktree-ports.json exists.
  3. Verify app boots on allocated app port.
  4. Verify DB and cache endpoints target isolated ports.

Before Removal

  1. Verify branch has upstream and is merged when intended.
  2. Verify no uncommitted files remain.
  3. Verify no running containers/processes depend on this worktree path.

CI and Team Integration

  • Use worktree path naming that maps to task ID (wt-1234-auth).
  • Include the worktree path in terminal title to avoid wrong-window commits.
  • In automated setups, persist creation metadata in CI artifacts/logs.
  • Trigger cleanup report in scheduled jobs and post summary to team channel.

Failure Recovery

  • If git worktree add fails due to existing path: inspect path, do not overwrite.
  • If dependency install fails: keep worktree created, mark status and continue manual recovery.
  • If env copy fails: continue with warning and explicit missing file list.
  • If port allocation collides with external service: rerun with adjusted base ports.
Usage Guidance
This tool appears to do what it says: create/manage git worktrees, allocate and persist ports, copy .env files, and optionally run dependency installation. Before running it: - Review the scripts locally (they are included) and run them in a trusted repository. They call git and run package managers via subprocess, but do not send data to external endpoints. - Be cautious about the .env file copy: sensitive environment variables (API keys, DB passwords) will be duplicated into the worktree directory. If that is undesirable, remove or sanitize .env files before using the tool or modify ENV_FILES in the script. - Be cautious with --install-deps: dependency installation can execute install/postinstall scripts from packages. Prefer running installs inside an isolated environment (container, VM, or sandbox) or inspect lockfiles/package.json first. - Note where worktrees are created: the manager creates directories adjacent to the repo (repo.parent / <name>), so verify the target path to avoid unintended filesystem writes. If you want lower risk, run the tool with dependency installation disabled and inspect copied files before starting any services. If you need further review, I can point out exact lines that copy .env files and invoke installers.
Capability Analysis
Type: OpenClaw Skill Name: git-worktree-manager Version: 1.0.0 The git-worktree-manager skill provides legitimate utility for managing parallel development environments. While the scripts (worktree_manager.py and worktree_cleanup.py) perform high-privilege operations such as executing shell commands (git, npm, pip) and copying sensitive .env files, these actions are strictly local and directly aligned with the stated purpose of branch isolation and environment setup. No evidence of data exfiltration, obfuscation, or intentional malicious logic was found.
Capability Assessment
Purpose & Capability
Name/description (git worktree management) align with the included scripts and SKILL.md. The scripts perform expected tasks: list/create/remove worktrees, allocate ports, persist .worktree-ports.json, copy .env* files, and optionally run dependency installers. Nothing requested or included is disproportionate to managing local worktrees.
Instruction Scope
SKILL.md and the scripts stay within the worktree management domain, but the tool explicitly copies any present local .env* files into new worktrees (possible duplication of secrets) and optionally runs dependency installers (pnpm/yarn/npm/bun/pip), which may execute arbitrary code defined by the repository's lockfiles/postinstall scripts. These behaviors are coherent for the purpose but carry local security/privacy concerns.
Install Mechanism
No install spec is provided (instruction-only plus included scripts). No remote downloads or archive extraction are present in the skill metadata or code. The scripts only use local subprocesses and filesystem operations.
Credentials
The skill requests no environment variables or external credentials. However, it reads and copies local .env* files (potentially containing sensitive secrets) and will run package managers which will access network package registries unless run offline. The absence of declared env/credentials is appropriate, but the copying behavior should be considered when sensitive local secrets exist.
Persistence & Privilege
The skill is not always-enabled and does not modify other skills or system-wide agent settings. It writes per-worktree files (.worktree-ports.json and copied .env* files) and may remove worktrees when invoked with removal flags; this is expected for its purpose.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install git-worktree-manager
  3. After installation, invoke the skill by name or use /git-worktree-manager
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial publish
v2.1.1
v2.1.1: optimization, reference splits
Metadata
Slug git-worktree-manager
Version 1.0.0
License MIT-0
All-time Installs 5
Active Installs 5
Total Versions 2
Frequently Asked Questions

What is git-worktree-manager?

Git Worktree Manager. It is an AI Agent Skill for Claude Code / OpenClaw, with 431 downloads so far.

How do I install git-worktree-manager?

Run "/install git-worktree-manager" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is git-worktree-manager free?

Yes, git-worktree-manager is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does git-worktree-manager support?

git-worktree-manager is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created git-worktree-manager?

It is built and maintained by Alireza Rezvani (@alirezarezvani); the current version is v1.0.0.

💬 Comments