Skip to main content

Git worktree manager for parallel Claude Code development

Project description

Timberline

Git worktree manager for parallel coding agent development.

Install

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

Quick Start

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

Commands

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

Config

.timberline.toml in repo root:

[timberline]
worktree_dir = ".tl"
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

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

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

[timberline.submodules]
auto_init = true
recursive = true

[timberline.agent]
auto_launch = false
inject_context = true

Shell Integration

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

# Then use:
tlcd obsidian       # cd into worktree
tl-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

timberline-0.1.0.tar.gz (34.7 kB view details)

Uploaded Source

Built Distribution

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

timberline-0.1.0-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: timberline-0.1.0.tar.gz
  • Upload date:
  • Size: 34.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for timberline-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2577c0022e02449fb1f58169bf96e0dcb3ee40a658ab68b5c5f065b75cfe8754
MD5 8f52f16b42e2d91c8e31a014b5b626fd
BLAKE2b-256 4307eb4f2d8871cff0abaa2616db7bcfb2f9e03cf59ebca8ad3efcfc51b0e826

See more details on using hashes here.

File details

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

File metadata

  • Download URL: timberline-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for timberline-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ddcb6ae9e35d211e0f66b9500acd59f57d5a1f4d650c45765fcfe24bab69798d
MD5 feb3a0d3ced9b38405852ffe58ab5ced
BLAKE2b-256 cf355229d809d89d58a0632ccc27803ae98f3151207e13216169782f00f37630

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