サムネイル

Ollama不要?Apple Silicon Mac内蔵AIをコマンドラインで使う無料ツール「apfel」を試した

  • 1

こんにちは、コードを書かないエンジニア@もるふぉです。

「ローカルLLM使いたいけど、モデルのDLが面倒で結局手が出せてない」——自分もずっとそっちでした。

Ollamaを試すたびに数GBのダウンロードが始まって、「また今度でいいか」となる繰り返し。

でも先日Hacker Newsで見かけたツールで、その面倒さが一気に吹き飛んだんです。

「え、自分のMacにもうAI入ってるの?しかもコマンドラインから呼べるの?」って。

今回紹介する「apfel」は、Apple Silicon Macに内蔵されているApple IntelligenceのLLMを、ターミナルやHTTP API経由で自由に使えるようにする無料のOSSツールです。

Ollamaみたいにモデルをダウンロードする必要もなく、APIキーも不要。

brew installして即使えます。

実際に試してみて「これは開発ワークフローに組み込める」と確信したので、インストールから実践的な使い方まで一気に解説していきます。

そもそもApple Siliconには30億パラメータのLLMが内蔵されている

記事の画像

まず前提として知っておいてほしいのが、Apple Silicon搭載のMacには、すでにLLM(大規模言語モデル)が組み込まれているという事実です。

これ、意外と知らないエンジニアが多いんですよね。

あなたのMacBook、実はすでにAIが入ってるんです。

FoundationModelsフレームワークとは

AppleはmacOS 26(Tahoe)で「FoundationModels」というフレームワークを公開しました。

これはApple Intelligenceの中核をなすオンデバイスLLMを、アプリケーションから直接呼び出せるようにするAPIです。

モデルのスペックはこんな感じです。

  • パラメータ数: 約30億(3B)
  • 量子化: 2/4ビット混合精度
  • コンテキスト長: 4,096トークン
  • 推論エンジン: Neural Engine + GPU
  • 対応言語: 英語、日本語、韓国語、中国語、フランス語、ドイツ語、スペイン語、イタリア語、ポルトガル語

30億パラメータというのは、最近のクラウドLLMと比べれば小さいです。

でもオンデバイスで動くモデルとしては十分な規模で、日本語にも対応しているのがポイントですね。

なぜ今まで使えなかったのか

FoundationModelsフレームワーク自体はSwift APIとして提供されているんですが、これまでは「Swiftアプリを作らないとアクセスできない」という状況でした。

つまり、Siriやメール要約などApple純正の機能を通じて間接的に使うことしかできなかったわけです。

ターミナルからサッと呼び出したいエンジニアにとっては、宝の持ち腐れ状態だったんですよね。

ここに登場するのがapfelです。

次のセクションで、「Ollamaと何が違うの?」という疑問に先に答えておきます。

Ollama / LM Studioとの違い - ローカルLLM比較

記事の画像

「ローカルLLMならOllamaでよくない?」という声が聞こえてきそうなので、きちんと比較しておきます。

モデルダウンロード不要・ストレージ消費ゼロ

ここが最大の差別化ポイントです。

項目
apfel
Ollama
LM Studio
モデルDL
不要(OS内蔵)
必要(数GB〜)
必要(数GB〜)
追加ストレージ
0 GB
2〜50 GB
2〜50 GB
セットアップ時間
約1分
5〜30分
5〜30分
モデル選択
Apple内蔵モデルのみ
数百モデル
数百モデル
APIキー
不要
不要
不要
クラウド通信
なし
なし
なし
GUI
なし(CLIのみ)
サードパーティ製あり
あり

数十GBのダウンロードが、ゼロになるんです。

セットアップ時間も「5〜30分」が「約1分」になる。

これだけでもう、試さない理由がなくなりますよね。

apfelはモデルの選択肢がない代わりに、「何も用意しなくていい」というシンプルさがあります。

パフォーマンス比較(Neural Engine vs GPU)

apfelが使うApple FoundationModelsは、Neural EngineとGPUのハイブリッドで推論を行います。

一方、OllamaやLM StudioはGPUのみで推論します。

Neural Engineを活用するapfelの方が、同等サイズのモデルであればエネルギー効率が良い傾向にあります。

バッテリー駆動のMacBookで使う場合、この差は意外と効いてきます。

ただし、Ollamaで70Bクラスのモデルを動かした場合の出力品質には、3Bモデルのapfelは当然ながら及びません。

性能と効率のトレードオフですね。

使い分けの判断基準

自分の中での使い分けは、こう整理しています。

apfelを使う場面

  • 短いテキスト処理(要約・翻訳・分類)
  • シェルスクリプトに組み込むワンショット処理
  • 機密情報を含むコードの簡易分析
  • バッテリー消費を抑えたいとき

Ollamaを使う場面

  • 高品質なコード生成が必要なとき
  • 長いコンテキストを扱うとき
  • 特定のモデル(DeepSeek、Llama等)を使いたいとき
  • 画像入力が必要なとき

両方入れておいて、タスクに応じて切り替えるのがベストですね。

apfelはストレージを食わないので、併用のハードルがゼロです。

「Ollamaより軽くて速い」、その具体的なツールの中身を次で説明します。

apfelとは何か - Apple Intelligence CLIツールを3行で理解する

apfelを一言で説明すると、こうなります。

  • Apple FoundationModelsフレームワークをラップしたSwift 6.3製のCLIツール
  • Homebrewでインストールするだけで、Mac内蔵のLLMをターミナルから使える
  • OpenAI互換のHTTPサーバーモードがあり、既存のツールチェーンにそのまま統合できる

GitHubスターは1,200超(2026年4月時点)、MITライセンスで完全に無料です。

CLIモード・チャットモード・HTTPサーバーモードの3つの使い方

apfelには3つの動作モードがあります。

モード
コマンド
用途
CLIモード
apfel "質問"
ワンショットの質問、パイプで他コマンドと連携
チャットモード
apfel --chat
対話的なやり取り、文脈を保持した会話
HTTPサーバー
apfel --serve
OpenAI互換API、既存SDKからの呼び出し

この3つのモードが揃っているおかげで、「ちょっとした質問」から「開発ワークフローへの本格統合」まで幅広くカバーできます。

「ちょっと試す」だけでも使えるし、本格的にワークフローに組み込むこともできる。この振れ幅の大きさがapfelの面白いところです。

動作要件(macOS 26 Tahoe + Apple Intelligence有効化)

apfelを使うには以下の環境が必要です。

  • Apple Silicon Mac(M1以降)
  • macOS 26 Tahoe以降(2025年9月に正式リリース済み、2026年4月時点で26.4が最新)
  • Apple Intelligenceが有効化されていること
  • Homebrewが導入済みであること

すでに正式リリース済みのOSなので、Apple Silicon Macユーザーなら今すぐ使い始められます。

では実際に動かしていきましょう。コピペで動かせるように手順を整理しました。

5分で動かす - apfelのインストールから初回実行まで

記事の画像

ここからは実際の手順です。

コピペで動くようにしているので、そのまま試してみてください。

brew install apfelでセットアップ

インストールはHomebrewのタップ追加を含めて1行です。

brew install Arthur-Ficial/tap/apfel

これだけ。

モデルのダウンロードは不要です。

Apple IntelligenceのモデルはmacOS自体に組み込まれているので、追加のストレージ消費はゼロです。

Ollamaだと最初にモデルをpullするのに数GBかかるので、この手軽さは大きな差ですね。

ソースからビルドしたい場合はこちら。

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

CLIでプロンプトを投げる(パイプ活用)

最もシンプルな使い方はこれです。

apfel "What is the capital of Austria?"

日本語もいけます。

apfel "Rubyのfreezeメソッドについて簡潔に説明して"

JSON出力にも対応しているので、スクリプトに組み込みやすいです。

apfel -o json "Translate to German: Apple" | jq .content

パイプでの入力も受け付けます。

echo "explain TCP" | apfel

ファイルの内容を読ませることもできます。

apfel -f script.sh "このスクリプトは何をしている?"

システムプロンプトの指定もOK。

apfel -s "あなたはシニアRailsエンジニアです" "N+1問題の解決方法を3つ教えて"

この辺の柔軟さ、CLIツールとしてよく設計されてるなと思います。

パイプ連携やファイル入力まで全部サポートされているということは、シェルスクリプトにそのまま組み込めるということです。

つまり、今まで手作業でやっていた「ちょっとAIに聞きたい」が自動化できる、ということですね。

インタラクティブチャットを試す

対話的に使いたい場合はチャットモードです。

apfel --chat -s "You are a coding assistant"

文脈を保持したまま連続で質問できるので、ちょっとしたペアプロ感覚で使えます。

ただし4,096トークンの制限があるので、長い会話には向きません。

数ターンのやり取りで解決する質問に最適です。

OpenAI互換HTTPサーバーとして起動する

個人的に一番「おっ」と思ったのがこのモードです。

apfel --serve

これでhttp://127.0.0.1:11434にOpenAI互換のAPIサーバーが立ち上がります。

対応エンドポイントはこちら。

  • POST /v1/chat/completions - チャット補完
  • GET /v1/models - モデル一覧

ストリーミング(SSE)対応、ToolCalling対応、response_format: json_objectサポート、CORS対応と、かなりしっかり作り込まれています。

temperaturemax_tokensseedパラメータも使えます。

既存のOpenAI SDKからそのまま呼べるのが最高なんですよ。

次のセクションで具体的なコード例を紹介しますが、base_urllocalhost:11434に向けるだけで動きます。

apfelの開発ワークフローへの組み込みパターン

記事の画像

apfelの真価は、開発ワークフローにサッと組み込めるところにあります。

いくつか実用的なパターンを紹介します。

シェルスクリプトでの活用例

gitのコミットメッセージを自動生成する例です。

#!/bin/bash
# git diff の内容からコミットメッセージを生成
git diff --staged | apfel -s "Generate a concise git commit message for this diff. Use conventional commits format."

エラーログの要約にも便利です。

# 直近のエラーログを要約
tail -100 /var/log/app/error.log | apfel "このエラーログを要約して、原因と対処法を教えて"

こういう「ちょっとAIに聞きたい」をターミナルから即実行できるのは、想像以上に快適です。

既存のOpenAI SDKをそのまま向ける方法

HTTPサーバーモードを起動しておけば、PythonのOpenAI SDKがそのまま使えます。

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="unused"  # APIキーは何を入れてもOK
)

response = client.chat.completions.create(
    model="apple-foundationmodel",
    messages=[
        {"role": "system", "content": "あなたはシニアエンジニアです"},
        {"role": "user", "content": "Pythonでファイルを安全に読み書きする方法を教えて"}
    ]
)

print(response.choices[0].message.content)

base_urlapi_keyを変えるだけ。

既存のコードをほぼそのまま流用できるのは本当に楽です。

curlでも叩けます。

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "apple-foundationmodel",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": false
  }'

ToolCalling(関数呼び出し)の使い方

apfelはOpenAI互換のToolCalling(Function Calling)にも対応しています。

外部ツールと連携する仕組みを作れるということですね。

HTTPサーバーモードで起動した状態で、以下のようにリクエストを送ります。

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "apple-foundationmodel",
    "messages": [{"role": "user", "content": "東京の天気を教えて"}],
    "tools": [{
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "指定した都市の天気を取得する",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {"type": "string", "description": "都市名"}
          },
          "required": ["city"]
        }
      }
    }]
  }'

3Bモデルでのツール呼び出し精度には限界がありますが、シンプルな関数であれば十分に動作します。

なお、レスポンスでツール呼び出しが返ってきた後は、実際のツール実行結果を次のメッセージとして返すハンドラを自分で実装する必要があります。

ローカル環境でToolCallingのプロトタイピングができるのは、開発時に地味に便利ですね。

ただし、何でもできるわけじゃないので、制限についても正直に書いておきます。

実際にapfelを使ってみた正直な感想

記事の画像

ここからは自分が実際に触ってみた率直な感想です。

良いところも微妙なところも正直に書きます。

得意なタスク・苦手なタスク

得意なタスク

  • 短い文章の要約・翻訳
  • コードスニペットの説明(「この関数は何をしている?」系)
  • 簡単な質問応答(事実ベースのQ&A)
  • テキストの分類・ラベリング
  • ワンライナーの生成

苦手なタスク

  • 長いコードの生成やリファクタリング
  • 複雑な推論が必要な質問
  • 最新の技術情報に関する質問(学習データの制約)
  • 日本語の長文生成(品質にバラつきが出る)

30億パラメータのモデルなので、Claude 4やGPT-4oと同じレベルを期待してはいけません。

でも「ちょっとした補助」として使うなら、レスポンスが速くて快適です。

クラウドに送信されない安心感もありますしね。

4096トークン制限の実際の影響

4,096トークンというのは、入力と出力の合計です。

日本語だとざっくり2,000〜3,000文字程度。

実用的にどうかというと、こんな感じです。

  • gitのdiff要約: 小〜中規模の変更なら問題なし
  • コードレビュー: 1ファイル単位なら使える。複数ファイルにまたがるレビューは厳しい
  • 翻訳: 数段落なら快適。長文ドキュメントは分割が必要

「短くてシンプルなタスクをオフラインで高速に処理する」がapfelのスイートスポットです。

長いコンテキストが必要な作業は、素直にClaudeやGPTに任せましょう。

制限事項と注意点

良いことばかり書いてきましたが、制限もきちんと押さえておきましょう。

macOS 26以降が前提

当然ですが、macOS 26 Tahoe以降でないと動きません。

macOS 26 Tahoeは2025年9月に正式リリース済みで、2026年4月時点では26.4まで提供されています。

Apple Silicon Macを使っていれば、OSをアップデートするだけで今すぐ環境を整えられます。

プライベートフレームワーク依存のリスク

apfelはAppleのFoundationModelsフレームワークをラップしていますが、このAPI自体がまだ成熟途中です。

macOSのアップデートでAPIの挙動が変わる可能性はゼロではありません。

OSSとして活発にメンテナンスされている(GitHubスター1,200超)ので、すぐに追従されるとは思いますが、プロダクション環境のクリティカルパスに組み込むのは時期尚早でしょう。

開発補助やローカルでのプロトタイピング用途なら、リスクは許容範囲です。

推論速度の現実

推論速度は、短いプロンプトであればほぼ瞬時に返ってきます。

体感的にはOllamaの小型モデル(Phi-3等)と同等か、やや速い印象です。

ただし出力が長くなると、トークン制限に近づくにつれて速度が低下する傾向があります。

よくある質問

apfelはIntel Macでも使えますか?

使えません。Apple Silicon(M1以降)搭載のMac限定です。FoundationModelsフレームワーク自体がNeural Engine前提の設計になっているためです。Intel MacではOllamaを使うのが現実的な選択肢です。

Apple Intelligenceを有効にしていないと動きませんか?

はい、Apple Intelligenceの有効化が必須です。システム環境設定 → Apple Intelligence & Siri から有効化できます。有効化後、モデルのダウンロードがバックグラウンドで自動的に行われます(apfel用の追加DLは不要)。

apfelのHTTPサーバーはOllamaのAPIと互換性がありますか?

OpenAI互換APIとして設計されているため、OllamaのOpenAI互換モードと同じエンドポイント形式です。base_urlhttp://localhost:11434/v1に向ければ、OpenAI SDKからそのまま呼び出せます。ただしOllama固有の拡張エンドポイント(/api/generate等)には対応していません。

商用利用はできますか?

apfel自体はMITライセンスで商用利用可能です。ただし、FoundationModelsフレームワークはAppleのプライベートAPIに依存しているため、本番サービスへの組み込みはAppleのガイドラインの変更リスクを考慮した上で判断してください。開発補助ツールやプロトタイプ用途では問題ないと考えています。

まとめ - こんなエンジニアにapfelを勧めたい

apfelは「Mac内蔵のAIをコマンドラインから使える」というシンプルなツールですが、刺さる人には深く刺さります。

こんな人におすすめです。

  • Apple Silicon Macを使っていて、ちょっとしたAI処理をターミナルで完結させたい人
  • Ollamaに興味はあるけど、モデルのダウンロードが面倒で手を出していなかった人
  • 機密コードをクラウドに送りたくないけど、AIの補助は欲しい人
  • シェルスクリプトにAIを組み込んで自動化したいエンジニア
  • OpenAI互換のローカルAPIサーバーを最小構成で立てたい人

逆に、高品質なコード生成や長文処理が主目的なら、Ollamaで大きめのモデルを使うか、素直にクラウドAPIを使った方がいいです。

apfelの強みは「ゼロコスト・ゼロセットアップ・ゼロ通信」の三拍子が揃っているところ。

macOS 26はすでに正式リリース済みなので、Apple Silicon Macユーザーはすぐにでも開発ツールボックスに追加できます。

まずはbrew install Arthur-Ficial/tap/apfelで体験してみてください。

apfel 公式サイト: https://apfel.franzai.com/

GitHub: https://github.com/Arthur-Ficial/apfel

会員登録して機能を使おう

この機能を利用するには、無料の会員登録が必要です。
お気に入りの記事を保存して、あとで読み返しましょう!