apfel

6个月前发布 212 00

apfel 是一款专为搭载 Apple Silicon 的 Mac 设计的开源命令行工具。它通过 macOS 26 (Tahoe) 引入的 FoundationModels 框架,直接调用系统内置的 Apple Intelligence 基础模型。 无需下载任何模型权重,无需 API 密钥,无需联网,所有推理均在本地设备端完成。apfel...

所在地:
美国
收录时间:
2026-04-16
其他站点:

apfel 是一款专为搭载 Apple Silicon 的 Mac 设计的开源命令行工具。它通过 macOS 26 (Tahoe) 引入的 FoundationModels 框架,直接调用系统内置的 Apple Intelligence 基础模型。

apfel

无需下载任何模型权重,无需 API 密钥,无需联网,所有推理均在本地设备端完成。apfel 让你能够像使用 Ollama 一样,通过终端、OpenAI 兼容服务器或交互式聊天界面,充分利用 Mac 自带的 AI 能力。

核心亮点

1. 原生集成,零依赖

  • 无需下载:模型已预装在每台支持 Apple Intelligence 的 M1+ Mac 中。
  • 完全离线:100% 本地推理,数据不出设备,隐私安全性极高。
  • 即开即用:安装后即可调用系统级 AI 能力。

2. 三种运行模式

  • UNIX 工具模式:作为命令行工具,支持管道输入、文件附件、JSON 输出,完美融入 Shell 脚本工作流。
  • OpenAI 兼容服务器:启动本地服务 (http://localhost:11434/v1),可被任何支持 OpenAI SDK 的应用(如 Cursor, Continue, LangChain)无缝接入。
  • 交互式聊天:提供带有上下文管理的 REPL 聊天环境,支持多轮对话。

3. 强大的 MCP 与工具调用

  • MCP 支持:原生支持 Model Context Protocol (MCP),可加载本地或远程 MCP 服务器,赋予模型访问文件系统、搜索网络、执行计算等外部能力。
  • 工具调用:在 CLI、聊天和服务器模式下均支持原生工具调用,实现从“对话”到“行动”的跨越。

4. 极客友好的 Shell 集成

  • 自然语言转命令:内置 demo/cmd 等脚本,可将自然语言直接转换为 Shell 命令、awk 单行代码或 Git 操作。
  • 管道友好:支持 echo | apfel 或 git diff | apfel,让 AI 成为你终端工作流的智能过滤器。

系统要求

  • 硬件:Apple Silicon Mac (M1, M2, M3, M4 系列)。
  • 系统:macOS 26 (Tahoe) 或更新版本。
  • 设置:需在系统设置中启用 Apple Intelligence。

安装方法

Homebrew (推荐)

# 从官方 Tap 获取最新版本
brew install Arthur-Ficial/tap/apfel

# 或等待 homebrew-core 同步(可能延迟)
brew install apfel

源码构建

git clone https://github.com/Arthur-Ficial/apfel.git
cd apfel
make install

快速开始

1. UNIX 工具模式

# 简单问答
apfel "奥地利首都是什么?"

# 管道输入:总结 README
cat README.md | apfel "总结这个项目"

# 文件附件:比较两个文件
apfel -f old.swift -f new.swift "这两个文件之间发生了什么变化?"

# JSON 输出:用于脚本处理
apfel -o json "翻译成德语:你好" | jq .content

# 宽松模式:减少安全护栏对创意写作的干扰
apfel --permissive "写一个惊悚小说的开场白"

2. OpenAI 兼容服务器

启动后台服务,使其行为类似 Ollama:

# 前台运行
apfel --serve

# 后台运行(开机自启)
brew services start apfel

Python 调用示例:

from openai import OpenAI

# 指向本地 apfel 服务
client = OpenAI(base_url="http://localhost:11434/v1", api_key="unused")

resp = client.chat.completions.create(
    model="apple-foundationmodel",
    messages=[{"role": "user", "content": "1+1 等于几?"}],
)
print(resp.choices[0].message.content)

3. 交互式聊天

apfel --chat
apfel --chat -s "你是一个乐于助人的编码助手"
apfel --chat --mcp ./mcp/calculator/server.py  # 加载 MCP 工具

高级功能:MCP 与 Shell 自动化

MCP 工具支持

apfel 可以加载 MCP 服务器,让本地模型具备“手”和“眼”:

# 加载本地计算器工具
apfel --mcp ./mcp/calculator/server.py "15 乘以 27 等于多少?"

# 加载远程搜索工具 (需 Token)
APFEL_MCP_TOKEN=your_token apfel --mcp https://mcp.example.com/v1 "搜索最新 AI 新闻"

Shell 效率神器

将以下函数加入 .zshrc,即可在终端用自然语言执行命令:

cmd(){ 
  local r=$(apfel -q -s '只输出一个 shell 命令,不要解释。' "$*" | sed '/^```/d;/^#/d;s/\x1b\[[0-9;]*[a-zA-Z]//g;s/^[[:space:]]*//;/^$/d' | head -1); 
  printf '\e[32m$\e[0m %s\n' "$r"; 
  eval "$r"; 
}

# 使用示例:
cmd 查找所有大于 1MB 的 swift 文件
cmd 按大小排序显示磁盘使用情况

限制与注意事项

限制项说明
上下文窗口4096 tokens (输入+输出合计),适合短任务和中长文档摘要,不适合超长文本。
模型单一仅能调用 apple-foundationmodel,无法切换其他模型。
多模态缺失目前不支持图像理解或嵌入生成。
安全护栏Apple 的内容安全策略可能拦截某些提示,可使用 --permissive 标志尝试绕过(需谨慎)。
速度取决于 Mac 芯片性能,通常比云端模型慢,但足以满足日常交互。

相关导航