4096 tokens 的 context window、~3B parameters、100% on-device 運算——這不是某個新發布的雲端 AI 服務,而是你 Mac 上本來就有的 LLM,只是被 Apple 鎖在了 Siri 裡。
Apple 把它藏在了哪裡
從 macOS 26(Tahoe)開始,每一台搭載 Apple Silicon 的 Mac 都內建了一個語言模型,作為 Apple Intelligence 的一部分。這個模型透過 FoundationModels framework(一個 Swift API)提供給應用程式使用,所有推論都在 Neural Engine 和 GPU 上執行,不需要網路連線、不需要雲端、不需要 API keys。
但問題在於:Apple 只讓它為 Siri、寫作工具和系統功能服務。沒有終端指令,沒有 HTTP endpoint,沒有辦法透過管道傳遞文字。FoundationModels framework 是存在的,但你需要寫一個 Swift 應用程式才能使用它。
這就是 apfel 進場的地方。
apfel 是什麼
apfel 是一個 Swift 6.3 的二進位檔,它包裝了 LanguageModelSession,並將其以三種方式暴露出來:作為一個帶有 stdin/stdout 的 UNIX 命令列工具、作為一個 OpenAI 相容的 HTTP 伺服器(基於 Hummingbird),以及作為一個帶有上下文管理的互動式聊天。
它處理了 Apple 原始 API 沒有處理的事情:正確的退出代碼、JSON 輸出、檔案附件、五種上下文修剪策略(針對 4096-token 的有限視窗)、透過 SDK 進行真實的 token 計數,以及將 OpenAI tool schemas 轉換為 Apple 原生的 Transcript.ToolDefinition 格式。
硬體層面,apfel 使用的是你的 Apple Silicon(Neural Engine + GPU);模型層面,它使用的是 Apple 隨 macOS 發送的內建 LLM;SDK 層面,它透過 FoundationModels.framework;apfel 層面,它提供 CLI + HTTP server + 上下文管理;最後,你可以在終端、shell scripts、OpenAI SDKs、curl 中使用它。
技術規格
- Context window: 4096 tokens(輸入 + 輸出)
- 模型: 固定的,不可配置
- 編譯器: Swift 6.3,嚴格並發,不需要 Xcode
- 授權: MIT,開源
- 運行位置: Apple Silicon(Neural Engine + GPU)
- 語言支援: en, de, es, fr, it, ja, ko, pt, zh(包含繁體中文)
三種使用方式
UNIX Tool
管道友好且可組合。可以與 jq、xargs 和你的 shell scripts 一起工作。支援 stdin、stdout、JSON 輸出、檔案附件和正確的退出代碼。
$ apfel "What is the capital of Austria?"
The capital of Austria is Vienna.
$ apfel -o json "Translate to German: Apple" | jq .content
"Apfel"
OpenAI Server
在 localhost:11434 的直接替代方案。將任何 OpenAI SDK 指向它,然後開始使用。支援串流、tool calling、CORS 和 response formats。
$ apfel --serve
Server running on http://127.0.0.1:11434
$ curl localhost:11434/v1/chat/completions ...
Interactive Chat
多輪對話,帶有自動上下文管理。五種修剪策略。系統提示支援。全部在你的 Mac 上執行。
$ apfel --chat -s "You are a coding assistant"
Chat started. Type /quit to exit.
> How do I reverse a list in Python?
完整的 OpenAI 相容性
apfel 說 OpenAI API 的語言。任何客戶端程式庫、任何框架、任何與 OpenAI 交談的工具都可以與你的 Mac 的 AI 交談。只需要更改 base URL。
- ✓ POST /v1/chat/completions
- ✓ Streaming (SSE)
- ✓ Tool calling / function calling
- ✓ GET /v1/models
- ✓ response_format: json_object
- ✓ temperature, max_tokens, seed
- ✓ CORS for browser clients
例如,在 Python 中:
from openai import OpenAI
# Just change the base_url. That's it.
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="unused" # no auth needed
)
resp = client.chat.completions.create(
model="apple-foundationmodel",
messages=[{
"role": "user",
"content": "What is 1+1?"
}],
)
print(resp.choices[0].message.content)
實用子命令
cmd
自然語言到 shell 指令。說出你想要的,得到指令。
$ cmd "find all .log files modified today"
oneliner
從普通英文生成管道鏈。awk、sed、sort、uniq——全部為你生成。
$ oneliner "count unique IPs in access.log"
mac-narrator
像自然紀錄片一樣敘述你的 Mac 系統活動。
$ mac-narrator --watch
explain
用普通英文解釋任何指令、錯誤訊息或程式碼片段。
$ explain "awk '{print $1}' file | sort -u"
wtd
這是什麼目錄?為任何程式庫提供即時的專案導向。
$ wtd
gitsum
用幾句話總結最近的 git commits。
$ gitsum
安裝方法
Homebrew(推薦)
$ brew install Arthur-Ficial/tap/apfel
$ apfel "Hello, Mac!"
從原始碼建構
需要 CLT + macOS 26.4 SDK
$ git clone https://github.com/Arthur-Ficial/apfel.git
$ cd apfel && make install
社群反應
截至 2026 年 4 月 3 日的數據,apfel 在 GitHub 上有 1,030 顆星,其中僅在 4 月 3 日當天就獲得了 818 顆星。Star 它的工程師來自 Apple、Google、VMware、NVIDIA 和 Grafana。
零成本、零隱私風險
apfel 的最大賣點是:$0 的 token 成本。沒有 API keys,沒有訂閱,沒有按 token 計費。這是你的硬體——使用它。
同時,100% on-device 意味著:在你的 Apple Silicon 上本機生成的每一個 token。沒有任何東西離開你的機器,永遠不會。
誰該使用 apfel
如果你是:
- 開發者,想要快速測試 AI 功能而不想註冊 API keys
- 重視隱私的使用者,不希望資料離開你的裝置
- 想要離線 AI 能力的 Mac 使用者
- 想要學習如何整合 LLM 的開發者
- 對 Apple 技術生態有興趣的技術愛好者
那麼 apfel 就是為你準備的。
限制與考量
當然,apfel 也有它的限制:
- 僅支援 Apple Silicon:如果你使用的是 Intel Mac,抱歉,這不是為你準備的
- 需要 macOS 26+:需要更新到最新版本的 macOS(Tahoe)
- 必須啟用 Apple Intelligence:這是前提條件
- 4096 tokens 的 context window:對於長對話來說可能不夠用
- 單一模型:無法切換不同的模型
這些限制是 Apple 決定的,不是 apfel 能控制的。apfel 只是提供了一個管道,讓你能夠更容易地使用 Apple 本來就提供的東西。
開發者視角
從開發者的角度來看,apfel 的設計哲學很值得學習:
- 解決真實問題:Apple 把 LLM 藏在了 Siri 裡,apfel 把它釋放出來
- 保持簡單:一個二進位檔,三種使用方式,沒有複雜的依賴
- 開源:MIT 授權,讓社群可以自由使用和修改
- 注重細節:正確的退出代碼、JSON 輸出、檔案附件——這些都是實際開發中會遇到的問題
- 社群驅動:快速迭代,大量 star,來自各大公司的工程師都在使用
這是一個典型的「小而美」開源專案的例子:解決一個具體問題,把它做好,然後開源出來。
對 AI 生態的影響
apfel 的出現,提醒了我們一個常常被忽略的事實:你的裝置本來就比你想像的更強大。
當我們在討論雲端 AI、API keys、每月訂閱的時候,我們往往忽略了本機運算的可能性。Apple 不是唯一一個在本機上部署 LLM 的公司,Google、Microsoft、Meta 都在往這個方向發展。
apfel 的意義在於:它證明了本機 AI 不只是一個技術實驗,而是一個實用的工具。你不需要連網,不需要付費,不需要註冊——你只需要一台 Mac,然後安裝 apfel。
未來展望
apfel 目前還是相對早期的專案(v0.6.31),但它的發展方向很明確:
- 更好的上下文管理:針對 4096 tokens 的限制,apfel 提供了五種修剪策略
- 更廣泛的 OpenAI 相容性:持續增加對 OpenAI API 的支援
- 更多的實用工具:cmd、oneliner、mac-narrator 等子命令的擴充
同時,Apple 也可能會在未來的 macOS 更新中改變 FoundationModels framework 的行為,這將對 apfel 產生直接影響。
但無論如何,apfel 已經證明了一個重要的觀點:本機 AI 不是未來,而是現在。
實際使用場景
讓我們想像幾個實際的使用場景:
場景一:離線寫作
你在飛機上,沒有網路連線,但你需要寫一份文件。你可以用 apfel 的互動式聊天模式,讓它幫你構思、改寫、檢查錯字。全部在你的 Mac 上執行,不需要網路。
場景二:程式碼生成
你在寫一個 Python 腳本,但不知道某個函數的用法。你可以用 apfel 的 explain 子命令,讓它解釋給你聽。
場景三:系統管理
你是一位系統管理員,需要快速產生一些 shell 指令。你可以用 apfel 的 cmd 子命令,直接用自然語言描述你想要的,然後得到指令。
場景四:開發測試
你正在開發一個整合 LLM 的應用程式,但還不想註冊 API keys。你可以用 apfel 的 OpenAI Server 模式,在本地測試你的應用程式。
隱私與安全
apfel 的最大優勢之一就是隱私。因為所有的運算都在你的 Mac 上執行,沒有任何資料會離開你的機器。這對於處理敏感資料的用戶來說,是一個巨大的優勢。
同時,因為 apfel 是開源的,你可以審查它的程式碼,確保它沒有做任何不該做的事情。這與雲端 AI 服務不同——你永遠不知道雲端服務在背後做了什麼。
與其他方案的比較
市面上有許多其他的本機 AI 方案,例如 Ollama、LocalAI 等。apfel 與這些方案的主要區別在於:
- apfel 使用的是 Apple 內建的 LLM,不需要額外下載模型
- apfel 針對 Mac 生態優化,充分利用 Neural Engine 和 GPU
- apfel 的設計哲學是簡單和實用,一個二進位檔,三種使用方式
當然,其他方案也有它們的優勢,例如支援更多的模型、更大的 context window 等。這取決於你的需求。
總結
apfel 不是革命性的技術創新,它只是一個工具——但這個工具釋放了 Apple 本來就提供的能力。它讓你能夠在 Mac 上使用免費、私密、本地執行的 AI,不需要任何 API keys 或訂閱。
對開發者來說,它是一個快速測試 AI 功能的平台;對用戶來說,它是一個離線的 AI 助手;對 Apple 生態來說,它是一個展示本機 AI 可能性的例子。
最重要的是:apfel 提醒了我們,有時候最好的工具不是那些創造新東西的,而是那些釋放潛力的。
對台灣來說,真正的挑戰不是如何追上,而是如何保持自己的節奏。在全球狂歡的時代,保持清醒,可能比任何技術都更難。