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

# Per-App Prompt Profiles for Context-Aware Dictation

> Assign custom AI instructions to specific apps so your dictation tone shifts automatically — casual in Slack, formal in Mail, structured in GitHub.

Per-app prompt profiles let you write custom AI instructions that activate automatically when a specific app is in focus. When you dictate in Slack, FluidVoice applies your Slack prompt. When you switch to Mail, it applies your Mail prompt — without any manual switching on your part. The same spoken words come out differently depending on where you're writing, matching the tone and format each context expects.

FluidVoice detects the active app through macOS's accessibility API, which monitors the focused application continuously. No extra configuration is required for detection to work.

## Use Cases

The same raw dictation adapts to whichever app is in focus:

| App                         | Tone       | What FluidVoice does                                                     |
| --------------------------- | ---------- | ------------------------------------------------------------------------ |
| **Slack**                   | Casual     | Keeps language conversational, trims formality, adds emoji where natural |
| **Mail**                    | Formal     | Uses complete sentences, professional sign-offs, correct salutations     |
| **GitHub Issues**           | Structured | Formats content with headers, bullet points, and action items            |
| **Notes / Quick Notes**     | Personal   | Preserves your natural speaking voice, minimal cleanup                   |
| **Terminal / Code editors** | Raw        | Outputs text exactly as spoken, no punctuation added                     |

## How to Create a Custom per-app prompt

<Steps>
  <Step title="Open Advanced Prompts">
    Go to **AI Enhancement → Advanced Prompts**.
  </Step>

  <Step title="Open App Overrides">
    Click on **App Overrides**, then click the **Add App** button to see the list of available applications.
  </Step>

  <Step title="Choose your app">
    Select the app you want to configure a custom prompt for.
  </Step>

  <Step title="Select or create a prompt">
    Once the app is chosen, pick a prompt to associate with it:

    * **Use an existing prompt** — choose one of your saved custom prompts from the list.
    * **Create a new prompt** — configure a new one with:
      * A custom shortcut
      * Your preferred AI provider and model
      * A prompt name
      * The prompt instructions themselves
  </Step>

  <Step title="Test your prompt">
    Use the built-in **Test mode** to verify the prompt works for your use case and refine it if needed before saving.
  </Step>
</Steps>

## Example Prompts

<CodeGroup>
  ```text Slack — Casual theme={null}
  Make the tone casual and conversational. Fix formatting and remove filler words. 
  Add emoji where it feels natural and appropriate. Keep it concise.
  ```

  ```text Mail — Formal theme={null}
  Make the tone professional and formal. Fix grammar, punctuation, and sentence 
  structure. Use complete sentences with proper salutations and sign-offs.
  ```

  ```text GitHub Issues — Structured theme={null}
  Format the output as a structured GitHub issue. Use markdown with clear headers 
  (## Issue, ## Steps to Reproduce, ## Expected Behavior, ## Resolution). 
  Use bullet points for lists. Keep language technical and precise.
  ```

  ```text Quick Notes — Personal theme={null}
  Preserve the speaker's natural voice and casual tone. Fix obvious errors only. 
  Do not restructure sentences or change the register.
  ```

  ```text Terminal / Code editors — Raw theme={null}
  Output raw text only. Do not add punctuation, capitalization changes, or 
  formatting. Do not modify technical terms, variable names, or commands.
  ```
</CodeGroup>

## Dictate Mode vs. Edit Mode Profiles

Every prompt profile targets one of two modes:

* **Dictate mode** — applies during standard voice dictation. The profile shapes how the AI cleans and formats your spoken words before they're typed into the app.
* **Edit mode** — applies when you use the Edit hotkey to rewrite selected text. The profile shapes how the AI interprets and applies your rewrite instructions.

<Tip>
  You can create different profiles for Dictate mode and Edit mode within the same app. For example, your Slack Dictate profile could keep things casual, while your Slack Edit profile could be set to make rewrites shorter and more direct.
</Tip>

## Routing Scope

Each mode has a **routing scope** setting that controls how broadly per-app profiles apply:

* **All apps** — the selected prompt profile acts as the global default for every app. Per-app bindings override it for specific apps you've configured.
* **Selected apps only** — per-app profiles are only active for apps that have an explicit binding. All other apps fall back to the built-in default prompt, ignoring any globally selected profile.

Set the routing scope in **Settings → Prompts** for each mode independently.

## How App Detection Works

FluidVoice uses macOS's accessibility API to monitor which application is currently focused. When you press your dictation hotkey, FluidVoice reads the active app and looks up any matching prompt binding for the current mode. The matching profile's instructions are sent to the AI provider as part of the system prompt — no manual selection required on your part.

Detection is automatic and real-time. Switching apps between dictation sessions is enough for the correct profile to activate on your next dictation.

<Note>
  Per-app prompt profiles require AI Enhancement to be enabled. If enhancement is set to **Off**, profiles have no effect and FluidVoice types the raw transcript directly.
</Note>
