treeboot
Bootstrap new Git worktrees from one repo-local setup file.
treeboot is a CLI for teams and agents that create lots of Git worktrees. A
new worktree often needs the same local setup every time: copy local env
overrides, link shared tooling, install dependencies, or run a project setup
command.
Instead of repeating those steps across configuration files for Codex, Claude
Code, Conductor, Superset, shell scripts, and team docs, put them in
.treeboot.toml and run:
Install
The recommended usage pattern is to make treeboot a project-local mise
tool, usually scoped to a bootstrap task:
[]
= "Bootstrap the current worktree with treeboot"
= "latest"
= "treeboot"
Then contributors and agents can run:
For a global mise install:
Prebuilt binaries are available from GitHub Releases, and Cargo users can install from crates.io:
Example
Add a .treeboot.toml to the repository root. For example:
#:schema https://github.com/jimeh/treeboot/releases/latest/download/config.schema.json
= [
".env.local",
".env.development.local",
".env.test.local",
"mise.local.toml",
]
= [
"config/master.key",
]
= [
"bundle install",
"pnpm install",
]
After creating a new worktree, run:
treeboot looks for a treeboot config file in the current worktree, discovers
the root checkout, and performs the configured copy, symlink, and command
operations.
Missing copy, symlink, and sync sources are skipped by default, so one config can safely list several local-only files.
Commands always run, so they should be idempotent or otherwise safe and fast to run repeatedly.
treeboot and treeboot run are equivalent. The CLI also includes
status, config, check, doctor, env, schema, version, init,
copy, symlink, sync, and completions subcommands.
See the repository for project details.
License
MIT