很多本地模型方案都绕不开下载模型、选量化、配显存、调推理服务。Mac 用户还有另一条路:把系统自带的 Apple Intelligence 变成命令行工具和本地 OpenAI 兼容接口。apfel 做的就是这件事。
它把 Apple FoundationModels 暴露成 UNIX CLI、交互式聊天和本地 OpenAI-compatible server。没有云端 API key,没有额外模型下载,推理在设备上完成。它的边界也很明确:需要 Apple Silicon、macOS 26 Tahoe 以上,并且启用 Apple Intelligence。
apfel 值得看,不是因为它能替代所有大模型,而是它给 Mac 上的脚本、Agent、小工具提供了一个低摩擦、本地优先的智能后端。
环境要求先确认
先确认硬件和系统:
uname -m
sw_vers你需要:
- Apple Silicon,也就是 arm64。
- macOS 26 Tahoe 或更新版本。
- 已启用 Apple Intelligence。
- Homebrew 或 Swift 构建环境。
如果这些条件不满足,不要硬装。apfel 依赖的是系统能力,不是自己打包了一个模型。
安装
Homebrew 方式最简单:
brew install apfel升级:
brew upgrade apfel确认:
apfel --help如果从源码构建,需要 macOS 26.4 SDK / Swift 6.3 这类较新的工具链。一般用户先用 brew。
当 UNIX 工具使用
单次提问:
apfel "What is the capital of Austria?"流式输出:
apfel --stream "Write a haiku about code"管道输入:
cat README.md | apfel "Summarize this project in Chinese"附加文件:
apfel -f old.swift -f new.swift "Compare these two files"JSON 输出适合脚本:
apfel -o json "Translate to German: hello" | jq .content这就是它最像 UNIX 工具的地方:能进 pipe,能输出 JSON,能在脚本里拿 exit code。
当本地 OpenAI 接口使用
启动服务:
apfel --serve后台服务:
brew services start apfel它会暴露本地 OpenAI 兼容接口,典型地址类似:
http://localhost:11434/v1Python SDK 可以这样接:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="local"
)
resp = client.chat.completions.create(
model="apfel",
messages=[{"role": "user", "content": "用中文总结这段话"}]
)
print(resp.choices[0].message.content)具体 model 名以 apfel 当前版本为准。接入前先用 curl 或 SDK 跑通最小请求。
适合哪些任务
apfel 更适合:
- 本地文本摘要。
- 小脚本智能处理。
- 文件 diff 初审。
- 离线草稿生成。
- 隐私敏感内容的轻量处理。
- Agent 的低成本本地后端。
不适合硬扛:
- 超长上下文分析。
- 复杂代码库重构。
- 大规模并发服务。
- 需要特定云模型能力的任务。
README 里提到上下文窗口是 4096 token 级别,这决定了它更适合短任务和管道式处理。
接入 Agent 的建议
不要把 apfel 直接设成所有任务默认模型。更合理的路由是:
本地摘要、短文本转换、草稿:apfel
复杂规划、长上下文代码任务:云端强模型
敏感信息预处理:apfel
最终关键判断:人工或强模型复核这样能省成本,也能保持能力边界清醒。
apfel 的意义,是把 Mac 自带模型变成一个可脚本化、可服务化的本地能力。它不是万能大脑,但很适合做身边的小工具底座。能在 shell 里一句话调用的本地模型,往往比一个只存在聊天框里的模型更容易进工作流。