Skip to main content
Lift uses a layered TOML configuration system. Each layer overrides the previous:
  1. Built-in defaults β€” embedded in the binary from lift.default.toml
  2. User config β€” ~/.taho/lift/lift.toml
  3. System config β€” /etc/taho/lift/lift.toml
  4. 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

KeyTypeDefaultDescription
pipelinestring array["inky", "doc", "lint", "vibes"]Tools to run in the default pipeline
quietboolfalseSuppress progress indicators
script_dirstring"scripts/mastodon"Path to scripts directory
use_external_scriptsboolfalseUse legacy bash scripts instead of internal tools
main_branchstring"main"Main branch name for VCS operations

Tool-specific settings

KeyTypeDefaultDescription
inky.task_prefixstring"TAHO"Prefix for task numbers in commit messages
lint.commandstring"cargo clippy --fix --allow-no-vcs"Lint command to execute
lint.file_extensionsstring array[".rs", ".toml", ".lock"]File extensions that trigger linting
doc.pathsstring array["README.md", "CLAUDE.md", ".mdx", ".feature", "docs/"]Documentation file paths to consider
pr.draftbooltrueWhether 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.