// the find
Arthur-Ficial/apfel
The free AI already on your Mac. CLI tool, OpenAI-compatible server, and interactive chat — all on-device via Apple Intelligence. No API keys, no cloud, no downloads.
apfel wraps Apple's on-device FoundationModels API (the ~3B parameter model shipping with macOS 26 Tahoe) as a UNIX CLI, an OpenAI-compatible HTTP server, and an interactive REPL. It's for Mac developers who want zero-cost, zero-latency LLM inference in shell scripts and local tooling without touching a cloud API. The OpenAI-compatible server means existing code that talks to OpenAI often works against it with a base URL change.
The UNIX tool design is genuinely good — stdin piping, file attachments, JSON output, proper exit codes, and quiet mode all work the way you'd want them to in shell scripts. The OpenAI-compatible server handles the spec carefully: it rejects unsupported features (logprobs, n>1, embeddings) with explicit 400s rather than silently lying, which is more honest than most compatibility layers. The test surface is real — a separate pure-Swift test runner without XCTest dependency, plus Python integration tests against the live binary, not mocks. The ecosystem around it (apfel-run for TOML config, apfel-mcp for token-budget-aware tools) addresses the 4096-token constraint directly rather than pretending it doesn't exist.
The 4096-token context window (input + output combined) is a hard ceiling that makes it unsuitable for anything beyond short-form tasks — summarizing a medium-sized file can exhaust the budget before you get a response. The model quality is whatever Apple ships; you cannot swap it, quantize it differently, or pin a version, so a macOS update can silently change model behavior. The requirement for macOS 26 Tahoe and Apple Intelligence enabled means the install base right now is essentially zero outside beta testers — this is a tool you bookmark for six months from now. Apple's safety guardrails on the underlying model are opaque and the `--permissive` flag is documented as reducing false positives, but there's no visibility into what it actually changes.