Lift uses a layered TOML configuration system. Each layer overrides the previous:
- Built-in defaults β embedded in the binary from
lift.default.toml
- User config β
~/.taho/lift/lift.toml
- System config β
/etc/taho/lift/lift.toml
- CLI flags β highest priority
Run lift --config to see the resolved configuration with file status.
Configuration files
Create ~/.taho/lift/lift.toml to customize Lift behavior. All fields are optional β only specify what you want to override.
Available settings
| Key | Type | Default | Description |
|---|
pipeline | string array | ["inky", "doc", "lint", "vibes"] | Tools to run in the default pipeline |
quiet | bool | false | Suppress progress indicators |
script_dir | string | "scripts/mastodon" | Path to scripts directory |
use_external_scripts | bool | false | Use legacy bash scripts instead of internal tools |
main_branch | string | "main" | Main branch name for VCS operations |
| Key | Type | Default | Description |
|---|
inky.task_prefix | string | "TAHO" | Prefix for task numbers in commit messages |
lint.command | string | "cargo clippy --fix --allow-no-vcs" | Lint command to execute |
lint.file_extensions | string array | [".rs", ".toml", ".lock"] | File extensions that trigger linting |
doc.paths | string array | ["README.md", "CLAUDE.md", ".mdx", ".feature", "docs/"] | Documentation file paths to consider |
pr.draft | bool | true | Whether to create PRs as drafts |
Examples
Custom pipeline (run only lint and vibes by default):
pipeline = ["lint", "vibes"]
Python project:
[inky]
task_prefix = "PROJ"
[lint]
command = "ruff check --fix"
file_extensions = [".py", ".pyi"]
[doc]
paths = ["README.md", "docs/"]
Go project:
main_branch = "develop"
[lint]
command = "go fmt ./..."
file_extensions = [".go"]
CLI flags always override file config. For example, lift -m overrides the pipeline setting to run only Inky for that invocation.
Commit tracking
Lift tracks which commits each tool has processed in ~/.taho/lift/:
~/.taho/lift/ink # Commits processed by Inky
~/.taho/lift/doc # Commits processed by Doc
~/.taho/lift/lint # Commits processed by Lint
~/.taho/lift/vibes # Commits processed by Vibes
Tracking is VCS-agnostic and stores commit hashes regardless of backend.