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
Release history Release notifications | RSS feed
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)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24fc70abcc0cb47e16616f716dfed6bac339ec5f7798ea5baeac746043ee6ae3
|
|
| MD5 |
966fd651cd41fdaa41930be9d9407460
|
|
| BLAKE2b-256 |
5d477139235ca4b8c2515414d95963a8512a09f824493250d8a2cc82d49900d1
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
248216285fbce19d63479bffe4d02589d99fb4653679f87c6f94e634bfdafdfc
|
|
| MD5 |
55db6917333f4817e6a5cbe025869097
|
|
| BLAKE2b-256 |
ab48dc134b0215a8e6e22482dd721a970332a810ada02d7980405d419dce8f77
|