Skip to main content

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

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

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