macOS fm 命令:终端里的苹果本地大模型。

macOS 27 自带一个叫 fm 的命令行工具,把苹果自己的语言模型放进了终端:单次提问、对话、为脚本输出结构化 JSON。下面说明苹果介绍的功能、你的 Mac 需要什么、小型设备端模型的能力边界,以及同一台 Mac 上的开放模型还能做什么。

更新于

要点速览

  • fm 随 macOS 27 预装。在终端输入 fm 即可列出它的命令,例如 respond、chat 和 schema(Apple)。
  • 默认使用 macOS 自带的设备端模型。加上 --model pcc 后,提示会改为发送到苹果大得多的私密云计算(Private Cloud Compute)模型,该模型有使用限制。
  • 设备端模型需要支持 Apple Intelligence 的 Mac(M1 或更新机型)。在配备 M3 或更新芯片且内存不少于 12GB 的 Mac 上,Apple Intelligence 最多占用 14GB 存储空间,其他 Mac 最多 8GB(Apple)。
  • 它的上下文窗口很小:苹果文档写的是 4,096 个 token,WWDC26 的一个代码示例显示 8,192 个。处理长文档或更难的任务,用 Mac GPU 运行的开放模型能走得更远:看看你的 Mac 能运行什么。

1fm 是什么

fm 是苹果为 Apple Foundation Models(Apple Intelligence 背后的模型)提供的命令行工具。苹果在 WWDC26 的相关讲座中说:“Starting from macOS 27, this command line tool comes pre-installed on your Mac”;打开终端输入 fm 即可(Apple)。苹果把它定位为脚本和自动化工具,“without writing a line of app code”(Apple)。

它可以调用两个模型。默认使用“the on-device model that comes with macOS, and that's always available”。它也能使用私密云计算上的 Apple Foundation Model,苹果称之为“a much bigger model than the on-device model”,“will perform better on complex problems”,并且“has usage limits”(Apple)。设备端模型在你的 Mac 上运行,无需联网(Apple);发往私密云计算的提示则会传到苹果的服务器。

fm 是苹果的软件,与 MLX Network 无关。MLX Network 是独立项目,与苹果没有关联。

2命令一览

以下是苹果在 WWDC26 讲座中展示的命令和选项(Apple、Apple):

命令或选项作用
fm列出可用的命令。
fm respond "…"向模型发送提示并打印回答,适合脚本和一次性提问。
fm chat在终端里进行交互式对话。对话中用 /model 切换到私密云计算模型,用 /save 保存对话以便之后继续。
fm schema object创建一个 schema,让 fm respond 返回结构化 JSON。
--model pcc把提示发送到私密云计算模型,而不是设备端模型。
--image在提示中加入一张图片。
--schema让回答遵循用 fm schema object 创建的 schema。
--instructions在提示之外单独给模型指令。
--help显示所有选项。
苹果说命令不止这些;在你的 Mac 上只输入 fm 就能列出全部。

苹果在讲座中给出的示例:

fm respond "Provide a basic regex in Swift to parse an email address"
fm respond "Provide a comprehensive regex in Swift to parse an email address" --model pcc
fm schema object --name AppsIdentified --string app_names --array > schema.json
fm respond "What apps are the user actively using in this screenshot?" \
  --image Screenshot.png --model pcc --schema schema.json
# {"app_names": ["Messages", "Mail", "Calendar"]}
fm respond --help
一些介绍 macOS 27 的帖子还提到了 fm serve、fm available 和 fm license 等命令。苹果的 WWDC26 讲座和我们读过的 Foundation Models 文档都没有介绍它们,所以本指南也不介绍。在你的 Mac 上运行 fm,看看你的版本有哪些命令。

3需要什么,要下载多少

  • macOS 27。 fm 随它一起提供(Apple)。
  • 支持 Apple Intelligence 的 Mac。 Apple Foundation Models 需要它(Apple);在 macOS 27 上,任何配备 M1 或更新芯片的 Mac 都可以(Apple)。
  • 受支持的语言。 Apple Intelligence 要求设备语言和 Siri 语言设为同一种受支持的语言,目前也不能在中国大陆购买的设备上使用(Apple)。
  • 可用的磁盘空间,供 Apple Intelligence 使用,见下表。
MacmacOS 27 上 Apple Intelligence 占用的存储空间
配备 M3 或更新芯片、统一内存至少 12GB最多 14GB
其他支持 Apple Intelligence 的 Mac(M1、M2,或内存少于 12GB)最多 8GB
来自苹果的 Apple Intelligence 要求。这些数字是苹果给出的 Apple Intelligence 整体占用,不只是 fm 所用的模型。

打开 Apple Intelligence 后,模型可能会有一段时间不可用:苹果的框架会报告它尚未就绪,“because it's downloading or because of other system reasons”(Apple)。

对于使用同一个设备端模型的 Python SDK,苹果列出的要求是 macOS 26.0 或更高版本、已接受许可协议的 Xcode 26.0 或更高版本,以及 Python 3.10 或更高版本(Apple),并且要在 Apple 芯片 Mac 上运行(Apple)。

4设备端模型擅长什么,到哪里为止

苹果说得很直白:设备端模型擅长各种文本生成任务,比如摘要、实体提取、文本和图像理解、润色、游戏对话、生成创意内容等;需要更强的推理能力和更大的上下文时,请使用私密云计算或任何服务器端模型提供商(Apple)。

  • 上下文窗口很小。 苹果文档写明设备端模型有“a context window of 4096 tokens per session”(Apple),并列出设备端 4K、私密云计算 32K(Apple)。在 WWDC26 关于 macOS 27 的讲座中,苹果的代码示例打印出的 contextSize 是 8,192(Apple)。提示、指令和回答共用这个窗口。
  • 能装下多少。 英文中一个 token 通常是三到四个字符(Apple),所以 8,192 个 token 大约是输入和输出合计 25,000 到 33,000 个英文字符:几页内容,而不是一本书或一个代码库。
  • 简短、简单的提示。 “An on-device model has fewer parameters and a small context window”,所以苹果要求提示“short and succinct”,并说设备端模型“have limited reasoning abilities”:把难的任务拆成几步(Apple)。
  • 它会随 macOS 变化。 苹果通过系统更新来更新模型,macOS 27 带来了新版本(Apple)。更新之后,脚本的结果可能会变。

苹果在这些页面上没有给出设备端模型的大小,所以我们也不写。

5在脚本和代码中使用 fm

fm respond 会把回答打印出来,所以可以放进任何 shell 脚本。加上 --schema,回答就是 JSON,可以交给 jq 处理。苹果在讲座里就用这种方法整理一个项目文件夹:让模型判断哪些文件是终稿、哪些是草稿,再复制和移动它们。以下是苹果示例的精简版(Apple):

fm schema object --name "TriagedFileList" \
  --string 'final_files' --array \
  --string 'draft_files' --array > /tmp/schema.json

output=$(fm respond \
  --instructions "Return the latest files, then separately all draft files." \
  "This is the list of all files:\n\n${files_list}" \
  --schema /tmp/schema.json
)

echo "${output}" | jq -r '.draft_files[]'

Python 可以用苹果的 Foundation Models SDK,pip install apple_fm_sdk,同样是设备端模型,支持引导式生成和工具调用(Apple)。苹果的示例:

import apple_fm_sdk as fm

model = fm.SystemLanguageModel()
is_available, reason = model.is_available()
if is_available:
    session = fm.LanguageModelSession(model=model)
    response = await session.respond(prompt="Hello!")
    print(response)

很多 App 和编程智能体需要的是本地端口上的 OpenAI 或 Anthropic 风格 API。如果你需要这个,mlx_lm.server 可以在 localhost:8080 以 OpenAI 风格的 API 提供你选择的开放模型(mlx-lm),LM Studio 的本地服务器则支持 OpenAI 和 Anthropic 格式(LM Studio)。更多选择:在 Mac 上运行大模型的最佳应用。

6什么时候换成开放模型

短任务用 fm 就好:总结一条笔记、给文件起名、从文本里提取字段、问个简单问题。它已经在 Mac 上,无需设置。当输入装不进几千个 token、任务需要更强的推理或写代码、你想自己挑模型,或者某个工具需要 API 时,就该用开放模型了。

开放模型在 Mac 的 GPU 上运行,能装下什么取决于统一内存。我们 Compare 页面的计算默认按 GPU 可用约 75% 来算,并为上下文留出空间:

Mac 内存GPU 可用运行流畅的例子所需内存
8GB约 6GB4-bit 的 Llama 3.1 8B4.5GB,含上下文 6.0GB
16GB约 12GB8-bit 的 Llama 3.1 8B,6-bit 的 Qwen3.5 9B8.5GB 和 7.3GB,含上下文 10.0GB 和 8.8GB
24GB约 18GBgpt-oss-20b,原生 4.25-bit13.8GB,含上下文 15.3GB
32GB约 24GB4-bit 的 Qwen3.6 35B A3B19.7GB,含上下文 21.3GB
我们根据各模型官方模型卡计算:MLX 每个权重占(位数 + 0.5)位,另加 8% 或 1.5GB 给上下文。每种内存能运行的全部模型及速度范围:8GB、16GB、24GB、32GB。

这些模型的模型卡列出了长得多的上下文窗口:Llama 3.1 8B 为 128K 个 token,Qwen3.6 35B A3B 为 262,144 个,不过长上下文需要的内存超出上面计算的余量。不确定你的 Mac 有多少内存?在苹果菜单的“关于本机”里查看,然后看看按芯片分类的 Mac。

mlx-lm 是运行它们的一种方式:Apple 自己的 MLX 工具可以从 Hugging Face 下载 MLX 模型,在终端里和它们聊天,并提供上面提到的本地 API。LM Studio 和 Ollama 在 App 里做同样的事(在 Mac 上运行大模型的最佳应用)。你不用 Mac 时,MLX Node 可以在你设定的限制内为 MLX Network 运行 AI 任务,并为经过验证的工作赚取 MLX 代币。MLX 代币可能贬值,请阅读 风险说明。

7常见问题

macOS 的 fm 命令免费吗?
它随 macOS 27 预装,默认使用 macOS 自带的设备端模型。更大的私密云计算模型有使用限制(Apple)。
fm 能离线使用吗?
用设备端模型可以:苹果说它无需联网即可工作(Apple)。不过要先下载 Apple Intelligence,而 --model pcc 或 fm chat 里的 /model 会使用苹果的服务器。
fm 能接受多长的提示?
提示、指令和回答共用一个上下文窗口:苹果文档写的是 4,096 个 token,苹果针对 macOS 27 的 WWDC26 示例显示 8,192 个(Apple)。英文中大约三到四个字符算一个 token。
fm 提供 OpenAI 兼容的 API 吗?
苹果的 WWDC26 讲座和我们读过的 Foundation Models 文档都没有介绍服务器模式,所以我们无法确认它如何工作。如果需要有文档的本地 API,mlx_lm.server 会在 localhost:8080 以 OpenAI 风格提供开放模型,LM Studio 则支持 OpenAI 和 Anthropic 格式。
哪些 Mac 可以使用 fm?
运行 macOS 27 且支持 Apple Intelligence 的 Mac:任何配备 M1 或更新芯片的 Mac,设为受支持的语言,并有最多 14GB(M3 或更新芯片且内存不少于 12GB)或最多 8GB 的可用存储空间(Apple)。

来源

  1. Appledeveloper.apple.com
  2. Applesupport.apple.com
  3. Appledeveloper.apple.com
  4. Appledeveloper.apple.com
  5. Appledeveloper.apple.com
  6. Appledeveloper.apple.com
  7. Applegithub.com
  8. Appledeveloper.apple.com
  9. Appledeveloper.apple.com
  10. Appledeveloper.apple.com
  11. mlx-lmgithub.com
  12. LM Studiolmstudio.ai
  13. Llama 3.1 8Bhuggingface.co
  14. Qwen3.6 35B A3Bhuggingface.co
  15. mlx-lmgithub.com

延伸阅读