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

# AI cleanup

> Have an AI model tidy your dictations, using ChatGPT, OpenRouter, or your own server.

AI cleanup tidies what you say before Pipit pastes it. In the app's words, it **Drops filler words and fixes punctuation**, and it can match the tone of where you're typing.

It's optional and off by default. Without it, Pipit still transcribes everything on your Mac.

## Turn it on

**1. Open Enhance**

Open Pipit and go to the **Enhance** tab.

**2. Switch it on**

Turn on **Clean up with AI**.

**3. Choose where it runs**

Under **Runs on**, pick **ChatGPT**, **OpenRouter**, or **Your own**, and finish that option's setup below.

Until the option you picked is set up, your dictations paste without cleanup.

### When cleanup runs

With no **Enhance** or **Draft** key set, every dictation is cleaned up. Once you set either key in **Home** > **Shortcuts**, your **Dictate** key pastes your words without AI cleanup, and only the **Enhance** key cleans up. See [Shortcuts](https://pipit.mintlify.site/shortcuts.md).

## Runs on

### ChatGPT

Uses your ChatGPT Plus or Pro plan. There's no key to paste.

1. Choose **ChatGPT** and click **Continue with ChatGPT**.
2. Sign in to ChatGPT in your browser and allow Pipit to use your plan.
3. Back in Pipit, the status reads **Using ChatGPT plan**.

**Manage usage** opens your ChatGPT usage page. If the status reads **Plan use not allowed**, click **Allow plan use** and approve it in your browser. To disconnect, click **Sign out**.

### OpenRouter

Uses your own OpenRouter key, and you pay OpenRouter as you go.

1. Choose **OpenRouter** and click **Get a key**. This opens OpenRouter, where you can create a key and add credits.
2. Paste the key into the field that reads **Paste a key that starts with sk-or-**.
3. The status changes to **Connected**. Your key is kept in your Keychain.

To use a different key later, click **Change key**.

**Speed** lets you choose the trade-off. **Balanced** is the default.

| Speed | What it means |
| - | - |
| **Fast** | Quickest; may reword slightly |
| **Balanced** | Best all-round; closest to your words |
| **Low cost** | Lowest cost; a little slower |

If the status reads **Limited**, click **Manage key**, allow the models Pipit asks for in OpenRouter, then click **Check again**.

### Your own server

Use a model running on your Mac, or any service with an OpenAI-compatible URL. Choose **Your own**, then fill in **Base URL** and **Model**. Add a key in **API key, if the server needs one** only if your server asks for one.

Next to **Fill in**, click a preset to fill in the base URL for you. Presets cover **Ollama**, **LM Studio**, **Groq**, **Gemini**, and **OpenAI**. Groq, Gemini, and OpenAI need an API key from that service.

When both fields are filled in, click **Test**. The status changes to **Connected** when the model answers.

> [accordion] Ollama
>
> 1. Install Ollama from [ollama.com](https://ollama.com) and download a model, for example `ollama pull llama3.2`.
> 2. Make sure Ollama is running.
> 3. In Pipit, click **Fill in** > **Ollama**. The base URL becomes `http://localhost:11434/v1`.
> 4. Type the model's name in **Model**, for example `llama3.2`, and click **Test**.

> [accordion] LM Studio
>
> 1. Install LM Studio from [lmstudio.ai](https://lmstudio.ai), download a model, and load it.
> 2. Start LM Studio's local server.
> 3. In Pipit, click **Fill in** > **LM Studio**. The base URL becomes `http://localhost:1234/v1`.
> 4. Type the name of the loaded model in **Model** and click **Test**.

## Writing style

Once cleanup is set up, **Writing style** lets you pick a tone for each place you type. Click **Personalize** (or **Edit**) to open **Customize Your Voice**. Pipit switches tone on its own as you move between apps.

| Place | Default style |
| - | - |
| **Text messages** | **Casual** |
| **Work messages** | **Formal** |
| **Email** | **Formal** |
| **General** | **Standard** |

The styles are **Standard** (standard caps and punctuation), **Casual** (lowercase and light punctuation), **Excited** (more exclamations), and **Formal**. **Use Defaults** puts back the table above.

## Custom instructions

Add your own rules under **Custom instructions**. Click **Add** and type them, for example: "Use British spelling. Never add emoji." To remove them, click **Clear**, then **Confirm**.

## When cleanup fails

If the AI provider fails or can't be reached, Pipit still pastes your dictation without cleanup. A card says what went wrong, often with a button to fix it.

If you press the **Enhance** key before a provider is set up, nothing is cleaned and the card reads "Enhance needs an AI provider." Click **Set up**.

| Message | Fix |
| - | - |
| "Add your OpenRouter key." / "Add your server's API key." / "Your API key was rejected." | Click **Open Enhance** and paste a working key. |
| "Pipit couldn't unlock your saved API key." | Click **Unlock** and allow Pipit to use the key when macOS asks. |
| "Out of OpenRouter credits." | Click **Add credits** and top up your OpenRouter account. |
| "Too many requests. Wait a moment and try again." | Wait a moment, then dictate again. |
| "No internet connection, so the AI couldn't answer." / "Can't reach OpenRouter. Check your connection." | Check your connection, or use **Your own** server on your Mac. |
| "Nothing at that address. URLs usually end in /v1." / "Your server has no URL yet." / "Your server's URL doesn't look right." | Click **Open Enhance** and fix **Base URL**. Most servers' URLs end in `/v1`. |
| "Your server needs a model name." / "Your server doesn't have "(model)"." | Enter a model your server has in **Model**. |
| "Nothing answered at (server)." | Start your server (Ollama or LM Studio), then click **Test**. |
| "Sign in to ChatGPT again." / "ChatGPT hasn't allowed Pipit yet." | Click **Open Enhance**, then **Continue with ChatGPT** or **Allow plan use**. |
| "ChatGPT plan limit reached for now." | Click **Manage usage**, or wait for your plan's limit to reset. |
| "This ChatGPT account can't share its plan with apps." | Use **OpenRouter** or **Your own** instead. |

## Privacy

AI cleanup sends text, never audio, to the provider you chose: your dictation, plus some context: the app and window you're in, text around your cursor, and names it should spell right. With **Your own** server on your Mac, the text stays on your Mac. See [Privacy](https://pipit.mintlify.site/privacy.md).


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