nicedreamzapp/claude-code-local

Run Claude Code 100% on-device with local AI on Apple Silicon. MLX-native Anthropic-API server. 6 fighters incl. Muse-Glimmer 30B (now multimodal โ€” reads images, abliterated), Gemma 4 31B, Qwen 3.5 122B (65 tok/s), DeepSeek V4 Flash (1M ctx). Private, offline, airgap-ready. Built for NDA / legal / healthcare workflows.

Python

3,351

63 commits

updated Oct 11, 2026

See the code

README

๐Ÿง โšก Claude Code Local

Claude Code, running on your own Mac. No cloud. No API key. No waiting.

Your Mac's chip runs the AI ยท Claude Code works exactly like it always does ยท nothing leaves your computer

Mentioned in Awesome Claude Code

GitHub stars Apple Silicon 100% Local Best with Trinidad Head MIT Discord

In one sentence: a small Python server (proxy/server.py) runs open AI models on your Mac's chip with Apple's MLX and answers Claude Code in Anthropic's own API format, so Claude Code works with no cloud model and no API key.

Other things I built that go with it are in the local-first family.

Claude Code editing a file with Gemma 4 31B running locally on a Mac, no cloud
A real session, unedited. Claude Code reads and edits the file, and the AI answering is running on the laptop.


๐Ÿ› ๏ธ What I built

Matt Macosko wrote the glue that makes local models usable inside Claude Code. The pieces in this repo:

  • โšก proxy/server.py: the MLX server. Speaks the Anthropic Messages API with streaming, turns each model's own tool-call format (Gemma 4, Qwen, Llama JSON) into Claude Code tool calls, repairs garbled tool JSON, and reuses the prompt cache between turns so long sessions don't re-read everything.
  • ๐Ÿงช scripts/test_parse_tool_calls.py and scripts/test_mlx_server.py: tests for the tool-call parser (no model needed) and for multi-step tool calls against a running server.
  • ๐ŸŽ๏ธ agent/agent.py: the Native Engine, a one-file terminal coding agent with a short fixed system prompt so the cache survives every turn. bench/agent_bench.py reproduces its cache numbers.
  • ๐Ÿ”‹ bin/keepgoing + bin/keepgoing.py: finds your last Claude Code conversation in this folder and resumes it on a free cloud or local model.
  • ๐Ÿš€ install.sh, setup.sh and scripts/doctor.sh: check the Mac, pick a model that fits its memory, install everything and make a Desktop launcher.
  • ๐ŸŽฎ launchers/ with the shared launchers/lib/claude-local-common.sh: the double-click modes below.

Upstream, not mine: Claude Code (Anthropic), MLX and mlx-lm (Apple), and the models themselves (Google, Qwen, Nous Research and the others credited below). Contributors who fixed things are named at the bottom.


๐Ÿ›‘ Hit your Claude usage limit?

Claude Code just said "you've reached your usage limit" and the reset is hours away? Keep working: same Claude Code, same project, but the AI answering runs on your own Mac.

curl -fsSL https://raw.githubusercontent.com/nicedreamzapp/claude-code-local/main/install.sh | bash

That's it. It even works on a 16 GB MacBook, and gets better the more memory your Mac has.

Once it's running, the local-first family takes it off the keyboard: your browser, your voice, your phone, all on the same machine.


๐ŸŒŠ Use it with Trinidad Head

Trinidad Head is the recommended terminal for running local models, on Mac and PC. It's built from scratch by the same person who made this project, and it makes long local-AI sessions nicer:

  • ๐ŸชŸ Glass windows with a soft neon glow, rounded and easy on the eyes
  • ๐ŸŒˆ A different color for every window, so you can tell your local-model windows apart at a glance
  • ๐Ÿ”  Bigger, easy-to-read text
  • ๐Ÿ’ฌ Your own prompts stand out in a soft bubble, so you can find what you asked when you scroll back
  • ๐Ÿ–ฑ๏ธ Copy and paste just work, even under Claude Code's calm focus view

Three Trinidad Head windows, each glowing a different color

๐Ÿ‘‰ Get Trinidad Head ยท project page


๐Ÿ”‹ Out of Claude credits? Keep going.

When Claude runs out, type exit in Claude Code, then keep going. You get a short menu, and the same conversation carries on with whichever model you pick:

  • โ˜๏ธ Free cloud models from OpenRouter (add a free key, see below)
  • ๐Ÿ’ป Models on your Mac from the lineup below, sized to fit your memory

The keep going menu: free cloud and local models to continue a Claude conversation

setup.sh installs it for you. To add it by hand, or to turn on the free cloud models:

echo 'source "$HOME/claude-code-local/scripts/keepgoing-shell.sh"' >> ~/.zshrc   # the "keep going" command
mkdir -p ~/.config/claude-code-local
echo 'OPENROUTER_API_KEY=your-free-key' >> ~/.config/claude-code-local/keepgoing.env   # optional

Want a reminder at the bottom of every Claude window? Point your status line at scripts/statusline-keepgoing.sh. It says "๐Ÿ’ก Out of Claude credits? Type exit, then keep going to carry on with a free or local model."

๐Ÿ’ก Free cloud models can get busy later in the day. The models on your Mac are always there.


๐Ÿค” What is this, really?

Your Mac has a powerful graphics chip built in. This project uses it to run big AI models right on your computer and plugs them into Claude Code, so the whole coding experience works offline: editing files, managing projects, even driving your browser or talking out loud.

The trick: Claude Code speaks one language (Anthropic's), and local AI servers usually speak another (OpenAI's). Most setups put a slow translator in between. This project's server speaks Claude Code's language directly, so there's nothing in the middle, and that's what makes it fast.

๐Ÿ“ You  โ”€โ”€โ–ถ  ๐Ÿค– Claude Code  โ”€โ”€โ–ถ  โšก this server (on your Mac)  โ”€โ”€โ–ถ  ๐Ÿง  local model  โ”€โ”€โ–ถ  ๐Ÿ–ฅ๏ธ your Mac's chip

๐Ÿ’ป What you need

  • ๐ŸŽ A Mac with Apple Silicon (M1 or newer)
  • ๐Ÿ Python 3.12 (setup installs it for you)
  • ๐Ÿค– Claude Code: npm install -g @anthropic-ai/claude-code

Setup looks at your Mac's memory and picks a model that fits:

Your Mac's memoryThe model you get
Under 16 GB (8 GB)Gemma 4 E4B. It loads and chats, but in our Claude Code test it claimed to run a file it never wrote, so expect tool trouble
16 GB (MacBook Air, base models)๐ŸŸก Hermes 4 14B, confirmed on a 16 GB Mac by a user (#54)
32โ€“63 GB (Pro)๐ŸŸข Gemma 4 12B
64โ€“95 GB (Max)๐ŸŸข Gemma 4 31B
96 GB and up (Max, Ultra)๐ŸŸฃ Qwen 3.8 27B, 8-bit. Passed our Claude Code test (write a file, run it, report) in 38 s

๐Ÿš€ Get started

One command:

curl -fsSL https://raw.githubusercontent.com/nicedreamzapp/claude-code-local/main/install.sh | bash

Or read the script first:

git clone https://github.com/nicedreamzapp/claude-code-local
cd claude-code-local
bash setup.sh

Setup picks your model, downloads it, installs the server, and puts Claude Local.command on your Desktop. Double-click it and you're coding locally. ๐ŸŽ‰

๐Ÿ› Asked to sign in to a Claude account? Your claude is too old. Update it: npm install -g @anthropic-ai/claude-code

๐Ÿ› ๏ธ Prefer to do it by hand?
# 1. Set up the MLX environment
python3.12 -m venv ~/.local/mlx-server
~/.local/mlx-server/bin/pip install mlx-lm

# 2. Pick a model and download it (one time)
bash scripts/download-and-import.sh gemma   # or 'qwen', 'gemma12', 'hermes'

# 3. Start the server (MLX_SERVER points at the repo copy, since setup.sh didn't install one)
MLX_MODEL=divinetribe/gemma-4-31b-it-abliterated-4bit-mlx \
MLX_SERVER="$PWD/proxy/server.py" \
  bash scripts/start-mlx-server.sh

# 4. Launch Claude Code against it
ANTHROPIC_BASE_URL=http://localhost:4000 \
ANTHROPIC_API_KEY=sk-local \
claude --model claude-sonnet-4-6

setup.sh installs the server as a symlink back to proxy/server.py in this repo, so if you edit it, just restart the server.


๐ŸฅŠ Pick your AI

Same server, same Claude Code. Swap one setting and you swap the brain. Links to every build are just below the table.

Every number below was measured by us on an M5 Max (128 GB), except the rows marked vendor-reported.

ModelWhat we measuredGood for
๐ŸŸฃQwen 3.8 27BAgent-12 with the DFlash 2 drafter (8-bit, Sep 19): 12/12 easy in 122 s, 7/8 hard in 401 s, 20-29 tok/s inside the harness (writeup). Browser test (Sep 16, bf16): 8/8Careful coding and pictures, 96 GB Macs
๐ŸŸขGemma 4 31B (4-bit)Agent-12: 11/12, 8/8. Browser test (Sep 16): 8/8, about 30% faster than Qwen 3.8Daily coding and the browser agent
๐ŸŸขGemma 4 12B (4-bit)Not on Agent-12 yet32 GB Macs
๐ŸŸกHermes 4 14B (4-bit)Not on Agent-12 yet. Runs on a 16 GB Mac (#54)16 GB MacBooks
โœจMuse Glimmer 30B, Nemotron 3 Nano OmniVendor-reported numbers only, until we run them ourselvesPictures (and audio, for Nemotron)

Which one should I run? We test them on real agent tasks in the open: the Agent-12 leaderboard. Honest note: those scores come from Agent-12's own lean test harness (Anvil), not from inside Claude Code. Claude Code sends the model a lot more per turn, so the same model can score and time differently here.

Sizes, speeds and memory needs for every model are in the full guide.

๐Ÿค— Good builds from other people

These are the original releases and the MLX builds we have run ourselves. Credit to the teams who made them.

โš ๏ธ "Abliterated" models have their built-in refusals turned down. That's not a general upgrade, and each model's own license still applies. Please use them responsibly.


๐ŸŽฎ Ways to use it

Code and Native Engine need only what setup installs (a launcher for a model you don't have yet downloads it on first launch). The other three need one extra piece that setup.sh does not install, named in each row.

ModeWhat it does
๐Ÿค–CodeClaude Code with a local model: Claude Local, Gemma 4 Code, Qwen 3.8 Code
โšกNative EngineOur own lightweight agent for the fastest replies: the (Native Engine) launchers
๐ŸŒBrowserThe local AI drives your real Brave browser: Browser Agent (guide). Needs browser-agent installed
๐ŸŽคHands-free voiceTalk to it and hear it answer in your own voice: Narrative Gemma (guide). Needs a speak command (macOS say works as a stand-in)
๐Ÿ“ฑPhoneText your Mac from your iPhone and get answers back (guide). No launcher here: the iMessage scripts live in claude-screen-to-phone

๐Ÿงฉ The local-first family

The modes above aren't bolted on. Each one is its own repo that works on its own, and they all run on your hardware. If Claude Code on your own Mac was the part you wanted, this is the rest of it.

ProjectWhat it does
๐ŸŒŠTrinidad HeadA terminal for Mac and Windows, written from scratch in Rust, that gives every window its own glow color and puts your own prompts in a bubble so they are easy to find
๐ŸŽคNarrateClaudeA hands-free voice loop for Claude Code on macOS that turns your speech into text on the Mac, types it into the Terminal running claude, and reads the replies aloud
๐ŸŒbrowser-agentAn agent that takes a task in plain English and carries it out in your real Brave browser and your shell, with the model running on your Mac
๐Ÿšฆbrowser-brokerA local proxy on Chrome's debug port that gives each AI agent its own tab in your real, logged-in browser, so agents can't grab each other's tabs or yours
๐Ÿ“ฑclaude-screen-to-phonemacOS scripts that let you text commands from your iPhone into a Claude Code session on your Mac and get text, images and video back in iMessage
๐Ÿ–ฅ๏ธFiaOSA small self-hosted Python web server that gives you a computer's live screen and a real terminal in any browser, on macOS and Windows
๐ŸŒ™MoonstoneA local voice control panel that puts every Claude Code session on every machine you own in one browser window, with answers read back to you
๐Ÿ›Ÿclaude-failoverTwo small scripts that send your headless claude -p calls to a local MLX model when you flip one switch, and back to Claude when you flip it again
๐Ÿ‘๏ธnemotron-omni-mlxAn MLX runtime for the vision and audio towers of NVIDIA's Nemotron 3 Nano Omni, so it can take images, video and audio on an Apple Silicon Mac, not only text
๐ŸAgent-12The leaderboard the model table above is scored on: it runs local models through real agent tasks in throwaway sandboxes and checks the files they leave behind
๐ŸŽฌstory-forgeA pipeline that turns a written story into a finished video on an Apple Silicon Mac, with local models making the stills, motion, voices and music
๐Ÿ“ทRealTimeAICamA free iPhone and Android app that names objects, reads text and describes the scene out loud, with the models running on the phone

๐Ÿ”’ Your code stays home

Your code never leaves your Mac. No cloud model, no tracking, no "anonymous analytics".

The launchers switch off Claude Code's own background internet traffic with Anthropic's documented settings (thanks @tadrianonet, PR #32):

CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
DISABLE_AUTOUPDATER=1
CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1

Check it yourself: during a session, lsof -a -i -p "$(pgrep -d, -f claude)" lists the network connections of every Claude process, and the only one is localhost:4000.

๐Ÿงน We removed LiteLLM after supply-chain concerns and re-checked every dependency. Anything with unexplained network calls didn't ship. The full audit is in the full guide.

โ˜๏ธ The one exception is your own choice: picking a free cloud model in keep going sends that conversation to OpenRouter.


๐Ÿ“š Want the details?

๐Ÿ“– Full technical guideEvery model table, benchmark, tuning setting and design note
๐Ÿ“Š Benchmarks ยท ๐Ÿ”ง Tool-call reliabilityThe numbers and how they were measured
๐ŸŽค Voice mode ยท ๐ŸŒ Browser agent ยท ๐Ÿ“ฑ Phone control ยท ๐Ÿ”Œ MCP serversEverything the launchers can do
๐Ÿ“ What's in this repo ยท ๐Ÿ™ CreditsThe tour and the thank-yous

๐Ÿงญ Other ways to do this

This isn't the only way to run Claude Code against models you choose, and some of these may fit you better:

  • Ollama speaks the Anthropic Messages API natively since v0.14, so Claude Code can point straight at it. The simplest route if you already use Ollama, and it isn't limited to Macs.
  • claude-code-router routes Claude Code's requests across many providers and models, local or cloud. Good if you want to mix models per task.
  • claude-code-proxy translates Claude Code's requests to OpenAI-style APIs. Handy if your model already sits behind an OpenAI-compatible server.

What this repo adds is an MLX-native server tuned for Apple Silicon and for the tool-call formats local models actually emit.


๐Ÿค Help make it better

Ideas, bug reports, a launcher for a model we don't run: open an issue or a PR, every one gets read. CONTRIBUTING.md has how to run it from the repo and the tests. We especially love hearing from people on older or smaller Macs about which models really fit.

Thank you, contributors: @0xshugo ยท @asdmoment ยท @kulveersingh ยท @tripathiprateek ยท @tadrianonet ยท @kevbarns ยท @KaoCSC ยท @zwolf25. What each of them fixed is in the full guide.


Built by Matt Macosko in Humboldt, California. Open to work on local AI and Apple Silicon: matt@ineedhemp.com

Nice Dreamz software ยท YouTube demos ยท Discord

๐Ÿ“œ MIT License, use it however you want. โญ Star the repo if it helped you!

abliterated
ai-privacy
airgap
ambient-computing
anthropic
apple-silicon
browser-agent
claude-code
gemma
llama
local-ai
local-llm
macos
mlx
mlx-lm
offline-ai
on-device-ai
private-ai
qwen
voice-ai

nicedreamzapp/claude-code-local

Run Claude Code 100% on-device with local AI on Apple Silicon. MLX-native Anthropic-API server. 6 fighters incl. Muse-Glimmer 30B (now multimodal โ€” reads images, abliterated), Gemma 4 31B, Qwen 3.5 122B (65 tok/s), DeepSeek V4 Flash (1M ctx). Private, offline, airgap-ready. Built for NDA / legal / healthcare workflows.

Python

3,351

63 commits

updated Oct 11, 2026

See the code

README

๐Ÿง โšก Claude Code Local

Claude Code, running on your own Mac. No cloud. No API key. No waiting.

Your Mac's chip runs the AI ยท Claude Code works exactly like it always does ยท nothing leaves your computer

Mentioned in Awesome Claude Code

GitHub stars Apple Silicon 100% Local Best with Trinidad Head MIT Discord

In one sentence: a small Python server (proxy/server.py) runs open AI models on your Mac's chip with Apple's MLX and answers Claude Code in Anthropic's own API format, so Claude Code works with no cloud model and no API key.

Other things I built that go with it are in the local-first family.

Claude Code editing a file with Gemma 4 31B running locally on a Mac, no cloud
A real session, unedited. Claude Code reads and edits the file, and the AI answering is running on the laptop.


๐Ÿ› ๏ธ What I built

Matt Macosko wrote the glue that makes local models usable inside Claude Code. The pieces in this repo:

  • โšก proxy/server.py: the MLX server. Speaks the Anthropic Messages API with streaming, turns each model's own tool-call format (Gemma 4, Qwen, Llama JSON) into Claude Code tool calls, repairs garbled tool JSON, and reuses the prompt cache between turns so long sessions don't re-read everything.
  • ๐Ÿงช scripts/test_parse_tool_calls.py and scripts/test_mlx_server.py: tests for the tool-call parser (no model needed) and for multi-step tool calls against a running server.
  • ๐ŸŽ๏ธ agent/agent.py: the Native Engine, a one-file terminal coding agent with a short fixed system prompt so the cache survives every turn. bench/agent_bench.py reproduces its cache numbers.
  • ๐Ÿ”‹ bin/keepgoing + bin/keepgoing.py: finds your last Claude Code conversation in this folder and resumes it on a free cloud or local model.
  • ๐Ÿš€ install.sh, setup.sh and scripts/doctor.sh: check the Mac, pick a model that fits its memory, install everything and make a Desktop launcher.
  • ๐ŸŽฎ launchers/ with the shared launchers/lib/claude-local-common.sh: the double-click modes below.

Upstream, not mine: Claude Code (Anthropic), MLX and mlx-lm (Apple), and the models themselves (Google, Qwen, Nous Research and the others credited below). Contributors who fixed things are named at the bottom.


๐Ÿ›‘ Hit your Claude usage limit?

Claude Code just said "you've reached your usage limit" and the reset is hours away? Keep working: same Claude Code, same project, but the AI answering runs on your own Mac.

curl -fsSL https://raw.githubusercontent.com/nicedreamzapp/claude-code-local/main/install.sh | bash

That's it. It even works on a 16 GB MacBook, and gets better the more memory your Mac has.

Once it's running, the local-first family takes it off the keyboard: your browser, your voice, your phone, all on the same machine.


๐ŸŒŠ Use it with Trinidad Head

Trinidad Head is the recommended terminal for running local models, on Mac and PC. It's built from scratch by the same person who made this project, and it makes long local-AI sessions nicer:

  • ๐ŸชŸ Glass windows with a soft neon glow, rounded and easy on the eyes
  • ๐ŸŒˆ A different color for every window, so you can tell your local-model windows apart at a glance
  • ๐Ÿ”  Bigger, easy-to-read text
  • ๐Ÿ’ฌ Your own prompts stand out in a soft bubble, so you can find what you asked when you scroll back
  • ๐Ÿ–ฑ๏ธ Copy and paste just work, even under Claude Code's calm focus view

Three Trinidad Head windows, each glowing a different color

๐Ÿ‘‰ Get Trinidad Head ยท project page


๐Ÿ”‹ Out of Claude credits? Keep going.

When Claude runs out, type exit in Claude Code, then keep going. You get a short menu, and the same conversation carries on with whichever model you pick:

  • โ˜๏ธ Free cloud models from OpenRouter (add a free key, see below)
  • ๐Ÿ’ป Models on your Mac from the lineup below, sized to fit your memory

The keep going menu: free cloud and local models to continue a Claude conversation

setup.sh installs it for you. To add it by hand, or to turn on the free cloud models:

echo 'source "$HOME/claude-code-local/scripts/keepgoing-shell.sh"' >> ~/.zshrc   # the "keep going" command
mkdir -p ~/.config/claude-code-local
echo 'OPENROUTER_API_KEY=your-free-key' >> ~/.config/claude-code-local/keepgoing.env   # optional

Want a reminder at the bottom of every Claude window? Point your status line at scripts/statusline-keepgoing.sh. It says "๐Ÿ’ก Out of Claude credits? Type exit, then keep going to carry on with a free or local model."

๐Ÿ’ก Free cloud models can get busy later in the day. The models on your Mac are always there.


๐Ÿค” What is this, really?

Your Mac has a powerful graphics chip built in. This project uses it to run big AI models right on your computer and plugs them into Claude Code, so the whole coding experience works offline: editing files, managing projects, even driving your browser or talking out loud.

The trick: Claude Code speaks one language (Anthropic's), and local AI servers usually speak another (OpenAI's). Most setups put a slow translator in between. This project's server speaks Claude Code's language directly, so there's nothing in the middle, and that's what makes it fast.

๐Ÿ“ You  โ”€โ”€โ–ถ  ๐Ÿค– Claude Code  โ”€โ”€โ–ถ  โšก this server (on your Mac)  โ”€โ”€โ–ถ  ๐Ÿง  local model  โ”€โ”€โ–ถ  ๐Ÿ–ฅ๏ธ your Mac's chip

๐Ÿ’ป What you need

  • ๐ŸŽ A Mac with Apple Silicon (M1 or newer)
  • ๐Ÿ Python 3.12 (setup installs it for you)
  • ๐Ÿค– Claude Code: npm install -g @anthropic-ai/claude-code

Setup looks at your Mac's memory and picks a model that fits:

Your Mac's memoryThe model you get
Under 16 GB (8 GB)Gemma 4 E4B. It loads and chats, but in our Claude Code test it claimed to run a file it never wrote, so expect tool trouble
16 GB (MacBook Air, base models)๐ŸŸก Hermes 4 14B, confirmed on a 16 GB Mac by a user (#54)
32โ€“63 GB (Pro)๐ŸŸข Gemma 4 12B
64โ€“95 GB (Max)๐ŸŸข Gemma 4 31B
96 GB and up (Max, Ultra)๐ŸŸฃ Qwen 3.8 27B, 8-bit. Passed our Claude Code test (write a file, run it, report) in 38 s

๐Ÿš€ Get started

One command:

curl -fsSL https://raw.githubusercontent.com/nicedreamzapp/claude-code-local/main/install.sh | bash

Or read the script first:

git clone https://github.com/nicedreamzapp/claude-code-local
cd claude-code-local
bash setup.sh

Setup picks your model, downloads it, installs the server, and puts Claude Local.command on your Desktop. Double-click it and you're coding locally. ๐ŸŽ‰

๐Ÿ› Asked to sign in to a Claude account? Your claude is too old. Update it: npm install -g @anthropic-ai/claude-code

๐Ÿ› ๏ธ Prefer to do it by hand?
# 1. Set up the MLX environment
python3.12 -m venv ~/.local/mlx-server
~/.local/mlx-server/bin/pip install mlx-lm

# 2. Pick a model and download it (one time)
bash scripts/download-and-import.sh gemma   # or 'qwen', 'gemma12', 'hermes'

# 3. Start the server (MLX_SERVER points at the repo copy, since setup.sh didn't install one)
MLX_MODEL=divinetribe/gemma-4-31b-it-abliterated-4bit-mlx \
MLX_SERVER="$PWD/proxy/server.py" \
  bash scripts/start-mlx-server.sh

# 4. Launch Claude Code against it
ANTHROPIC_BASE_URL=http://localhost:4000 \
ANTHROPIC_API_KEY=sk-local \
claude --model claude-sonnet-4-6

setup.sh installs the server as a symlink back to proxy/server.py in this repo, so if you edit it, just restart the server.


๐ŸฅŠ Pick your AI

Same server, same Claude Code. Swap one setting and you swap the brain. Links to every build are just below the table.

Every number below was measured by us on an M5 Max (128 GB), except the rows marked vendor-reported.

ModelWhat we measuredGood for
๐ŸŸฃQwen 3.8 27BAgent-12 with the DFlash 2 drafter (8-bit, Sep 19): 12/12 easy in 122 s, 7/8 hard in 401 s, 20-29 tok/s inside the harness (writeup). Browser test (Sep 16, bf16): 8/8Careful coding and pictures, 96 GB Macs
๐ŸŸขGemma 4 31B (4-bit)Agent-12: 11/12, 8/8. Browser test (Sep 16): 8/8, about 30% faster than Qwen 3.8Daily coding and the browser agent
๐ŸŸขGemma 4 12B (4-bit)Not on Agent-12 yet32 GB Macs
๐ŸŸกHermes 4 14B (4-bit)Not on Agent-12 yet. Runs on a 16 GB Mac (#54)16 GB MacBooks
โœจMuse Glimmer 30B, Nemotron 3 Nano OmniVendor-reported numbers only, until we run them ourselvesPictures (and audio, for Nemotron)

Which one should I run? We test them on real agent tasks in the open: the Agent-12 leaderboard. Honest note: those scores come from Agent-12's own lean test harness (Anvil), not from inside Claude Code. Claude Code sends the model a lot more per turn, so the same model can score and time differently here.

Sizes, speeds and memory needs for every model are in the full guide.

๐Ÿค— Good builds from other people

These are the original releases and the MLX builds we have run ourselves. Credit to the teams who made them.

โš ๏ธ "Abliterated" models have their built-in refusals turned down. That's not a general upgrade, and each model's own license still applies. Please use them responsibly.


๐ŸŽฎ Ways to use it

Code and Native Engine need only what setup installs (a launcher for a model you don't have yet downloads it on first launch). The other three need one extra piece that setup.sh does not install, named in each row.

ModeWhat it does
๐Ÿค–CodeClaude Code with a local model: Claude Local, Gemma 4 Code, Qwen 3.8 Code
โšกNative EngineOur own lightweight agent for the fastest replies: the (Native Engine) launchers
๐ŸŒBrowserThe local AI drives your real Brave browser: Browser Agent (guide). Needs browser-agent installed
๐ŸŽคHands-free voiceTalk to it and hear it answer in your own voice: Narrative Gemma (guide). Needs a speak command (macOS say works as a stand-in)
๐Ÿ“ฑPhoneText your Mac from your iPhone and get answers back (guide). No launcher here: the iMessage scripts live in claude-screen-to-phone

๐Ÿงฉ The local-first family

The modes above aren't bolted on. Each one is its own repo that works on its own, and they all run on your hardware. If Claude Code on your own Mac was the part you wanted, this is the rest of it.

ProjectWhat it does
๐ŸŒŠTrinidad HeadA terminal for Mac and Windows, written from scratch in Rust, that gives every window its own glow color and puts your own prompts in a bubble so they are easy to find
๐ŸŽคNarrateClaudeA hands-free voice loop for Claude Code on macOS that turns your speech into text on the Mac, types it into the Terminal running claude, and reads the replies aloud
๐ŸŒbrowser-agentAn agent that takes a task in plain English and carries it out in your real Brave browser and your shell, with the model running on your Mac
๐Ÿšฆbrowser-brokerA local proxy on Chrome's debug port that gives each AI agent its own tab in your real, logged-in browser, so agents can't grab each other's tabs or yours
๐Ÿ“ฑclaude-screen-to-phonemacOS scripts that let you text commands from your iPhone into a Claude Code session on your Mac and get text, images and video back in iMessage
๐Ÿ–ฅ๏ธFiaOSA small self-hosted Python web server that gives you a computer's live screen and a real terminal in any browser, on macOS and Windows
๐ŸŒ™MoonstoneA local voice control panel that puts every Claude Code session on every machine you own in one browser window, with answers read back to you
๐Ÿ›Ÿclaude-failoverTwo small scripts that send your headless claude -p calls to a local MLX model when you flip one switch, and back to Claude when you flip it again
๐Ÿ‘๏ธnemotron-omni-mlxAn MLX runtime for the vision and audio towers of NVIDIA's Nemotron 3 Nano Omni, so it can take images, video and audio on an Apple Silicon Mac, not only text
๐ŸAgent-12The leaderboard the model table above is scored on: it runs local models through real agent tasks in throwaway sandboxes and checks the files they leave behind
๐ŸŽฌstory-forgeA pipeline that turns a written story into a finished video on an Apple Silicon Mac, with local models making the stills, motion, voices and music
๐Ÿ“ทRealTimeAICamA free iPhone and Android app that names objects, reads text and describes the scene out loud, with the models running on the phone

๐Ÿ”’ Your code stays home

Your code never leaves your Mac. No cloud model, no tracking, no "anonymous analytics".

The launchers switch off Claude Code's own background internet traffic with Anthropic's documented settings (thanks @tadrianonet, PR #32):

CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
DISABLE_AUTOUPDATER=1
CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1

Check it yourself: during a session, lsof -a -i -p "$(pgrep -d, -f claude)" lists the network connections of every Claude process, and the only one is localhost:4000.

๐Ÿงน We removed LiteLLM after supply-chain concerns and re-checked every dependency. Anything with unexplained network calls didn't ship. The full audit is in the full guide.

โ˜๏ธ The one exception is your own choice: picking a free cloud model in keep going sends that conversation to OpenRouter.


๐Ÿ“š Want the details?

๐Ÿ“– Full technical guideEvery model table, benchmark, tuning setting and design note
๐Ÿ“Š Benchmarks ยท ๐Ÿ”ง Tool-call reliabilityThe numbers and how they were measured
๐ŸŽค Voice mode ยท ๐ŸŒ Browser agent ยท ๐Ÿ“ฑ Phone control ยท ๐Ÿ”Œ MCP serversEverything the launchers can do
๐Ÿ“ What's in this repo ยท ๐Ÿ™ CreditsThe tour and the thank-yous

๐Ÿงญ Other ways to do this

This isn't the only way to run Claude Code against models you choose, and some of these may fit you better:

  • Ollama speaks the Anthropic Messages API natively since v0.14, so Claude Code can point straight at it. The simplest route if you already use Ollama, and it isn't limited to Macs.
  • claude-code-router routes Claude Code's requests across many providers and models, local or cloud. Good if you want to mix models per task.
  • claude-code-proxy translates Claude Code's requests to OpenAI-style APIs. Handy if your model already sits behind an OpenAI-compatible server.

What this repo adds is an MLX-native server tuned for Apple Silicon and for the tool-call formats local models actually emit.


๐Ÿค Help make it better

Ideas, bug reports, a launcher for a model we don't run: open an issue or a PR, every one gets read. CONTRIBUTING.md has how to run it from the repo and the tests. We especially love hearing from people on older or smaller Macs about which models really fit.

Thank you, contributors: @0xshugo ยท @asdmoment ยท @kulveersingh ยท @tripathiprateek ยท @tadrianonet ยท @kevbarns ยท @KaoCSC ยท @zwolf25. What each of them fixed is in the full guide.


Built by Matt Macosko in Humboldt, California. Open to work on local AI and Apple Silicon: matt@ineedhemp.com

Nice Dreamz software ยท YouTube demos ยท Discord

๐Ÿ“œ MIT License, use it however you want. โญ Star the repo if it helped you!

abliterated
ai-privacy
airgap
ambient-computing
anthropic
apple-silicon
browser-agent
claude-code
gemma
llama
local-ai
local-llm
macos
mlx
mlx-lm
offline-ai
on-device-ai
private-ai
qwen
voice-ai

Significant stargazers

Rui Chen

931 followers ยท starred Apr 2026

Saรบl Ibarra Corretgรฉ

2,048 followers ยท starred Mar 2026

Lorenzo Mangani

373 followers ยท starred Mar 2026

Wael Nasreddine

219 followers ยท starred Mar 2026