Apple put a free LLM in the Terminal. Here is what it is actually good for.
Here is a sentence that would have sounded fake two years ago: every Apple Silicon Mac running macOS 27 now has a language model built into the Terminal. The command is fm. No account, no API key, no download, no token bill.
fm respond "Summarize this log file in three lines" < server.log
fm chat
fm serve # local OpenAI-compatible API server
The commands cover one-shot prompts (respond), an interactive session (chat), structured JSON output (schema), token counting (token-count), and a local Chat Completions server (serve) that your existing tools can talk to by changing a base URL. First run asks you to accept a license once with sudo fm license. After that it just works.
The honest limits
This is the small on-device model behind Apple Intelligence, not a frontier model. Keep three things in mind:
- Context is small. Reports put the on-device window in the 4K to 8K token range. Fine for a file, a paragraph, a short log. Not fine for your codebase.
- Apple itself says what to avoid. Its developer documentation lists code generation, math, and logical reasoning as capabilities to steer away from for this model. Believe them.
- Only the
systemmodel is offline. Thepccoption routes to Apple's Private Cloud Compute servers. Bigger context, but it is a cloud call with usage quotas, not local inference.
So what is it good for?
The jobs you currently either pay per token for, or skip because setting up a pipeline for something so small is not worth it:
- Sorting and labeling. Feed it a folder of files, a pile of notes, or a day of notifications and have it classify, tag, and rename. Short input, structured output, done.
- Extraction. Pull names, dates, amounts, and action items out of text into JSON that matches a schema you define.
- First-pass summaries. Meeting notes, long emails, and logs, compressed to the three lines you actually needed.
- Glue in scripts. Because it lives in the shell and speaks the standard Chat Completions format through
fm serve, it drops into shell scripts and small tools with almost no ceremony.
The pattern that works best, in our experience, is an orchestrator split: a capable model plans the work and checks the results, and the little local model handles the small turns in between for free. You stop spending frontier-model tokens on chores, and the chores still get done.
Why this matters beyond Macs
A capable-enough model, preinstalled, free, and private by default changes what software can assume. Any tool can now ask "is there a model on this machine" and expect the answer to be yes. That is the same shift we build on with our own systems: small, typed, local decisions where they fit, big models reserved for the thinking that actually needs them.
If you have an M1 Mac or newer, you already own this. Open Terminal, run fm available, and put it to work on something small today.