For macOS 26 on Apple Silicon

Autocomplete for your whole Mac

Grey text finishes your sentence in almost any app. Tab takes it. The model runs on your Mac.

brew tap hrsong99/halftype && brew trust hrsong99/halftype brew install --cask halftype

Real suggestions, on sentences it does well. Not always this good.

Three keys. Or just keep typing.

Tab takes a word

Shift-Tab takes it all

Esc hides it

Korean, even mid-syllable

Most tools go quiet while you compose Hangul. Halftype suggests from 하, then Tab presses the keys left, so your input method finishes the syllable.

Type half. It writes the rest.

English, replayed with real typing delays, default settings.

21.6%
of keystrokes saved across whole messages
81.5%
of suggestions right on the first word
53 ms
to the first word

Measured before the latest change to suggestion length. How it’s measured.

Nothing you type leaves your Mac. It counts, never keeps.

  • One permission

    Accessibility. No Screen Recording.

  • Network

    Only model downloads and a daily update check.

  • On disk

    Settings, models and four counts a day. No text, no logs.

  • Password fields

    Skipped.

Halftype’s settings: models that run on this Mac, paused apps, and General with Length, How Often and the three keys

The smallest download. Light when you’re not typing.

Model to download
Halftype0.53 GB
KeyType1.27 GB
Cotypist2.98 GB
Cotabby3.85 GB
Memory at rest
Halftype79 MB
Cotabby185 MB
Cotypist383 MB
CPU at rest
Halftype0.2%
Cotypist0.2%
Cotabby2.2%
Suggests mid-syllable in Korean
HalftypeYesMeasured: 0.69 keys saved per mid-syllable request
macOS predictionsNo KoreanApple offers inline predictions in English, French and Spanish
Cotabby, KeyTypeNot foundNo completion through a composing syllable in their source
CotypistNot testedClosed source

Each app’s default model, on one M5 with 16 GB, 2026-11-09. At rest is 9 minutes after launch, with no typing; memory is macOS’s footprint. Halftype’s figures are from scripts/e2e.sh --measure, the others from docs/site/compare/idle.sh. KeyType is left out at rest: it starts only once it has Accessibility, then keeps its model until you quit. Cotabby had no Accessibility either, but had loaded its model.

Limits

An early release. Found something? Open an issue.

Which Macs?

macOS 26 on Apple Silicon.

And Korean?

Weaker than English, with Apple’s 2-Set layout.

Where won’t it suggest?

Mid-line, and during Secure Input.

Does it work in Chromium apps?

Mostly. Only some are tested.

Building it yourself

Yes, with Swift 6.2.