Ciao a tutti,
nell’articolo di oggi voglio parlarvi di una novità di macOS 27 che ho trovato estremamente interessante e che si allinea con il mio interesse verso l’inferenza locale: il comando fm.
Se seguite il blog sapete che trovo molto interessante l’IA locale (ne ho parlato in questo articolo), ma l’idea che Apple abbia finalmente integrato un accesso diretto ai propri Foundation Models via terminale, senza dover installare runtime esterni o gestire API key, è una facilitazione anche per i non addetti ai lavori e un valore aggiunto nello sviluppo di applicazioni per MacOs
Scendiamo ora più nel dettaglio e cerchiamo di vedere come funziona.
Cos’è fm e come nasce
Il comando fm è una CLI preinstallata in macOS 27 che espone i modelli di Apple Intelligence direttamente nel terminale, permettendoci di interagire con l’IA di sistema senza installare nessun engine particolare.
La strategia di Apple è quella di sfruttare l’inferenza locale laddove sia possibile e di scalare sul cloud solo per i compiti più difficili, ne deriva quindi che:
- Modello on-device (
system): è il modello locale (circa 3 miliardi di parametri nella versione base, AFM 3 Core; sui Mac più potenti c’è anche AFM 3 Core Advanced, un modello sparso da 20 miliardi con 1-4 miliardi di parametri attivi) che gira interamente sul Mac. È veloce, funziona offline e garantisce la massima privacy. - Private Cloud Compute (PCC): se abbiamo bisogno di più potenza di ragionamento o di un contesto più ampio, Apple ha annunciato l’opzione
--model pcc, che però non è ancora disponibile in tutte le build di macOS 27 (sul mio Mac, come vedremo, è presente solo il modello di sistema). In questo caso il carico viene gestito dai server sicuri di Apple, mantenendo comunque gli standard di privacy del brand.
Questa strategia sembrerebbe inoltre essere la stessa condivisa da Microsoft (vi rimando a questo articolo per i dettagli ), ma laddove Microsoft voglia puntare a modelli performanti in locale (ma che richiedono macchine potenti e costose), Apple punta invece a modelli piccoli per compiti “semplici”, spostando in cloud solo per task più complessi.
I casi d’uso: quando conviene usarlo
Essendo un modello relativamente piccolo, sarebbe un errore trattarlo come un sostituto dei modelli di frontiera (Claude, GPT…: Apple lo posiziona per riassunti, estrazione e classificazione, non per matematica avanzata, ragionamenti articolati o codebase complesse.
Tuttavia, per attività di “produttività pura”, il modello di sistema è indicato per:
- Riassunti rapidi: possiamo mandare un file di log o un report al comando e ottenere una sintesi in un attimo.
- Estrazione dati: estrarre email, date o nomi da un testo non strutturato.
- Classificazione: decidere se un ticket è un bug o una feature request o classificare un’email
- Riscrittura di testi: rendere più professionale una bozza di email.
[!warning] Attenzione al contesto che è molto limitato, parliamo di 8.192 token
Mettiamolo alla prova
Una volta aggiornato il Mac a macOS 27, non dobbiamo installare nulla (Il binario si trova in /usr/bin/fm). La prima volta che lo avviamo, dovremo accettare la licenza d’uso (tramite sudo fm license).

Fatto questo appariranno i comandi disponibili, i modelli (per ora è presente solamente il modello di sistema) e qualche esempio

Utilizzo avanzato e integrazioni
Vediamo ora come possiamo effettivamente usare il tool nei nostri workflow.
Utilizzo da terminale
Il comando più immediato è fm respond. Possiamo interrogarlo direttamente:
fm respond "Riassumi questo testo: [testo]"Oppure, sfruttando la shell, possiamo concatenare i comandi:
cat README.md | fm respond "Come faccio ad avviare il progetto?"Se invece preferiamo una conversazione più naturale, possiamo usare fm chat, che apre una sessione interattiva con un utilizzo più classico.

Dal mio punto di vista questa modalità è la meno interessante, se devo usare una modalità in conversazione utilizzerei modelli più potenti, anche locali.
Unsloth studio
Qui arriviamo alla parte che più mi interessa come sviluppatore. fm non è solo per l’utente finale; tramite il comando fm serve, Apple espone un endpoint locale compatibile con le API di OpenAI (Chat Completions).

Questo significa che possiamo collegare il modello locale di Apple a qualsiasi strumento che supporti l’interfaccia OpenAI come provider di modelli.
Attenzione però a due limiti: fm serve non ha autenticazione e su macOS 27.0 il tool calling non funziona ancora, quindi per costruire agenti che usano strumenti locali (ad esempio server MCP in .NET) non è ancora la scelta giusta.
Personalmente ho provato l’integrazione con Unsloth Studio, una web UI open source per addestrare, eseguire ed esportare modelli open in locale. Aggiungere il modello di Apple come provider è banale: basta puntare all’endpoint esposto da fm serve nelle impostazioni di configurazione (Impostazioni –> Connessioni –> Aggiungi una connessione).

Una volta configurato, potremo testare il modello da un’interfaccia che non sia quella del terminale. Ho provato il modello chiedendo il summary di un file readme.md e l’estrazione del sentiment da una email: i risultati sono stati sorprendentemente precisi, considerando che stiamo parlando di un modello che gira interamente sul nostro hardware.
Mettiamolo alla prova
Come prima prova ho aperto una nuova chat in Unsloth studio, gli ho passato un file readme (di un progetto di stampa 3D che avevo scaricato da printables.com) e gli ho chiesto di riassumerlo.

Come seconda prova ho fatto generare a Claude un’email e ho chiesto a fm di riassumerla e di estrarre il sentiment.

Conclusioni
In questo articolo abbiamo visto come macOS 27 abbia finalmente portato l’AI locale a un livello di accessibilità maggiore grazie al comando fm.
A mio avviso, non sostituisce strumenti come Usloth Studio, Ollama o LM Studio per chi ha bisogno di scegliere tra decine di modelli open source o di fare fine-tuning, ma per l’automazione quotidiana e l’integrazione in app macOS è un valore aggiunto non da poco. La privacy nativa e l’assenza di costi per token lo rendono il compagno ideale per piccoli task di NLP.
Il mio consiglio è di iniziare a sperimentare con fm serve per collegarlo ai propri tool di sviluppo: è il modo più veloce per capire se il modello on-device di Apple può sostituire alcune chiamate API costose in termini di tempo e privacy.