Open-source, local-first AI autocomplete for macOS.
Cotabby is free and open-source — maintained by two students. If it's useful to you, please consider supporting Cotabby's future.
This is @senadaruc's build of Cotabby. It adds features that are not (yet) in the official app. It runs as Cotabby Dev and can be installed next to the official Cotabby.
Download the latest Cotabby Dev: open the DMG and drag Cotabby Dev to Applications. The build is signed but not yet notarized, so the first time, macOS blocks it: open System Settings → Privacy & Security and click Open Anyway. After that it updates itself from this fork's releases. It never takes updates from the official feed, which would replace these features.
Conversation memory: suggestions and answers can draw on what was said before, in the same conversation and with the same people.
- Reads WhatsApp, Apple Mail, Outlook (New Outlook and the classic database), Microsoft Teams' local cache, your calendars, and a folder of notes you choose. Each source is opt-in.
- Everything stays on your Mac:
- Messages are encrypted in Cotabby's folder.
- Embeddings are computed on-device with llama.cpp (Qwen3-Embedding-0.6B).
- Memory is never sent to a remote model endpoint.
- Hybrid search (meaning plus exact words) with retention limits and per-person or per-conversation exclusions.
- Settings show what memory holds and how it performs: size, search latency, indexing speed. A Playground lets you try a search.
Answer cards: when a message asks you something and your reply is still empty, Cotabby drafts an answer from memory.
- The draft appears on a card with the messages it is based on. Tab inserts it; Esc dismisses it.
- It only answers from facts it found. It abstains rather than guess, and treats the question as untrusted text.
- "Are you free Thursday?" is answered from your calendar, with busy and free times only, never what or with whom.
- It uses Apple Intelligence or the local model, never the remote endpoint.
Other additions (also offered upstream as pull requests):
- Translation of incoming messages, and of your replies.
- Typing history that learns from what you write, with import from Cotypist.
- Per-app settings, plus turning autocomplete and translation on or off per app or per window from the field icon.
- Double-tap the Accept Word key to accept the whole suggestion.
- Turkish and Macedonian spelling dictionaries, and Apple Intelligence language-fallback settings.
- Sign-in and verification fields are left alone.
- No gray frame around the menu bar menu on macOS 27.
- This version: branch
senad. - A shareable DMG:
scripts/build_share_dmg.shbuilds one. - A release that installed copies update to:
scripts/publish_fork_release.shpublishes one.
Everything in the official README below applies too.
All credit for Cotabby itself goes to Jacob Fu and the Cotabby team. This fork follows their AGPL-3.0 license; its full source is this repository.
Cotabby adds AI autocomplete to almost any text field on your Mac. As you type, a gray suggestion appears inline next to your cursor. Press Tab to accept it a word at a time, or keep typing to ignore it.
The default Apple Intelligence and Open Source engines run on your Mac. No account or telemetry is required. An optional OpenAI-compatible engine can connect to a server you configure.
- Ghost-text autocomplete — AI suggestions inline in almost any macOS text field;
Tabaccepts a word at a time - Emoji autocomplete — type
:rocket:and accept it without leaving the field - Inline macros — type
/for quick math, unit and currency conversion, dates, and random values - One-key autocorrect — fix a likely typo with a single keystroke
- Prediction controls — choose whether to predict ahead, suggest within words, and show following words
- Optional screen context — control visual context independently of the local prediction settings
Privacy is the whole point, so Cotabby's default engines keep generation on your Mac:
- Apple Intelligence and Open Source generation run on-device.
- The optional OpenAI-compatible engine sends a bounded request only to the endpoint you configure; that endpoint can be loopback, on your local network, or a public HTTPS service.
- No analytics, no telemetry, no crash reporting.
- A normal install never writes what you type to disk.
- Apart from a configured endpoint, the network is used for model downloads and update checks, not suggestion generation.
Cotabby generates suggestions in three ways. You choose which in Settings → Engine:
- Apple Intelligence — Apple's model, built into macOS 26 or later on supported Macs. Nothing to download.
- Open Source — a small AI model you download that runs entirely on your Mac. Works on any supported Mac (macOS 14+), with or without Apple Intelligence.
- OpenAI-compatible — a completion or chat endpoint you configure, including local Ollama, another LAN host, or a public HTTPS service. Endpoint credentials are stored in Keychain.
If your Mac supports Apple Intelligence, that's the easiest place to start. Otherwise, use the Open Source engine and pick one of the built-in models:
| Model | Size | Good for |
|---|---|---|
tabby-2-nano |
~0.8 GB | Older or low-memory Macs; fastest |
tabby-2-mini |
~1.4 GB | A solid everyday balance |
tabby-2-base |
~4.5 GB | Higher-quality suggestions |
tabby-2-pro |
~5.0 GB | Best quality |
Download any of them straight from Cotabby's menu bar.
Advanced: model files, custom models, and how generation works
Under the hood, the Open Source engine runs local GGUF base models in-process through llama.cpp (via CotabbyInference). Instead of prompting an instruction-tuned chat model, Cotabby treats the model as a pure text continuer and conditions it on your name, writing style, language, and on-screen context.
| Model | File | Size | Source |
|---|---|---|---|
tabby-2-nano |
Qwen3.5-0.8B-Base.i1-Q6_K.gguf |
~0.8 GB | Hugging Face |
tabby-2-mini |
Qwen3.5-2B-Base.i1-Q4_K_M.gguf |
~1.4 GB | Hugging Face |
tabby-2-base |
gemma-4-E2B.i1-Q6_K.gguf |
~4.5 GB | Hugging Face |
tabby-2-pro |
gemma-4-E4B.i1-Q4_K_M.gguf |
~5.0 GB | Hugging Face |
Bring your own model. Any GGUF small enough to run on-device works. Drop a .gguf file into Cotabby's models folder and refresh the model list from the menu bar. Browse the unsloth GGUF collection for more variants — smaller quants (Q3_K_M, Q4_K_S) trade quality for size; larger models give better completions at the cost of memory and per-token latency.
For the full suggestion pipeline, see ARCHITECTURE.md.
Compatibility: macOS 14.0 or later. The Apple Intelligence engine needs macOS 26 or later on a supported Mac; on older systems, use the Open Source engine.
brew tap FuJacob/cotabby
brew install --cask cotabbyUpgrade later with brew upgrade --cask cotabby. The tap lives at FuJacob/homebrew-cotabby.
Grab the latest release from cotabby.app and drag Cotabby into your Applications folder.
Start typing in almost any text field. When a gray suggestion appears:
Tab— accept the next word. (Prefer whole phrases? Switch this in Settings → Acceptance Mode.)`(backtick) — accept the entire suggestion at once.Esc, or just keep typing — dismiss it.
Every shortcut is rebindable under Settings → Shortcuts.
Cotabby works inside other apps, so macOS asks for a few permissions. Each one maps to a specific feature, and Cotabby walks you through them on first launch:
- Accessibility — read the text and cursor position in the field you're typing in, and insert what you accept.
- Input Monitoring — notice your typing so it knows when to suggest, and detect the accept keys.
- Screen Recording (optional) — capture the area around your cursor for visual context, and to match the ghost text's font, size, and position to the app's own text where the app doesn't report them. Leave it off and everything else still works.
Cotabby blocks generation, presentation, and insertion in password and other secure fields.
Requires Xcode and Command Line Tools. Apple Silicon is strongly recommended for local model performance. For setup, build, test, and contribution workflow details, start with CONTRIBUTING.md.
git clone https://github.com/FuJacob/cotabby.git Cotabby
cd Cotabby
scripts/prepare_cotabby_workspace.sh
open build/cotabby-dependencies/Cotabby.xcworkspaceUse the Cotabby Dev scheme for local work. The workspace temporarily supplies the native APIs in our pending CotabbyInference patch; preparation is automatic in CI and release builds.
If you want to understand the runtime and suggestion pipeline before contributing, read ARCHITECTURE.md.
Contributions are welcome. See CONTRIBUTING.md for setup, build, and PR guidelines, and CODE_OF_CONDUCT.md for community expectations. For a tour of the runtime and suggestion pipeline, read ARCHITECTURE.md.
- llama.cpp, CotabbyInference, Sparkle, and swift-log for runtime, updates, and logging.
- LaunchAtLogin for macOS login-item integration.
- Apple's FoundationModels, Accessibility, SwiftUI, and AppKit for on-device generation and macOS integration.
- GitHub gemoji and Hugging Face for the emoji data and downloadable models.
- SymSpell by Wolf Garbe (MIT) for multilingual autocorrect; frequency dictionaries derive from Google Ngrams (CC BY 3.0) and licensed SCOWL/Hunspell word lists.
- Everyone who filed issues, tested prereleases, and sent pull requests.
Originally created by @FuJacob, now developed and maintained by @FuJacob, @jam-cai. and @akramj13
Cotabby is licensed under the GNU Affero General Public License v3.0. You can use, study, modify, and redistribute the app, but if you distribute a modified version or make one available to users over a network, you must provide the corresponding source code under the same license.
Third-party dependencies, emoji data, and downloadable model weights keep their own licenses and usage terms. Bundled third-party notices (SymSpell and the autocorrect frequency dictionary) are reproduced in THIRD_PARTY_LICENSES.md.





