Skip to main content

Git worktree manager for parallel Claude Code development

Project description

Lumberjack

Git worktree manager for parallel coding agent development.

Install

uv tool install .
# or
uv pip install -e .

Quick Start

cd your-repo
lj init --defaults          # create .lumberjack.toml
lj new auth-refactor        # create worktree + branch
lj new --type fix           # auto-named fix worktree
lj ls                       # list all worktrees
cd $(lj cd auth-refactor)   # jump into worktree
lj rm auth-refactor         # clean up

Commands

Command Description
lj init Interactive setup, write .lumberjack.toml
lj new [name] Create worktree (aliases: create)
lj ls List worktrees (aliases: list). --json, --paths
lj rm <name> Remove worktree (aliases: remove). --force, --keep-branch, --all
lj cd <name> Print worktree path. --shell for subshell
lj status Git status across all worktrees
lj sync [name] Rebase/merge on base branch. --all, --merge
lj agent [name] Launch coding agent in worktree. --new
lj run-init [name] Re-run dependency install
lj env sync [name] Re-copy .env files from main repo
lj env ls List discovered .env files
lj env diff [name] Show .env differences
lj pr [name] Create PR via gh CLI. --draft
lj clean Prune stale worktrees. --dry-run
lj config show Print resolved config
lj config set <k> <v> Set config value
lj config edit Open config in $EDITOR
lj shell-init Output shell integration script

Config

.lumberjack.toml in repo root:

[lumberjack]
worktree_dir = ".lj"
branch_template = "{user}/{type}/{name}"
user = "nc9"
default_type = "feature"
base_branch = "main"
naming_scheme = "minerals"  # minerals | cities | compound
default_agent = "claude"   # claude | codex | opencode | aider

[lumberjack.init]
auto_init = true
# init_command = "bun run init"
# post_init = ["echo done"]

[lumberjack.env]
auto_copy = true
patterns = [".env", ".env.*", "!.env.example", "!.env.template"]
scan_depth = 3

[lumberjack.submodules]
auto_init = true
recursive = true

[lumberjack.agent]
auto_launch = false
inject_context = true

Shell Integration

# Add to .zshrc / .bashrc:
eval "$(lj shell-init)"

# Then use:
ljcd obsidian       # cd into worktree
lj-prompt           # worktree name for PS1

Development

uv sync
make test     # pytest
make lint     # ruff + basedpyright
make fmt      # ruff format
make check    # all of the above

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lumberjack_cli-0.1.0.tar.gz (33.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lumberjack_cli-0.1.0-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file lumberjack_cli-0.1.0.tar.gz.

File metadata

  • Download URL: lumberjack_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 33.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for lumberjack_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 24fc70abcc0cb47e16616f716dfed6bac339ec5f7798ea5baeac746043ee6ae3
MD5 966fd651cd41fdaa41930be9d9407460
BLAKE2b-256 5d477139235ca4b8c2515414d95963a8512a09f824493250d8a2cc82d49900d1

See more details on using hashes here.

File details

Details for the file lumberjack_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lumberjack_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for lumberjack_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 248216285fbce19d63479bffe4d02589d99fb4653679f87c6f94e634bfdafdfc
MD5 55db6917333f4817e6a5cbe025869097
BLAKE2b-256 ab48dc134b0215a8e6e22482dd721a970332a810ada02d7980405d419dce8f77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page