A copilot for writing: ghost text and Tab-complete outside the IDE
You know the move by heart: type half a line, the grey ghost text finishes it, Tab, next thought. Then you switch to Mail or Slack and suddenly you're typing every character again, like an animal. Here's how to get the Copilot UX for prose — with a small local model, no API key, no cloud.
The mental model you already have
GitHub Copilot rewired how a lot of developers type: you stop thinking in keystrokes and start thinking in proposals. You write the beginning, the model drafts the rest in grey, and you accept, reject, or keep typing to steer it. It's fast because it never interrupts you — no chat window, no prompt, no copy-paste. The suggestion lives at your caret, and rejection is free.
The frustrating part is where it stops. Copilot (and its cousins) are editor plugins: VS Code, JetBrains, Neovim. The moment you leave the IDE to answer an email, write a standup note, or reply to a customer in Slack, the ghost vanishes. Yet prose is more predictable than code — "Thanks for the heads-up, I'll take a look and" pretty much writes itself.
The same UX, system-wide, from a local model
On macOS, that gap can be closed without any cloud at all. Souffleuse is a menu-bar app that uses the Accessibility API to read the text field you're typing in — any app with standard text fields: Mail, Slack, Notes, Messages, your browser, Obsidian — and a small on-device language model to propose the continuation as grey ghost text at your caret. Tab accepts, word by word or in chunks; Esc clears; keep typing and the stale suggestion is dropped, exactly the cancel-on-keystroke feel you expect from a good completion engine.
No API key, no account, no per-token billing: the model is downloaded once at setup and inference runs on your Apple Silicon GPU. Your drafts never leave the machine — which also means you can autocomplete the email about the thing you're under NDA for.
You type — "Deployed the fix to staging, can you"
Ghost text — " give it a quick test before I promote it to prod?" Tab
Setup in four steps
- Download the DMG (~7.5 MB, notarized by Apple, requires a Studio license) and drag the app into Applications.
- Grant the Accessibility permission — the equivalent of installing the editor plugin, except the "editor" is your whole Mac. The app then downloads its model once (0.4–1.5 GB depending on the model you pick).
- Type anywhere. When the model has a confident continuation, it appears in grey under your cursor.
- Tab to accept, Esc to dismiss. There's also // to reread your sentence and rewrite it in the tone of the app — calmer in Mail, lighter in Messages — and translation as you type, one target language per conversation.
Nerd notes
- Engine: llama.cpp with the Metal backend, running a quantized GGUF model directly on the Apple Silicon GPU. That's why there's no key and no cost per token.
- Model size: Gemma 1B class — deliberately small. This is next-phrase prediction at typing speed, not essay generation; a 1B-class model keeps latency low enough that suggestions land between your keystrokes.
- Cancellation: every keystroke invalidates the in-flight generation, so you never see a suggestion computed against an outdated prefix.
- Offline: after the initial model download, zero network. Airplane mode changes nothing. No telemetry either.
- Personalization: it learns your style from an encrypted history (stored locally, readable only by you). Secure fields — passwords, card numbers — are invisible to it by construction, because macOS marks them as secure.
- Requirements: macOS Sonoma (14)+, Apple Silicon (M1 or later). No Intel.
One caveat, stated plainly: the interface of the app is currently in French (it's a French-made tool). The completions themselves follow whatever language you type, and English works well. If you want to dig deeper into the local-model angle, see our guide to local LLM writing assistants.
Frequently asked questions
Is there a GitHub Copilot for email and everyday writing?
Not from GitHub — Copilot lives in editors and IDEs. But the same UX exists system-wide on macOS: tools like Souffleuse draw grey ghost text at your caret in Mail, Slack, Notes and the browser, and Tab accepts it. Souffleuse runs a small local model on Apple Silicon, so there is no API key and no cloud.
Does a writing copilot need an API key or a subscription?
Souffleuse doesn't. The model (Gemma 1B class, GGUF) runs on-device via llama.cpp with Metal, so there is no key, no account and no per-token cost. It's requires a Studio license with no daily limit; if it ever becomes paid it will be a one-time purchase, not a subscription.
Does it work offline?
Yes. After the one-time model download at setup, Souffleuse never touches the network. Autocomplete, translation and tone rewriting all work in airplane mode.
Tab-complete your next email
Install it, open Mail, and see how far the grey text gets you.
Download Souffleuse for MacStudio license required. macOS Sonoma (14) or later · Apple Silicon · ~7.5 MB · your text never leaves your Mac.