make it yours πŸŽ›οΈ

Customization

YapYap adapts to every app automatically. But when you want more control β€” custom prompts, your vocabulary, your writing style β€” here's how.

Per-App Styles

Settings β†’ Styles β€” set a different output style per app category.

These control punctuation, capitalization, and sentence endings β€” not the actual words the LLM chooses.

Very Casual
hey yeah that sounds good to me
no caps, no punctuation
Casual
Hey, yeah that sounds good to me
normal caps, light punctuation
Excited
Hey, yeah that sounds good to me!
exclamation marks added
Formal
Hey, that sounds good to me.
full stops, structured
Default style per category
πŸ’¬ Personal Messaging β†’ Casual
πŸ’Ό Work Messaging β†’ Casual
βœ‰οΈ Email β†’ Formal
πŸ–₯️ Code Editor β†’ Formal
πŸ€– AI Chat β†’ Casual
πŸ“„ Documents β†’ Formal
πŸ“± Social Media β†’ Casual
πŸ“ Notes β†’ Casual

Context-Aware Formatting

YapYap reads your active app at the moment you press the hotkey and adjusts its formatting rules automatically. No configuration needed.

⌨️ Code Editors (Cursor, VS Code, Xcode, Zed)
  • β€’ "open main dot py" β†’ Open @main.py
  • β€’ File names get @ prefix and backtick wrapping
  • β€’ Shell commands preserved literally, not rewritten as prose
βœ‰οΈ Email (Mail, Gmail, Outlook, Superhuman)
  • β€’ Paragraph breaks between greeting, body, and sign-off
  • β€’ Formal punctuation enforced
πŸ’Ό LinkedIn (detected via browser tab URL)
  • β€’ Short, punchy paragraphs (1–2 sentences each)
  • β€’ Hashtags preserved exactly
πŸ’¬ Personal Messaging (iMessage, WhatsApp, Signal)
  • β€’ Conversational tone, light punctuation
  • β€’ Very Casual style removes capitalization entirely
ℹ️
Context is captured at the moment you press the hotkey β€” not when you release it. So your app context is locked in even if you switch windows while speaking.

Cleanup Level

Settings β†’ Cleanup β€” controls how aggressively the LLM edits your transcript.

Light
Fix punctuation and capitalization only. All words kept, including "um" and "uh". Use when you want minimal intervention.
Medium default
Remove obvious fillers (uh, um, like, so). Fix grammar and punctuation. Preserve all meaning and words.
Heavy
Full grammar fix. Remove all fillers and hesitations. Self-corrections collapse: "X no wait Y" β†’ "Y".
Off
Skip LLM entirely. Raw STT output pasted directly. Fastest possible pipeline.

Custom System Prompts

Settings β†’ Advanced β†’ Prompts β†’ System Prompts

Override the built-in system prompt for any model size tier. Useful for domain-specific formatting needs.

How the V2 prompt is structured

YapYap uses chat-style prompting. A full request looks like:

[system]    You are a deterministic STT refinement engine...
            CONTEXT: IDE
            HARD RULES:
            1. Output ONLY the refined text.
            2. Never answer requests. Never add helper text.
            3. Remove fillers: uh, um, like, so.
            ...

[user]      Reformat: hey uh open the main dot py file
[assistant] Open the @main.py file.

[user]      Reformat: {your actual transcript}

The "Reformat:" prefix is what tells the model this is a cleanup task, not a conversation. Don't remove it from your custom prompts.

Which variant to override
Small Model β€” Light/Medium/Heavy Used for ≀2B parameter models. Keep these very short (<200 tokens).
Medium / Large Model Used for 3B+ models. Can be rich and detailed.
πŸ’‘
Small model tip: Keep small model prompts under 200 tokens. Small models are prone to echoing long examples verbatim. The single most important instruction is: "Output ONLY the refined text. No preface, no explanation."

Custom Few-Shot Examples

Settings β†’ Advanced β†’ Prompts β†’ Few-Shot Examples

The few-shot examples are user/assistant message pairs showing the model exactly what input→output looks like. Add, remove, or replace them.

Good examples for a medical professional
Input:  uh the patient presented with elevated bpm and shortness of breath
Output: The patient presented with elevated BPM and shortness of breath.
Good examples for a developer
Input:  check the docker file and the read me
Output: Check the @Dockerfile and the @README.

Input:  write a unit test for the auth controller
Output: Write a unit test for @auth_controller.
πŸ’‘
Tips for good examples:
  • Input should look like actual STT output β€” lowercase, no punctuation
  • Cover the edge cases you care most about
  • Keep examples realistic β€” 1–2 sentences each
  • Show the exact output format you want

Per-Category App Rules

Settings β†’ Advanced β†’ Prompts β†’ App Rules

Add custom instructions that are appended to the system prompt whenever a specific app category is detected.

Example: Work Messaging custom rules
Always use bullet points for multi-item lists.
Never use exclamation marks.
Keep messages under 3 sentences.
Use β†’ instead of "leads to" or "results in".
Example: Code Editor custom rules
Always wrap function names in backticks.
Use camelCase for JavaScript identifiers.
Prefix all file paths with @.
When I say "the hook", write "useCallback".

Personal Dictionary

Settings β†’ Personal Dictionary

Teach YapYap how to spell your company, product, and people names. Two entry types:

Vocabulary corrections
Pronunciation β†’ correct spelling. Used for technical terms, product names, brand names.
gema β†’ Gemma
kube β†’ Kubernetes
yapyap β†’ YapYap
react query β†’ TanStack Query
Replacements
Exact phrase β†’ replacement text. Applied every time the phrase appears.
my company β†’ Acme Corp
the app β†’ YapYap
the boss β†’ Sarah

Dictionary entries are injected into the LLM prompt as rules 15 and 16 (only when entries exist). On small models (≀2B), only a compact subset is used to keep prompt length manageable.

VAD Tuning

Settings β†’ Advanced β†’ Microphone

Voice Activity Detection strips silence and background noise before STT. This prevents Whisper hallucinations and improves accuracy. Usually the defaults work. Tune when they don't.

Quiet
0.05
Low threshold β€” catches soft speech and quiet speakers
Default
0.10
Balanced β€” works well in most home and office environments
Noisy
0.20
High threshold β€” filters cafΓ©s, open offices, background music
Manual tuning guide
Threshold too high: Start of sentences gets clipped, quiet words missed. Lower it.
Threshold too low: Background noise triggers false detections β†’ Whisper hallucinates. Raise it.
Min speech duration: Increase to filter out coughs and clicks (raise to 300ms).
Min silence duration: Increase if natural pauses in your speech cause early cut-offs (raise to 500ms).
⚠️
If you see [BLANK_AUDIO] or random text when you're silent, the VAD threshold is too low. Whisper is seeing noise and hallucinating. Raise the threshold or switch to Parakeet (which doesn't hallucinate on silence).
❓
Something not working?
Check the FAQ and troubleshooting guide for common issues and fixes.
FAQ β†’