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
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
timberline-0.1.0.tar.gz
(34.7 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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2577c0022e02449fb1f58169bf96e0dcb3ee40a658ab68b5c5f065b75cfe8754
|
|
| MD5 |
8f52f16b42e2d91c8e31a014b5b626fd
|
|
| BLAKE2b-256 |
4307eb4f2d8871cff0abaa2616db7bcfb2f9e03cf59ebca8ad3efcfc51b0e826
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddcb6ae9e35d211e0f66b9500acd59f57d5a1f4d650c45765fcfe24bab69798d
|
|
| MD5 |
feb3a0d3ced9b38405852ffe58ab5ced
|
|
| BLAKE2b-256 |
cf355229d809d89d58a0632ccc27803ae98f3151207e13216169782f00f37630
|