FlyCoder is a local coding model for Ollama, tuned for MacBooks and Mac minis: complete, runnable code, a large context, answers in your language.
ollama run Tromset/flycoder0.3 # Macs with 16 GB
ollama run Tromset/flycoder0.3fast # Macs with 8 GB
ollama run Tromset/flycoder0.3pro # Macs with 32 GB or moreYou need Ollama 0.30 or later (0.32.12 for pro). Full documentation: Documentation.md.
| Model | Base | Weights | Mac | Context |
|---|---|---|---|---|
Tromset/flycoder0.3 |
Qwen3.5 9B | 6.6 GB | 16 GB | 65,536 tokens |
Tromset/flycoder0.3fast |
Qwen3.5 4B | 3.3 GB | 8 GB | 32,768 tokens |
Tromset/flycoder0.3pro |
Qwen3.8 27B | 18 GB | 32 GB or more | 65,536 tokens |
All three are portable GGUF builds: they run on Apple Silicon and Intel Macs, Linux and Windows, with tool calling, thinking and images. The bases are licensed under Apache 2.0.
What FlyCoder sets up on top of the base:
- A large context: 64K tokens instead of Ollama's 4,096 default on machines under 24 GB. Qwen's hybrid attention keeps it cheap:
flycoder0.3uses 8.8 GB in total at 64K. - The right sampling: Qwen's recommended settings for coding in thinking mode.
- A short system prompt for code: exact names and signatures, complete code without "TODO", edge cases, no invented APIs, a final check before answering, secure defaults, answers in the user's language.
flycoder0.3proadds rules for coding agents and multi-token prediction on Qwen3.8 27B. Details: Documentation.md, section 6.5.
curl -fsSL https://raw.githubusercontent.com/Tromset/flycoder/main/install.sh | sh
ollama run flycoderThe installer picks the variant from your memory and names it flycoder. Options after sh -s --: --fast, --pro, --all, --mlx (Ollama's MLX engine on Apple Silicon), --no-brain.
20 coding problems with hidden tests (bench/), on a 4-core Linux server without a GPU, thinking off, one attempt per problem:
| Profile | Base | Passed | Generation |
|---|---|---|---|
flycoder0.3 |
Qwen3.5 9B | 9/20 | 3.9 tok/s |
flycoder0.3fast |
Qwen3.5 4B | 5/20 | 6.1 tok/s |
| 0.2 beta (did not run on every 16 GB Mac) | Gemma 4 12B | 14/20 | 3.4 tok/s |
Three of the 9B's failures are answers cut off at 2,048 tokens: with thinking off it reasons in code comments; keep thinking on (the default) for code you ship. On a Mac, speeds are much higher. Details and the system-prompt comparison: Documentation.md, section 7.
FlyBrain is a small Node server in front of Ollama. It answers to flycoder0.3 and flycoder0.3fast, sends simple questions to a smaller expert and hard requests (and every agent request with tools) to the strong one, and keeps a single expert in memory. On 60 labelled requests it routes 59 correctly, and no hard request goes to the small model.
node ~/.flycoder/brain/flybrain.mjs # installed by install.sh; or: npm run brain
OLLAMA_HOST=127.0.0.1:11435 ollama run flycoder0.3Details: Documentation.md, section 5.5.
Every change to main that touches a Modelfile or a page in docs/ollama/ is published on ollama.com by the publish-ollama workflow: models first, then their pages. It needs two repository secrets, OLLAMA_KEY and OLLAMA_API_KEY (Documentation.md, section 8).
Each publication is then mirrored on Hugging Face by the publish-huggingface workflow: the same GGUF weights, vision projector, system prompt and sampling settings, with a model card from docs/huggingface/, runnable with ollama run hf.co/<namespace>/flycoder0.3 or llama.cpp. It needs the HF_TOKEN secret (Documentation.md, section 8.1).
Modelfile,Modelfile.fast,Modelfile.pro: the three variants.Modelfile.lite,Modelfile.router: FlyBrain's experts.docs/ollama/: the ollama.com page of each model.docs/huggingface/: the Hugging Face model card of each model.brain/: the FlyBrain server and its routing rules.install.sh: one-command install.scripts/publish.sh,scripts/update-ollama-pages.sh,scripts/publish-hf.sh: publishing.bench/: quality and speed benchmark.tests/:npm test.training/,scripts/build_language_dataset.js,server/fly-language.js: the former FlyBrain voice pipeline, independent of FlyCoder.
Repository code: MIT, see license.md. The weights keep the license of their base: Apache 2.0 for Qwen3.5 and Qwen3.8.