Apple-Silicon
4. Jul 202620. Jun 202619. Jun 202617. Jun 202613. Jun 202612. Jun 202612. Jun 202611. Jun 202610. Jun 202610. Jun 20269. Jun 20269. Jun 20269. Jun 20268. Jun 20268. Jun 20267. Jun 20267. Jun 20264. Jun 20263. Jun 20263. Jun 20262. Jun 202616. May 202615. May 20263. May 202622. Apr 202612. Apr 20269. Apr 2026
Ornith 1.0: When the Model Writes Its Own Scaffold
DeepReinforce trains a coding model that learns its own agent harness. I tested the 9B and 35B locally on an M3 Max. The idea is strong, the benchmarks are self-reported, and the biggest stumbling block sits in the packaging.
Where the cloud usually sits
For the finale we place the local agent where Claude or ChatGPT usually sit inside Xcode. Apple showed the local provider slot at WWDC26, and we installed macOS 27 and Xcode 27 on purpose to put it to the test. How far does the borrowed small model get there? Article 13 of the series "A Local Coding Agent with apfel".
Local Python on the Mac: Gemma 4, Its Coding Finetune, and a Current Specialist
Gemma 4 12B is celebrated as the most complete local model. For Python I ran three variants against each other on an M3 Max, with real code execution, including a parser that defeats all three.
Multi-Token Prediction for MLX: MTPLX Tested on the M3 Max
MTPLX promises noticeably faster local LLMs on the Mac via Qwen 3.6's built-in MTP heads. Measured on an M3 Max, with real numbers instead of marketing claims.
Container machine: Apple's Quiet Shot at Docker Desktop
With the Containerization architecture and the new Container machine, Apple has spent two years building a native Docker alternative for the Mac. A technical analysis of who is really under attack.
The agent in the browser
The agent gets a third surface. Behind a Hummingbird server it streams its work into the browser over Server-Sent Events, confirmation by click included. The same core as in the terminal, only a different sink. Article 11 of the series "A Local Coding Agent with apfel".
Sovereignty on borrowed ground
The local agent runs without a key and without the cloud. But what does that independence rest on? Two releases from the same week, a cloud handoff from Anthropic and Apple's MLX stack, bring the question into focus. A sober assessment. Article 12 of the series "A Local Coding Agent with apfel".
Tools the agent doesn't write: MCP
MCP moves writing tools out of the agent into separate servers. We build a small MCP server, attach it to apfel, and measure what MCP solves and what it doesn't. Article 10 of the series "A Local Coding Agent with apfel".
The interactive terminal session
The one-shot command becomes an interactive REPL session. The key to testability is the strict separation of render logic and terminal I/O. Article 9 of the series "A Local Coding Agent with apfel".
WWDC26 for Developers: Foundation Models, Core AI, and an Agentic Xcode
An overview of the WWDC26 Platforms State of the Union: the Foundation Models framework opens up to server models and goes open source, the new Core AI brings your own models on-device, and Xcode 27 puts agentic coding at the center.
The agent loop with a done-check
The naive agent loop ends when the model goes quiet, and that is just a self-report. We build a loop whose stop condition is a machine check, with an iteration limit and a context budget as guards. Article 8 of the series "A Local Coding Agent with apfel".
Four Macs as a Cluster: Distributed Inference and Training with MLX
At WWDC26, Apple shows how MLX distributes large language models across multiple Macs. RDMA over Thunderbolt 5, the JACCL library, and a cluster of four M3 Ultras running a trillion-parameter model locally.
Claude in the Foundation Models Framework: The Handoff Becomes a Pattern
Anthropic released a Swift package that wires Apple's Foundation Models framework to Claude. The interesting part isn't Claude in an app — it's the handoff pattern: on-device for fast and cheap, Claude for the hard part.
Editing that works: constrained output instead of tool guessing
The naive file edit fails on the small model. We build the agent around that weakness, with constrained output and a two-stage edit workflow, and measure how much can be recovered. Article 7 of the series "A Local Coding Agent with apfel".
The local coding agent put to the eval
A reproducible eval of 15 tasks across five categories measures where the local Foundation Model carries as a coding agent and where it breaks. With a cloud sample and a separate measurement of what the model claims about its own success. Article 6 of the series "A Local Coding Agent with apfel".
The first real tools: file system and shell
We build the first tools the agent uses to change things, and lock them down — a path sandbox, a confirmation gate, a diff before writing, and defense-in-depth for the shell. Article 5 of the series "A Local Coding Agent with apfel".
Understanding tool calling: from schema to round-trip
We teach the agent to call tools — the tool definition in the OpenAI schema, the round-trip of invocation, execution and continuation, and a tool abstraction in Swift. Article 4 of the series "A Local Coding Agent with apfel".
The Swift client: first connection to the model
We set up a Swift package, build an async HTTP client against apfel --serve and process SSE streaming token by token — Article 3 of the series "A Local Coding Agent with apfel".
The serve mode and the OpenAI protocol
We start apfel as a local OpenAI-compatible server, walk through every endpoint and see where the protocol diverges from OpenAI — Article 2 of the series "A Local Coding Agent with apfel".
apfel from the command line
We install apfel, walk through the three modes (prompt, serve, chat), and see where the on-device model holds up and where it gives way — Article 1 of the series "A Local Coding Agent with apfel".
The Model Is Already There — A Prologue to the Local Coding Agent
A series takes a close look at the Foundation Model every Apple Silicon Mac running macOS 26 ships with — and builds on it a coding agent in Swift that runs locally.
Streaming — Tokens Flow as They Are Born
Article 4 of the Hummingbird series. We add streaming to both endpoints via Server-Sent Events: MLXClient.completeStream as AsyncThrowingStream, Anthropic events, OpenAI chunks, task cancellation. Tokens appear at the client as the model generates them.
Real Inference — MLXClient and the Local Model
Article 3 of the Hummingbird series. We connect the gateway to mlx_lm.server: MLXClient as a Swift actor, format conversion from Anthropic to OpenAI, error mapping with HTTP status codes. After this article, the gateway delivers real model responses.
2026: Let's Kill the Beast — Windows
Microsoft's 'Windows K2' initiative is meant to save Windows 11 — but doesn't address the root problem. Why Apple is the most plausible answer, and why Linux deserves an app-store approach that doesn't depend on the distribution underneath.
Macs Are the Better PCs: on the Books and on Risk
Windows has become a design flaw. Copilot, Recall, TPM sniffing, plus a cloud strategy that costs productivity instead of delivering it. Macs are the rational choice in business. The software argument no longer holds in 2026.
Apple Opens MLX as System Framework Starting with macOS 17
Starting with macOS 17, third-party apps can use MLX directly as a system framework.
AI Right on Your Laptop — Why Local Language Models Are Becoming a Real Alternative in 2026
Why local language models are becoming a real alternative in 2026 — MLX, Unified Memory, and a stack that works without the cloud.