Plugins: a meme generator today, a local control plane for your voice tomorrow
OpenWhisp now ships a plugin system: optional surfaces that add their own window, settings, and spoken commands. The first plugin is a voice-driven meme generator — describe a meme and it picks a template, writes the captions, and renders it locally. The point isn't memes: it's that your voice can drive real tools without your words leaving the machine.
Start with the fun part, because it really is fun. Say “create a meme about code review taking three days,” and OpenWhisp opens a window with a finished meme in it: a template it chose, captions it wrote, rendered and ready to export. It works, it’s genuinely funny, and it takes about four seconds.
Now the part that matters. The meme generator is the first plugin, not the point of plugins. It exists to prove a system.
What a plugin actually is
A plugin is an optional surface layered on top of OpenWhisp. It can contribute its own window, its own section in Settings, a menu-bar shortcut, and — the interesting one — spoken commands that route mid-dictation.
That last one is what makes it more than a menu item. When you’re dictating and your words start with a phrase a plugin declared, the dictation is routed to that plugin instead of being typed. The meme plugin declares triggers like “create a meme,” “make a meme,” and — because the whole app is multilingual — “сделай мем.” Your voice becomes the interface to the tool.
The actual vision: a local control plane
Here is the pattern this is aimed at. You have some text — a contract clause, a patient note, an internal postmortem, a customer’s email — and you want to do something with it. Summarize it. Reformat it. Turn it into a table. Draft a reply.
Today the honest answer for most people is: open a browser tab, find a tool, and paste it in. Which means that clause, that note, that postmortem now lives on a server you don’t control, under terms you didn’t read, retained for a period you can’t verify. Everyone knows this is bad. Everyone does it anyway, because the alternative is doing it by hand.
Plugins are the alternative. A surface that does one useful thing, that you drive with your voice, running on your machine, where the sensitive text never leaves in the first place. Not “we promise we don’t train on your data” — there’s no request to make a promise about.
OpenWhisp already holds the pieces that make this possible: the microphone, on-device transcription, a local AI model, on-device translation, and the accessibility grants to read and write text in any app. Plugins turn that from a dictation app into a control plane: the place your voice reaches the tools, with the tools kept local.
Third parties are the point — and the hard part
A control plane with one vendor’s plugins is just a feature list. The goal is that other people build the surfaces — the ones we’d never think of, for the workflows we don’t have. That’s where the interesting long tail lives.
It’s also where the genuinely hard problem is, and it’s worth being blunt about the current state: plugins today are in-repo and reviewed. You can’t yet install one without rebuilding, and third-party plugins are not supported. That isn’t an oversight — it’s the trust question being deferred rather than fudged.
Think about what you’d be granting. OpenWhisp holds microphone access, accessibility rights to read and type into any window, and your clipboard. Handing that to arbitrary downloaded code, in process, is exactly the security posture this app exists to avoid. The groundwork that is shipped reflects that:
- Off until you turn it on. Compiled in doesn’t mean enabled — a fresh install has every plugin switched off, and you enable them one at a time.
- A plugin can’t promote itself. Anything found in a user-writable folder is listed but flagged non-runnable, no matter what its manifest claims. Reviewed plugins always win an id collision, so nothing can shadow a built-in.
- Clipboard access is declared and enforced. A plugin that didn’t declare it causes no pasteboard read at all — the check runs before the read, not as a courtesy. (The meme plugin deliberately declines it.)
- Network hosts are disclosed next to each plugin, so you can see what it talks to before enabling it.
And the roadmap to third-party plugins is committed, in order: manifest/script-driven plugins first (install without rebuilding), then out-of-process executables — the only tier with real isolation, reusing the same local-socket pattern behind the Agent Bridge. Loadable dylibs are permanently ruled out: in-process third-party code alongside those permissions is not a trade worth making.
Why the first plugin is a joke generator
Choosing memes first was not an accident. A meme generator exercises nearly every seam a serious plugin needs — a window, settings, network calls, a local AI round-trip, voice triggers, rendering, export — while being completely harmless if it gets something wrong. A bad caption is a bad caption. It let the system get tested against something real, iteratively, without anyone’s contract clause riding on it.
Same instinct as the rest of OpenWhisp: build the boring, careful infrastructure, then prove it with something you'd actually use on a Tuesday afternoon.
Try it
- Open Settings › Plugins and switch on the Meme Generator.
- Hit its menu-bar shortcut, or just dictate “create a meme about …” anywhere.
- Edit the captions, drag the boxes, export or copy.
It’s a toy. The system under it isn’t.
Frequently asked questions
- What are OpenWhisp plugins?
- Plugins are optional surfaces layered on top of OpenWhisp. A plugin can add its own window, its own settings, a menu-bar shortcut, and spoken commands that route a dictation to it mid-sentence. They ship with the app but are off until you enable one.
- Can I install third-party plugins?
- Not yet. Plugins currently live in the repository and are reviewed, so installing one means a rebuild. Third-party support is on the roadmap in a deliberate order — manifest/script-driven plugins first, then out-of-process executables for real isolation. Loadable dylibs are permanently ruled out because in-process third-party code would sit alongside microphone, accessibility, and clipboard permissions.
- How does the voice-driven meme generator work?
- Enable it in Settings › Plugins, then dictate something starting with one of its trigger phrases — "create a meme", "make a meme", and others including Russian. It picks a template, writes the captions with your local AI model, and renders the image on your Mac so you can edit, export, or copy it.
- Do plugins send my data anywhere?
- Each plugin discloses the network hosts it talks to, shown next to it in Settings before you enable it. Clipboard access is gated: a plugin that didn't declare it causes no pasteboard read at all. The broader goal is that plugins let you act on sensitive text locally, instead of pasting it into a website.
Try OpenWhisp
Free, open source, and 100% on-device dictation for Apple Silicon Macs.