> ## Documentation Index
> Fetch the complete documentation index at: https://docs.taholabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

> Layered TOML configuration system for customizing Lift's pipeline, tools, and behavior.

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

| 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 |

### Tool-specific settings

| 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):

```toml theme={"theme":{"light":"github-light","dark":"github-dark"}}
pipeline = ["lint", "vibes"]
```

Python project:

```toml theme={"theme":{"light":"github-light","dark":"github-dark"}}
[inky]
task_prefix = "PROJ"

[lint]
command = "ruff check --fix"
file_extensions = [".py", ".pyi"]

[doc]
paths = ["README.md", "docs/"]
```

Go project:

```toml theme={"theme":{"light":"github-light","dark":"github-dark"}}
main_branch = "develop"

[lint]
command = "go fmt ./..."
file_extensions = [".go"]
```

<Note>
  CLI flags always override file config. For example, `lift -m` overrides the `pipeline` setting to run only Inky for that invocation.
</Note>

## 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.