macOS 27から標準搭載されるシェルコマンド「fm」(/usr/bin/fm)を通じて、Apple Foundation Models(=Apple IntelligenceのLLM)を呼び出すことができます。
macOS 27のBetaをインストールしてある環境であれば、AFMを試すことができます。開発者登録している方、あるいは一般のユーザーでもβユーザー登録してあればmacOS 27をインストールできます。
Apple Silicon搭載Macであればこれらの環境を利用可能ですが、念のためRAM 16Gバイト以上だと安心できることでしょう。
その他、fmコマンドを利用するには、システム設定でSiriをオンにしてある必要があります。AFMが使用可能になっているかどうかをfmコマンド自体で確認可能です。
ターミナル(Terminal.app)上で以下のように「fm available」コマンドを実行することで、現在使用中の(macOS 27以降の)環境でAFMが使用可能かどうかを確認できます。
% fm available
System model available
PCC model available
有効/無効確認の手段が用意されていることは前向きに評価できます。
fmコマンドでできること
fmコマンドができることは、LLMへの問い合わせです。おおよそChatGPTやGeminiなどへの問い合わせを行うのと同様に自然言語によるテキストチャットによる対話も行えます。
英語でも日本語でも応答してくれますが、応答/翻訳できるのは15言語程度です。
日本語、英語(米国、英国、オーストラリア、カナダ、ニュージーランド、インド、シンガポール)、フランス語、ドイツ語、イタリア語、ポルトガル語、中国語(簡体字、繁体字)、韓国語、ベトナム語、デンマーク語、オランダ語、ノルウェー語、スウェーデン語、トルコ語
AFMからの応答は必要に応じてMarkdownで装飾されて返ってきます(プログラムリストや見出しなど)。
用途に応じて2つのモデルを指定可能
AFMにはデフォルトで用意されているLLMモデルが2つあります。
ローカルで完結する「system」と、Appleのプライベートクラウドのサーバー群で動作する「pcc」の2つです。インターネット接続不要のsystem、接続必須のpccと見ることもできます。
ローカルのモデルは、「とりあえず動く」程度の内容であり、ちょっと込み入った内容になると、
「Appleのウェブサイトで、最新の製品情報や機能をご確認ください。」
といった当たり障りのない(情報量のない)内容を返すようになります。
コマンドラインからfmコマンドを介してモデルを指定して応答を取得してみましょう。モデルによって情報量が大幅に異なります。
% fm respond "AppleScriptとは何ですか?" --model system
% fm respond "AppleScriptとは何ですか?" --model pcc
(system)AppleScriptは、Appleのコンピュータで動作するスクリプト言語で、アプリケーションやシステムの操作を自動化するために使用されます。テキストベースの言語であり、テキスト編集やファイル操作、アプリケーションの起動など、さまざまなタスクを簡潔に記述できる点が特徴です。
(pcc)AppleScriptは、Appleが開発したスクリプト言語で、macOS上でアプリケーションやシステム機能を自動化するために使用されます。この言語は、英語に近い自然な構文を持っているため、プログラミングの経験が少ない人でも比較的簡単にスクリプトを書くことができます。
AppleScriptを使うことで、例えば以下のような作業を自動化できます:
- ファイルやフォルダの管理
- アプリケーションの操作(メールの送信、ドキュメントの作成など)
- システム設定の変更
- インターネットからのデータの取得
スクリプトは「Script Editor」というアプリケーションを使って作成・実行され、他のアプリケーションとAppleEventsというメカニズムを通じて通信します。これにより、macOS環境での作業効率を大幅に向上させることができます。
AFMの使用可能な残トークン確認
pccはAppleの自社クラウド上にあるLLMのサービスであるため、ローカルのsystemとは異なり、使用可能なトークン上限が設定されています。Web上で探してみると「4096トークン/日」となっているようですが、macOS 27のリリース時にこのままなのかは不明です。まだβ版であるため、最終仕様ではありません。
% fm quota-usage --model pcc
PCC: ✓ Available
% fm quota-usage --model system
System: Not applicable (quota only applies to PCC)
fmコマンド経由では、使用可能なトークン数を厳密に取得することはできないようです。あくまで、使用可能(Available)かどうかを返してきます。
なお、実行するまえにクエリがどの程度のトークンを消費するかを確認できるようになっています。
% fm count-tokens "AppleScriptとは何ですか?"
Token count: 15
このとき、pccかsystemかといったモデルの指定はできませんが、暗黙の了解でpcc使用時の消費トークン数でしょう(ローカル動作のsystemではトークン消費を気にする必要がありませんし)。
AFMの情報最新日付を確認
LLMへの一般的なアプローチがAFMでも有効で、モデルの学習データの最新日付がいつなのかを問い合わせると答えてくれます。
% fm respond 'あなたの現在の日付を教えてください。' --model pcc
% fm respond 'あなたの現在の日付を教えてください。'
pcc: 2025年04月29日
system: 2024年10月29日
つまり、これよりも新しいネット上の情報は反映されていない状態です。macOS 27のリリース時(iOS 27のリリース時?)にはこれらのモデルも更新される可能性がありますが、本稿執筆時点では上記のとおりです。
# 本稿を書いて塩漬けにしている間に上記の応答が変わりました。
----system(Local LLM)の応答(2026/08/04)
私はAppleによって開発された言語モデルです。
[必要なツールを検索]
今日の日付を取得するためのツールが存在しません。しかし、現在の日付を正確に把握するには、サーバー上のタイムサーバーからの情報が必要であり、その情報を提供できる機能は存在しません。そのため、具体的な日付を提供することはできません。
---
AFMも一般的なLLMと同様に、個人情報に関わることには答えてくれなかったり、米国における政治状況やAppleの利益に反することには回答してくれません。
fmコマンドを実行する環境ごとに利用できるmodelも異なる
macOS標準搭載のTerminal.app上では、modelがsystem(Local)でもpcc(クラウド)でもどちらも指定して実行できます。
しかし、AppleScriptのdo shell scriptコマンド上では制限がかかっており、利用できるのはsystem(Local)のみです。
do shell scriptコマンド内でも環境変数の設定により、Terminal.app上と同様にpcc(クラウド)を利用できるようになるのかはわかりませんが、現状ではsystem(Local)のみであると認識しています。
逆をいえば、Swiftでそのような処理を行うプログラムを書いてAppleScriptからdo shell scriptで呼び出せばよいだけでしょう。そういう使い方ができないAppleScript実行環境(ライブラリ呼び出し不可+バンドル形式Script実行不可)では、system(Local)のみ利用できることになるでしょう。
