I'm building DraftKey, a native Mac app that brings together AI autocomplete, instruction-based rewriting, and mechanical keyboard sounds. The one constraint I wouldn't bend on: the writing model runs on your Mac, and your text isn't sent to a cloud AI service.
That choice shapes almost everything else. Here's what it looks like in practice, in case you're weighing local inference for a desktop app of your own.
1. The hardware is the first gate
When inference runs locally, the user's machine does the work. DraftKey needs an Apple Silicon Mac on macOS 14 or later, and the AI features need at least 8 GB of memory. That rules some people out, and I'd rather say so on the download page than have someone find out after installing.
2. The model is its own download
The writing model is a separate download of roughly 1.12 GB, and you need at least 2.2 GB of free space plus room for the app. Onboarding has to explain that clearly, because "download the app" and "download the model" are two different moments for the user.
3. "Offline" needs an honest asterisk
Once the model is downloaded, autocomplete and rewriting work offline. But setup still touches the network: the initial model download, license activation, and update checks. "Your text stays on your Mac" is true. "The app never connects to the internet" would not be, so I don't say it.
4. Working inside other apps means Accessibility
DraftKey works in the apps you already write in by using macOS Accessibility to read and write compatible text fields. Support depends on how each app exposes its text, so some custom editors don't work, and secure fields are always excluded. Per-app controls let you choose exactly where DraftKey is active.
5. Keep the features independent
Autocomplete suggests what to write next while you type. Rewriting changes text you already have, following an instruction like "make it shorter." Keyboard sounds work with no AI at all. Each has its own switch, so you can run only the parts you want.
The shortcuts
- Tap Command + Option together, then release, to open Writing tools. It uses your current paragraph automatically, or your selection if you've highlighted text. You review the result before choosing Insert.
- Press ⌘⌥V to open clipboard history, pick an earlier text copy, press Return, then ⌘V to paste. That part needs no model and is saved only on your Mac.
A question for you
If you've shipped on-device ML in a desktop app, how did you handle hardware requirements and big model downloads during onboarding? I'd love to hear what worked and what confused people.
Top comments (0)