Comando fm de macOS 27: la IA local gratis que ya tienes en tu Mac (guía esencial)
El comando fm de macOS 27 trae el modelo local de Apple a la Terminal, gratis. Comandos para copiar, ejemplos de fm serve, la trampa de la tubería y cuándo necesitas un modelo mayor.

El comando fm de macOS 27 es lo más útil que Apple ha metido este año en el sistema y casi nadie ha hablado de ello. Abres la Terminal en un Mac con macOS 27, escribes fm respond "tu pregunta" y te contesta el modelo de lenguaje que Apple ejecuta en el propio equipo. Sin Ollama, sin clave de API y sin factura. Apple lo dice tal cual en su sesión de la WWDC26 sobre fm: la herramienta «comes pre-installed with macOS 27».
Me he leído las sesiones de Apple, la página man y varios análisis de terceros. Resumen: es una herramienta gratis y de verdad útil para tareas pequeñas de texto, no sustituye a una suscripción de pago y hay una costumbre de la shell que hace que se invente cosas sin avisar. Lo explico abajo.
La respuesta corta
- Qué es:
/usr/bin/fm, la línea de comandos de Apple Foundation Models. Viene con macOS 27 (publicado el 14 de septiembre de 2026). No hay nada que instalar. - Cuánto cuesta: nada. El modelo
systemcorre en tu Mac y funciona sin conexión. - Para qué sirve: resumir textos que tú le das, sacar campos de un texto, reescribir, etiquetar, ordenar nombres de archivo desordenados dentro de un script.
- Para qué no: datos del mundo, código, cálculos, documentos largos. La ventana de contexto es de 4.096 u 8.192 tokens según tu Mac.
- La pega: usa el modelo de Apple Intelligence, así que solo funciona donde funciona Apple Intelligence.
Primer uso: licencia y luego comprobar el modelo
Antes de hacer nada, el comando fm de macOS 27 te pide aceptar los términos de Apple. Ni siquiera muestra --help hasta entonces. El acuerdo vale para todos los usuarios del Mac, por eso necesita sudo. Esto sale de la página man fm(1) (una copia pública de la de Apple):
sudo fm license # lee los términos y responde y
fm license --status # comprueba si este Mac ya aceptó
Después mira si el modelo ya está en el disco. Se descarga aparte, en segundo plano. En macOS 27.0, la web Mac Install Guide (de terceros) usó:
fm available
# System model available -> listo
# System model unavailable: modelNotReady -> aún se está descargando
Un detalle: la página man de la beta de junio llama a este subcomando models, no available. Si uno no funciona, ejecuta fm --help y usa el que salga en tu versión.
¿Cuánto ocupa? La página de soporte de Apple Intelligence dice hasta 14 GB en Mac con M3 o posterior y al menos 12 GB de memoria unificada, y hasta 8 GB en el resto. Dos cosas que se pasan por alto: es el paquete de modelos de Apple Intelligence, así que se descarga aunque nunca uses fm, y varios medios han medido más de 20 GB en Almacenamiento. Apple no ofrece forma de borrarlo. Con 256 GB de disco, esto pesa más que todo lo demás.
Chuleta del comando fm de macOS 27

Estas son las partes del comando fm de macOS 27 que yo usaría de verdad. Todo está en la sesión de Apple o en la página man:
fm respond "Reescribe esto en lenguaje sencillo: ..." # respuesta única
fm respond --no-stream "..." > respuesta.txt # sin streaming al guardar en archivo
fm chat --instructions "Eres un profesor de Unix breve" # chat interactivo; dentro, /save y /model
fm chat --continue # retomar el último chat
fm count-tokens "Hola mundo" # cuánto contexto ocupas
fm schema object --name Factura --string proveedor --string vencimiento --double total > factura.json
fm respond --schema factura.json "$(cat factura.txt)" # te devuelve JSON, no prosa
--greedy da una salida más estable, útil en scripts. --image permite adjuntar una imagen. Las sesiones se guardan en ~/.fm/sessions/ y los ajustes en ~/.fm/config.json.
La trampa de la tubería: fm ignora tu archivo
Esta parte vale el artículo entero, porque es la manera más fácil de sacarle una respuesta falsa al comando fm de macOS 27. Mac Install Guide probó lo obvio:
cat notas.txt | fm respond "Resume esto en dos frases." # NO
Si pones un prompt en la línea de comandos, el texto que llega por la tubería se descarta en silencio. Código de salida 0, ningún aviso, y el modelo resume un documento que nunca vio. En tres pruebas salieron resúmenes de una historia sobre un tal Alex, de un texto sobre fijarse metas y de otro sobre ejercicio. Nada de eso estaba en el archivo.
Lo que sí funciona: tu petición va en --instructions y la entrada estándar es solo el contenido:
cat notas.txt | fm respond --instructions "Resume la entrada en dos frases."
Dos costumbres más para scripts, de las mismas pruebas. Si no aceptaste la licencia, fm sale con código 69 y escribe en stderr, así que output=$(fm respond ...) recibe una cadena vacía. Usa set -e o mira $?. Y cuando le pidas ordenar una lista, cuenta lo que devuelve: en la propia demo de Apple el modelo se dejó dos de diez nombres.
fm serve: un endpoint de Chat Completions local y gratis
El comando fm de macOS 27 también tiene modo servidor. Según la página man, fm serve arranca «a Chat Completions API server for Foundation Models». Apple documenta --host, --port y --socket, pero no dice el puerto por defecto, así que lo pongo siempre a mano. En las pruebas de terceros usaron 1976:
fm serve --port 1976
En otra terminal:
curl -s http://127.0.0.1:1976/v1/models
curl -s http://127.0.0.1:1976/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model":"system","stream":false,
"messages":[{"role":"user","content":"Dame 3 etiquetas para: notas de la revisión trimestral del presupuesto"}]}'
No te olvides de "stream": false. Según pruebas de terceros, el servidor responde en streaming por defecto, y un cliente que espera un JSON normal recibe eventos SSE. La misma llamada desde Python, solo con la librería estándar:
import json, urllib.request
body = {
"model": "system",
"stream": False,
"messages": [
{"role": "system", "content": "Extrae el remitente y la fecha límite. Responde en JSON."},
{"role": "user", "content": open("correo.txt", encoding="utf-8").read()},
],
}
req = urllib.request.Request(
"http://127.0.0.1:1976/v1/chat/completions",
data=json.dumps(body).encode(),
headers={"Content-Type": "application/json"},
)
print(json.load(urllib.request.urlopen(req))["choices"][0]["message"]["content"])
Dos avisos. Esas mismas pruebas no encontraron ninguna autenticación, así que no lo expongas en 0.0.0.0 en una red que no controlas. Y no es un sustituto completo de OpenAI: las peticiones con herramientas (tools) fallan o devuelven JSON crudo dentro del texto, según quién lo probó. Sirve para scripts de chat, no para frameworks de agentes. Si trabajas en Python, Apple tiene además un SDK (pip install apple_fm_sdk, Python 3.10+, Xcode, Apple silicon) que sí admite llamadas a herramientas.
Contexto: 4.096 u 8.192 tokens, según tu Mac
Leerás que el comando fm de macOS 27 tiene «8K de contexto». Es verdad a medias. En la sesión de la WWDC26 sobre Private Cloud Compute, el código de ejemplo comenta contextSize como «4096 on 26.0, 8192 on 27.0 (newer devices)», mientras que la narración sigue diciendo que el modelo local «offers 4k».

Las pruebas independientes completan el cuadro. El autor de apfel midió 8.192 en un M3 Pro y 4.096 en un MacBook Air M2 con 27.0.1, donde el propio fm de Apple rechazó un prompt de 4.039 tokens. Encaja con los niveles de almacenamiento de Apple (M3 o posterior con 12 GB o más recibe la descarga grande), pero Apple no ha publicado una tabla por modelo, así que tómalo como dato probado, no oficial. En cualquier caso, la ventana incluye instrucciones, entrada y respuesta juntas. En un M2, piensa en dos o tres páginas, no en un informe. Usa fm count-tokens antes.
Lo que te ahorra gratis y lo que sigue necesitando un modelo mayor

Apple orienta el modelo que hay detrás del comando fm de macOS 27 a resumir, extraer, clasificar y reescribir textos cortos. Mac Install Guide le hizo preguntas reales de principiante sobre la Terminal y no acertó ninguna del todo: explicó cómo usar un comando de Homebrew que no existe y, en un Mac con macOS 27, dijo que la última versión de macOS era Sonoma. Con un resumen real lo hizo bien. Coincide con lo que dice Apple.
Así repartiría yo el trabajo, pensando en el dinero:
- Que lo haga fm: las llamadas «pegamento» dentro de scripts que quizá mandarías a una API de pago. Etiquetar 200 notas, sacar fecha e importe de cada correo de recibo, renombrar capturas, convertir notas de reunión en tres viñetas. Coste por llamada: cero.
- Un modelo local más grande: lo que necesita más contexto o razonar de verdad, pero no debe salir de tu equipo. Ollama o LM Studio con Qwen o DeepSeek, si tienes memoria. En mi guía para instalar DeepSeek en local explico qué cabe en cada equipo.
- Seguir pagando: programar, investigar, cualquier cosa donde equivocarse te cueste. Los planes de 20 dólares al mes siguen valiendo la pena aquí; los precios actuales están en mi comparativa de precios de suscripciones de IA.

Hay un término medio: fm puede hablar con otros servidores de Chat Completions con --model-provider, así que el mismo comando puede tirar de tu modelo de Ollama cuando el de Apple se queda corto. No he probado esta combinación yo mismo; la opción está en la página man y la URL compatible con OpenAI de Ollama es la habitual:
fm respond --model-provider http://localhost:11434/v1 --model qwen3:8b "Explica este error: ..."
¿Y --model pcc, el modelo grande de Apple en la nube? Apple lo enseñó en la WWDC con límites de uso. En macOS 27.0, quienes lo han probado dicen que desde la línea de comandos no está disponible («PCC inference is not available in this context»). Yo no contaría con él todavía.
Región, idioma y requisitos del Mac
El comando fm de macOS 27 depende de Apple Intelligence. macOS 27 solo funciona en Mac con Apple silicon, y Apple Intelligence necesita M1 o posterior (o el MacBook Neo con A18 Pro), según Apple. El idioma del Mac y el de Siri tienen que coincidir y ser uno compatible; el español lo es. Si Apple Intelligence no puede funcionar, fm muestra appleIntelligenceNotEnabled y ahí se acaba.
En China continental, Apple es clara: Apple Intelligence no funciona por ahora en dispositivos comprados allí, ni en dispositivos comprados fuera si estás en China continental y tu cuenta de Apple también es de China continental.
¿Se come la RAM?
Casi nada en reposo, y es una sorpresa agradable del comando fm de macOS 27. Mac Install Guide midió el servicio de inferencia de Apple en unos 450 MB en reposo y 650 MB mientras responde, en un MacBook Air M3 de 16 GB, y dejar fm serve abierto no mantenía el modelo cargado. El binario de fm ocupa 3,2 MB. No le va a quitar memoria a tus modelos de Ollama. El coste real es el disco, como ya conté. Si estás decidiendo cuánta memoria comprar para IA local, lo hablo en comprar Mac ahora o esperar.
Mi opinión
El comando fm de macOS 27 es un pequeño ayudante gratis para tareas aburridas de texto, y ya está en tu Mac. Con tuberías, usa --instructions; para datos estructurados, --schema; en scripts, revisa los códigos de salida; y dale entradas cortas. No le hagas preguntas que no puedas comprobar. Para lo difícil, un modelo local mayor o la suscripción que ya pagas siguen siendo la herramienta correcta.
Revisado el 22 de octubre de 2026 (hora de Pekín) con las sesiones 334 y 319 de la WWDC26, la página man de fm y el artículo de soporte 121115 de Apple. Los resultados de terceros están indicados como tales.
Comando fm de macOS 27: preguntas frecuentes
¿El comando fm es gratis?
Sí. El modelo local por defecto no pide clave de API, no cobra por petición ni tiene límite de peticiones, y funciona sin conexión. El modelo pcc en la nube tiene límites de uso.
¿Qué Mac pueden usar fm?
Cualquier Mac con Apple silicon que tenga macOS 27 y Apple Intelligence (M1 o posterior), en una región e idioma compatibles.
¿Por qué fm dice modelNotReady?
El modelo aún no ha terminado de descargarse. Deja el Mac enchufado y con Wi-Fi y vuelve a probar fm available más tarde. Apple no da un tiempo estimado.
¿Qué puerto usa fm serve?
La página man de Apple no indica uno por defecto. Pasa --port, por ejemplo fm serve --port 1976, y llama a http://127.0.0.1:1976/v1/chat/completions con el modelo system.
¿Cuánto contexto tiene fm?
8.192 tokens en Mac recientes con macOS 27 y 4.096 en los anteriores, según el código de ejemplo de Apple y pruebas de terceros (M3 Pro 8.192, M2 4.096). Compruébalo con fm count-tokens.
¿Puede fm sustituir a Ollama o a ChatGPT?
Para resúmenes cortos, extracción y etiquetas, muchas veces sí. Para programar, razonar, documentos largos o preguntas de datos, no.
Sigue leyendo: RTX 5090 para IA, la comparativa de precios y todo lo de Hardware para IA.