The local AI app built for the Mac. Runs models far bigger than your Mac's memory.
Download · Website · Benchmarks · Contribute · Discussions
TUFF runs language models on Apple Silicon Macs. The app is SwiftUI and the engine is my own, written in Swift and Metal. It's open source, and nothing you type leaves your Mac unless you turn on web search.
Qwen3.8 Flash Next is a 111 GB model, and TUFF runs it on a 16 GB MacBook Air. TUFF keeps a mixture-of-experts model's experts on the SSD and reads only the few each token needs. GPT-OSS 120B and MiniMax M2.7 run the same way. On that Air, Flash Next writes about 1.7 tokens a second; smaller models are much faster. The benchmarks show how each model runs on real Macs.
You need an Apple Silicon Mac on macOS 15 or newer.
- Download the ZIP from the latest release,
unzip it and move
TUFF.appto Applications. - Open TUFF, go to Models and install one. Gemma 4 E2B is a quick first download.
TUFF isn't notarized, so the first time, Control-click the app and choose
Open. Or use Homebrew, which also adds the tuff command:
brew tap rexmhall09/tuff https://github.com/rexmhall09/TUFF.git
brew install --cask rexmhall09/tuff/tuffTUFF updates itself. If an update stops it from opening, see recovery.
- Chat with reasoning, Markdown, math, and image and file attachments. Going back to a recent chat continues from where the model left off instead of reading the whole conversation again.
- Web and Files search. Off until you turn them on. The model can search the web or folders you pick, and cites what it used. How search works.
- Benchmarks. Measure any installed model on your Mac and share the result on the leaderboard. How benchmarks work.
- Background API. A local OpenAI-compatible server for agents and other apps. It loads whichever installed model a request names. Server and API.
| Model | Download | Minimum memory | Images |
|---|---|---|---|
| Gemma 4 E2B | 2.6 GB | 8 GB | Optional |
| Gemma 4 E4B | 4.2 GB | 8 GB | Optional |
| Gemma 4 12B QAT | 11.0 GB | 16 GB | Optional |
| Gemma 4 26B-A4B | 14.3 GB | 8 GB | Optional |
| Qwen3.6 35B-A3B | 19.6 GB | 8 GB | Optional |
| GPT-OSS 20B | 13.8 GB | 16 GB | No |
| GPT-OSS 120B | 65.3 GB | 16 GB | No |
| MiniMax M2.7 | 128.7 GB | 16 GB, M2 or newer | No |
| Qwen3.8 Flash Next | 110.9 GB | 16 GB, M2 or newer | Optional |
I test releases on a 16 GB M2 MacBook Air. Numbers for other Macs come from people's benchmarks. Images need an M2 or newer.
| TUFF | LM Studio | Ollama | Colibrì | TurboFieldfare | |
|---|---|---|---|---|---|
| Built only for Apple Silicon Macs | ✅ | ❌ | ❌ | ❌ | ✅ |
| Desktop chat app | ✅ | ✅ | ✅ | ◐ | ✅ |
| Built-in web search in chat | ✅ | ❌ | ◐ | ❌ | ❌ |
| Search your own folders from chat | ✅ | ◐ | ❌ | ❌ | ❌ |
| Local OpenAI-compatible server | ✅ | ✅ | ✅ | ✅ | ◐ |
| Command-line tools | ✅ | ✅ | ✅ | ✅ | ✅ |
| Image input | ✅ | ✅ | ✅ | ✅ | ✅ |
| Dense models | ✅ | ✅ | ✅ | ✅ | ❌ |
| Own engine, not MLX or llama.cpp | ✅ | ❌ | ❌ | ✅ | ✅ |
| Streams MoE experts from disk | ✅ | ❌ | ❌ | ✅ | ✅ |
| Open-source desktop app | ✅ | ❌ | ✅ | ✅ | ✅ |
| Windows and Linux | ❌ | ✅ | ✅ | ✅ | ❌ |
| Models | 9 | GGUF / MLX catalog | Model library | 13 engines, mostly MoE | Gemma 26B |
✅ yes · ◐ partly · ❌ no. Checked against each project's docs on October 8, 2026.
- Web search: TUFF uses DuckDuckGo with no account, or Brave or Tavily with your key. Ollama's web search is a hosted API that needs an Ollama account. LM Studio has none built in, but you can add it with MCP servers.
- Folders: LM Studio can chat with documents you attach, which covers some of the same ground.
- Streaming means a fixed-size expert cache, not OS paging or CPU offload. LM Studio and Ollama have much bigger model libraries.
- Colibrì also streams experts and runs Flash Next, on more platforms. TurboFieldfare is where TUFF started.
This compares features only. I haven't benchmarked these against each other.
The app includes the tuff command:
tuff prompt "Explain mixture-of-experts models in two sentences."
tuff bench --models gemma4,qwen36 --share
tuff serve --port 8080tuff serve runs the same server as the Background API. It only listens on
your Mac and has no authentication. OMP setup is a tested
coding-agent config.
You need Xcode with Swift 6.2 or newer (I build with Xcode 27).
git clone https://github.com/rexmhall09/TUFF.git
cd TUFF
swift build -c release
.build/release/TUFFClone builds keep models and chats in scratch/, so they don't touch an
installed copy. Scripts/test.sh runs the tests; none need a model.
How TUFF works explains the engine and maps the
code.
The easiest way to help is to run a benchmark on your Mac and share it. There are also good first issues, a roadmap, and Discussions for questions and ideas. CONTRIBUTING.md explains the rest.
TUFF began as a fork of drumih/turbo-fieldfare by Andrey Mikhaylov, which built the original Gemma runtime and expert streaming. TUFF is Apache 2.0. Model weights keep their own terms; other credits are in THIRD_PARTY_NOTICES.md. Security issues go to private reporting.
