Skip to content

Configuration

Bouquet is configured via a .bouquet.toml file in your repository root. Run bouquet init to generate a starter template.

Config search order: --config flag → .bouquet.toml in repo root → ~/.config/bouquet/config.toml → defaults.

Minimal Example

[project]
name = "my-project"

[agent]
command = "claude"

Full Example

[project]
name = "my-project"

[agent]
command = "claude"
default_profile = "claude"

[[agent.profiles]]
name = "claude"
command = "claude"

[[agent.profiles]]
name = "aider"
command = "aider"
args = ["--model", "claude-sonnet-4-20250514"]

[[services]]
name = "api"
command = "uv run uvicorn app.main:app --reload --port {{ 8000 + BOUQUET_WORKTREE_INDEX }}"

[[services]]
name = "frontend"
command = "npm run dev -- --port {{ 3000 + BOUQUET_WORKTREE_INDEX }}"

[tmux]
layout = "services-top"

[bootstrap]
python_version = "3.14"
setup_commands = ["echo 'hello'"]
copy_env_files = [".env"]
cow_clone_dirs = [".venv", "node_modules"]
install_commands = ["uv sync"]

[task_queue]
backend = "local"
auto_branch_prefix = "task/"
max_autopilot_concurrency = 3
autopilot_auto_complete = true

Sections

[project]

Key Type Description
name string Project name. Defaults to the repository directory name.

[agent]

Key Type Description
command string Agent CLI command (e.g. claude, aider, codex)
args list Additional arguments passed to the agent command
default_profile string Name of the default agent profile

[[agent.profiles]]

Named agent configurations so you can switch between agents per worktree.

Key Type Description
name string Profile name shown in the TUI selector
command string Agent CLI command
args list Additional arguments

[[services]]

Dev servers that run alongside the agent in each worktree window.

Key Type Description
name string Service name (shown in pane title)
command string Shell command to run the service. Supports template expressions.

[tmux]

Key Type Description
layout string Pane layout. "services-top" (default) puts services in a row at the top. Any other value is passed to tmux select-layout.

[bootstrap]

Key Type Description
python_version string Runs uv python pin <version> before dependency installation
setup_commands list Shell commands run before dependency installation. Exported env vars are captured and propagated.
copy_env_files list Files copied from the main repo to the worktree (e.g. .env)
cow_clone_dirs list Directories cloned via Copy-on-Write (APFS) instead of full copy
install_commands list Dependency install commands (e.g. uv sync, pnpm install)

[task_queue]

Key Type Description
backend string "local" (SQLite, default) or "github" (GitHub Issues)
label_filter string For GitHub backend: only issues with this label appear as tasks (default "bouquet")
auto_branch_prefix string Prefix for auto-generated branch names when picking up tasks
max_autopilot_concurrency int Maximum worktrees autopilot will run in parallel (default 3)
autopilot_auto_complete bool Auto-complete tasks when their worktree goes IDLE (default true)

Template Variables

Template expressions use {{ expr }} syntax with arithmetic support.

Variable Type Example
BOUQUET_WORKTREE_INDEX int 1, 2, 3
BOUQUET_WORKTREE_BRANCH str feature/auth
BOUQUET_WORKTREE_PATH str /path/to/.bouquet-worktrees/feature-auth
BOUQUET_PROJECT_NAME str my-project

Example: {{ 8000 + BOUQUET_WORKTREE_INDEX }}8001 for worktree index 1.