Git worktree manager for parallel coding agent 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.1.tar.gz
(35.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 timberline-0.1.1.tar.gz.
File metadata
- Download URL: timberline-0.1.1.tar.gz
- Upload date:
- Size: 35.0 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 |
86af47e9111d11272f15f5ce6d2722e25d141d13cb1cfc2b92ce6f819c51a2e5
|
|
| MD5 |
7e4d2e1f80e93607b2ae51375ccb3c24
|
|
| BLAKE2b-256 |
4cf1cdc9a03ba5588cb65fe8df0abae57d0e703cddc785be3264ed8e8bfeb3d0
|
File details
Details for the file timberline-0.1.1-py3-none-any.whl.
File metadata
- Download URL: timberline-0.1.1-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 |
6b575872340aa61f9114f30767afa2cb213f0a84880d6927d2543ef6bc78070b
|
|
| MD5 |
980af4e300e19e577656aad68539fe68
|
|
| BLAKE2b-256 |
7881f22ea7f89768de6e84aab8a4c021f6374898b93b6be40447be35692e0961
|