/modes/promptprompt modeSay the messy version. Send the good one.
Prompt mode listens to your half-formed thought — tangents, ums and all — and rewrites it as the clear, structured prompt the AI in front of you actually responds to. Not dictation with delusions of grandeur: a genuine rewrite, by a model that knows the difference.
Anatomy of a press
- 1Hold the hotkey, ramble freely
Don’t compose — just talk. "I need something that reviews this for security stuff but doesn’t nitpick" is a perfect input. Messy is the raw material.
- 2Wisspa reads the room
At the moment you press, it snapshots the frontmost app — and if you’re in a browser, the active tab. Claude.ai gets a different format than ChatGPT, Cursor, or Gemini. Gmail or Notion in front? It skips "prompt" entirely and writes the finished thing.
- 3Optionally, it grabs your selection
If you’ve selected text — a function, an email thread, an error log — that goes along as context, clearly fenced off as content, not instructions.
- 4Sonnet rewrites, twice when it matters
Claude Sonnet restructures your intent: task, context, constraints, output format. Complex requests get a second critique-and-revise pass automatically. Vague noise gets passed through untouched rather than inflated into a fake task.
- 5Preview, then it types for you
A preview toast counts down (you set the seconds), then the prompt is pasted into the field you were in. Escape cancels before anything is inserted.
Same voice. Very different output.
Three real presses, three different targets. Notice the format changing with the app — that’s the part you never have to think about.
processBatch() for performance.Constraints: identical return values; no API changes.
Show the bottleneck before and after.
<task>Draft a cold outreach email to a brewery about stocking my kombucha.</task><constraints>Under 120 words. Warm but not quirky. One clear ask: a 15-minute call.</constraints><context>Small-batch producer, Sydney, no existing relationship.</context>XML tags because it’s Claude. The same press inside ChatGPT gets Markdown headings instead.
Gmail isn’t a prompting surface, so Prompt mode drafts the email itself. It reads the active tab to tell the difference.
It knows which AI you’re talking to
The rewriter carries a format map and uses it on every press. Claude and Claude Code get XML-tagged structure. ChatGPT gets Markdown headings. Cursor and VS Code get the terse inline form. Gemini gets numbered steps. Anything else gets clean generic Markdown — and non-AI surfaces like Gmail, LinkedIn, and Notion get the finished content, because asking Gmail for a prompt would be odd. There’s a manual override in Settings for the day detection misfires.
It won’t invent tasks you didn’t say
Mumble into the mic by accident and you get your mumble back, not a fabricated assignment — the rewriter is instructed to pass through insufficient intent untouched. Selected text and browser context travel in explicitly-marked untrusted blocks, so a malicious web page can’t smuggle instructions into your prompt. And if the rewrite ever comes back stranger than what you said, Wisspa falls back to your raw words instead of losing them.
Tune it in Settings
Include selected text (on by default). Preview countdown — zero to ten seconds, or off for instant insertion. Review-before-insert if you like to approve every prompt. A free-text profile — “I’m a contract lawyer, prefer plain English” — that’s injected as standing preferences into every rewrite. And adaptive two-pass refinement for complex asks, on by default because it earns its keep.