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

# Inky 🐙

> Generate improved commit messages from your diffs using Claude CLI.

## How It Works

Inky analyzes your commit diffs and generates improved commit messages using Claude CLI. It rewrites your message to follow conventional commit format, adds structured `Summary:` and `Test Plan:` sections, and amends the commit automatically.
When you run Inky, it:

1. Validates the working directory is clean and you're not on the main branch
2. Reads the current commit message and diff
3. Checks that the diff is non-empty — Inky won't process empty commits
4. Sends both to Claude CLI with instructions for generating a better message
5. Amends the commit with the improved message
6. Tags the commit with `#inky` for tracking

Inky uses the diff to understand *what* changed, then writes a message explaining *what* and *why* rather than restating the code.

## Usage

Run Inky through the Lift CLI, either isolated or as part of the full pipeline:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
# Run only Inky
lift -m

# Run the full pipeline (Inky runs first, then Doc)
lift
```

### Cleanup Mode

Cleanup mode replaces the commit message with a placeholder instead of generating a new one. This is useful when you want to reset a commit message before re-running the pipeline:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
lift -m -c
```

The placeholder message is set to `"please wait: finding something to put here..."` and the commit is still tagged with `#inky`.

## Generated Message Format

Inky generates messages that follow these conventions:

* **Summary line** under 72 characters
* **Conventional commit prefix** when appropriate (`feat:`, `fix:`, `refactor:`, etc.)
* **Present tense** ("Add feature" not "Added feature")
* **Summary and Test Plan sections** included in the body
* **Existing hashtags preserved** (like `#inky`, `#doc`)

<Note>
  If Inky determines your existing message is already good, it may keep it mostly as-is rather than rewriting it.
</Note>

## Flags

These flags are passed to Lift and apply when Inky runs:

| Flag     | Description                                                     |
| -------- | --------------------------------------------------------------- |
| `-m`     | Run only Inky (skip other tools)                                |
| `-t NUM` | Prepend a task number to the commit message (e.g., `TAHO-123:`) |
| `-c`     | Cleanup mode — set a placeholder message instead of generating  |
| `-q`     | Quiet mode — suppress progress indicators                       |

The task prefix defaults to `TAHO` and can be overridden via the `inky.task_prefix` [config setting](/lift/reference/configuration).

## VCS Support

Inky works with both Git and Sapling, detected automatically. See [VCS Support](/lift/reference/vcs-support) for details.
