SuperwhisperS
Superwhisper
Aug 14

Local control API: let scripts and AI agents read and edit modes, prompts and text replacements

Today every mode, prompt, example and text replacement is edited by hand in the settings UI. That makes superwhisper the one part of my workflow an assistant can't help with — I can ask Claude to rewrite a system prompt, but then I have to copy it into a form field myself, one mode at a time.**The ask:** a local control surface (HTTP on localhost, or a `superwhisper` CLI) that exposes the config superwhisper already stores on disk:- **Modes** — list, read, create, update, duplicate, delete- **Prompts** — read/replace a mode's system prompt and its few-shot examples- **Text replacements & vocabulary** — list, add, bulk import, remove- **Settings per mode** — model, language, auto-paste, output target- **Active mode** — read the current one, switch it- **Recent transcriptions** — read-only access to historyJSON in, JSON out. Off by default, enabled by a toggle in settings, and a token in the request so nothing on the machine can drive the app without consent.**Why this shape rather than more UI:** it's one surface that answers a whole family of existing requests instead of a feature each. It makes prompts versionable — I can keep my modes in a git repo and push them to the app. It makes them shareable — a team can distribute a tested mode as a file plus one command. And it makes iteration real: an agent that can read a transcript, spot where the prompt failed, edit the prompt and re-run it closes a loop that is manual today.**How it relates to what's already on the board:**- *Tool-calling via MCP* asks for superwhisper to call out to tools. This is the inbound direction — tools calling superwhisper. Together they make it a full participant in an agent setup, and an MCP server for superwhisper becomes a thin wrapper over this API rather than a separate build.- *Webhook/trigger/shortcuts (OnRecordComplete / OnTranscribeComplete / OnLLMComplete)* is the event half; this is the control half. Events out, commands in.- *Load Custom Instructions from files or URLs* solves prompt authoring outside the app; an API generalises it to every part of a mode, and adds reading back what is currently configured.- *Bulk addition of text replacements from a CSV file*, *Add custom instructions to predefined mode*, *Separate settings per mode*, *Set default model after switching* — each of these is a one-line call once the API exists.**A smaller first step, if the full surface is too much:** read-only endpoints plus mode import/export. Even `GET /modes` and `PUT /modes/{id}` would unblock most of this, and the file format is already there.I'd use this the day it ships, on macOS.
PendingPending