Junie Can Now Run Entirely on Your Mac – No Credits, No Cloud

Our first step into on-device coding agents

Junie has been able to connect to local model runtimes for a while. Point it at Ollama or LM Studio, load a local model, and the agent runs against it. Plenty of people are already doing this. But it also means you have to pick the model, tune the settings, and handle a lot of manual setup – and small models can only help with a limited set of simple tasks.

So we’ve done all of that for you. Introducing Junie Local: It ships a model we chose and tuned against our own agent loop, installs with a single command, and runs entirely on your machine. No tokens, no quota, no code ever leaving your machine. And it’s free.

Install Junie Local

One command, no configuration

Inside Junie, run /local. The model downloads, the local server starts, and Junie switches over. There is no JSON profile to write, no runtime to install first, and no endpoint to point at.

The model is Qwen3.6-27B at 4-bit, there’s about 20 GB to download, and you’ll need an M5 Mac with 64 GB of RAM. Everything after the download happens on your hardware, so your prompts, source, and diffs stay put.

Your existing setup carries over. Plan mode, live prompting, guidelines, skills, and your /commands behave the same way. The engine changed, the agent did not.

Things we learned about making it fast

Everyone benchmarks generation speed. For a coding agent, that turns out to be the wrong number to chase because most of the time is spent on prefill, while the model reads files to work out what is going on. Optimizing for prefill is where the real gains were, which is why Junie Local starts at Apple M5: The M5 Neural Accelerator has 8-bit arithmetic instructions that M4 lacks, and using them gave us around 40% more prefill throughput. We are going to send that patch as a PR to MLX-VLM.

We also deliberately chose Qwen3.6 over the newer 3.8. Qwen3.8 needs reasoning enabled to work reliably, and with it on, tasks run roughly four times slower. On today’s Macs, 3.6 wins.

There is a lot more to it, including KV-cache reuse across tasks and the speculative decoding setup that roughly doubles generation speed. Read the deep-dive post here: How We Optimized the Qwen 3.6 Model for Our Junie Agent.

How good is it?

We evaluate every model on JetBrains’ own private test set before it goes near Junie, and Junie Local was no exception. Qwen3.6-27B scored on par with Sonnet 4.5 (10,000-token reasoning limit). GPT-5 at medium effort scored slightly higher.

Worth noting what those numbers include: We ship the local model with reasoning disabled entirely because our tests found it added very little quality and cost two to three times as many tokens. So, these results are what the model does without reasoning, against cloud models that had it switched on.

For everyday work, you most likely wouldn’t notice the gap. On complex architectural reasoning, you definitely would.

What changes when nothing is metered

Benchmarks tell you whether a model can do the work. They do not tell you what changes when the work is done for free.

Cost efficiency has been a dial you hold in Junie for a while: Plan on a strong model, implement on a cheap one. Junie Local turns that dial down to zero. When one more iteration is free, work you would never usually spend credits on becomes worth handing over. Junie Local is ideal for:

  • Multifile refactors and renames that were not worth the spend.
  • Test coverage gaps you have been ignoring for the past two quarters.
  • Dependency upgrades and framework migrations.
  • Getting oriented in a repository you inherited.


Long, repetitive, mechanical work is exactly what an agent is for, and exactly what you stop asking for when you are keeping an eye on your balance.

For some teams, the privacy you get with Junie Local is the whole reason to read this post. There’s no vendor data policy to review because there’s no vendor in the loop. If you work under client NDAs, that moves the conversation from “we assessed the provider” to “no provider was involved.”

It also works with no network at all. Once the weights are on disk, Junie Local behaves the same way when you’re sitting on an airplane as it does at your desk.

Yes, the requirements are high

We know that an M5 Mac with 64 GB of RAM is a big ask. We are not going to pretend otherwise, and we know it puts Junie Local out of reach for many people reading the post.

That is simply what it costs to run a 27B model well today, and it is the number we are working hardest to bring down. The aim is a lower memory floor, wider hardware, and more of the stack optimized. If the lofty requirements are the reason you cannot try Junie Local, rest assured that we are working to bring them down.

This is the first step

One model, one chip family, one platform. We started narrow because tuning one model across the whole stack beats supporting every model badly.

Mac was the starting point, not the plan. We already have working prototypes for DGX Spark and RTX 5090, and we are looking at 24 GB cards. Prefill behaves very differently on a discrete GPU, so much of the optimization work shifts to that hardware.

If you have thoughts on which platform should land next, now is a good time to let us know.

Getting started

Junie Local is completely free – no registration, no subscription, no credits, and no card required.

Open Junie, run /local, and feed it a task you’ve been putting off. Then tell us what broke, what surprised you, and what you want next. Every part of Junie came from that feedback loop, and this is no different.

Try Junie Local

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论