2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[macOS 27] Mac に標準搭載されたローカル AI の CLI リファレンス

2
Last updated at Posted at 2026-09-20

Apple Foundation Models は、軽量だけど結構使える

一般的なローカルLLMが「大きなモデルを常時RAMにどんと居座らせる」のに対し、AFMは「圧縮された1つの核だけをOS深層に控えさせ、必要な瞬間だけ極小アダプタを瞬時に着脱して終わったら捨てる」というOSネイティブならではのアプローチをとっています。そのため、8GB〜16GBといった最小構成のMacでもシステムの軽快さを損なわずに動作します。

このリファレンスの読み方

fm は、Macに入っているAppleのAIをターミナルから使うコマンドです。このリファレンスでは、次の順番で説明します。

  1. 目的に合う使い方を選ぶ
  2. 文字で質問・会話する
  3. ファイルを作成・読み込み・安全に書き直す
  4. 画像を渡し、画像について続けて質問する
  5. JSONやAPIなどの発展的な使い方

各項目は「シチュエーション → 利用例 → 解説」の順です。

1. 最初に知っておこう

fm でできること

  • わからない言葉を説明してもらう
  • 文章を要約、翻訳、校正してもらう
  • メールなどの返信案を作ってもらう
  • 文章を目的別に分類してもらう
  • 画像の説明や文字の読み取りをしてもらう
  • 決まった形のJSONを作ってもらう

基本的な処理はMac上で行われ、APIキーは必要ありません。

[!NOTE]
macOS 27以降と、Apple Intelligenceに対応したMacが必要です。モデル、言語、地域の準備状況によっては利用できません。

最初に使い方を選ぼう

fm には、目的の異なる2つの基本的な使い方があります。

やりたいこと 選ぶコマンド 画像も渡せる?
1回質問する fm respond 渡せる
対話画面で会話を続ける fm chat 直接は渡せない
画像について1回質問する fm respond --image 渡せる
画像について何回か質問する fm respond --image と会話記録 渡せる

[!IMPORTANT]
fm chat の中へ画像を直接添付する機能は、現在のmacOS 27.0版にはありません。画像を使うときは fm respond --image を選びます。続けて質問したい場合は、会話をファイルに保存して再開します。

fm とファイルの関係

fm は文章を扱えますが、普通の文書ファイルを直接作成・編集する専用機能はありません。ファイルの読み書きには、ターミナルの機能を組み合わせます。

入力ファイル ── < ──> fm ── > ──> 出力ファイル
                       │
                       └─ AIが文章を考える
記号 意味 例
< ファイルをコマンドへ渡す fm respond < question.txt
> 結果を保存する。既存内容は上書き fm respond '質問' > answer.txt
>> 結果をファイルの最後へ追加する fm respond '質問' >> notes.txt
\ コマンドを次の行へ続ける 後の例を参照
'...' 空白を含む文や名前をひとまとまりにする 'My File.txt'

[!WARNING]
> の右側にある同名ファイルは上書きされます。大切なファイルでは、必ず別名へ保存してください。

空白を含むファイル名は 'My Report.txt' のように囲みます。別のフォルダーにあるファイルは ~/Documents/report.txt のように場所を含めて指定します。

2. 利用できるか確認する

シチュエーション

自分のMacで fm が使えるか確かめたい。

利用例

fm available

System model available と表示されれば利用できます。初回に利用条件への同意を求められた場合は、次を実行します。

fm license

解説

available は「利用できますか?」という意味です。同意状態は fm license --status で確認できます。
初回は、下記の様なメッセージが表示され、sudo fm license の実行が求められます。

YOU HAVE NOT AGREED TO THE APPLE FOUNDATION MODELS CLI LEGAL NOTICE & TERMS.
Agreeing to the Apple Foundation Models CLI Legal Notice & Terms
applies to every user on the machine, so it must be run as a
privileged user (e.g. "sudo fm license').

3. AIに1回質問する

シチュエーション

授業で出てきた「光合成」を、わかりやすく説明してほしい。

利用例

fm respond '光合成を中学生にもわかるように説明してください'

解説

respond はAIに1回質問して答えてもらうコマンドです。基本形は fm respond '質問やお願い' です。

答え方も指定できます。

fm respond \
  --instructions '中学生向けに3つの箇条書きで答えてください' \
  '地球温暖化とは何ですか?'

--instructions は答え方の指示です。短く -i とも書けます。

4. AIと続けて会話する

シチュエーション

数学について質問した後、さらに質問を続けたい。

利用例

fm chat --instructions 'あなたは中学生向けの数学の先生です'

会話を終えるときは Control-D、直前の会話を続けるときは次を使います。

fm chat --continue

解説

chat はAIと何回も会話するコマンドです。セッションは ~/.fm/sessions/ に保存されます。

ファイルを扱う

5. AIの答えから新しいファイルを作る

シチュエーション

光合成の説明を作り、photosynthesis.md へ保存したい。

利用例

fm respond --no-stream \
  -i '見出しと箇条書きを使ったMarkdownで書いてください' \
  '中学生向けに光合成を説明してください' \
  > photosynthesis.md

内容を確認します。

cat photosynthesis.md

解説

  • fm respond がAIから回答を得ます。
  • --no-stream は、答えの完成後にまとめて出力します。
  • > が出力をファイルへ保存します。
  • cat はファイルの内容を表示します。

つまり、fm が中身を作り、シェルの > がファイルを作ります。

6. ファイルを読み込んで要約する

シチュエーション

長い report.txt の大事なところだけを読みたい。

利用例

画面に表示する場合:

fm respond -i '大事な点を5つにまとめてください' < report.txt

summary.txt に保存する場合:

fm respond --no-stream \
  -i '大事な点を5つにまとめてください' \
  < report.txt \
  > summary.txt

解説

report.txt → fmが要約 → summary.txt

< が元の文章を読み込み、> がAIの答えを別ファイルへ保存します。元の report.txt は変更されません。

7. ファイルを安全に書き直す

シチュエーション

draft.txt の誤字を直したいが、元の文章も残したい。

利用例

まず別名へ保存します。

fm respond --no-stream \
  -i '意味を変えずに誤字を直し、修正後の本文だけを返してください' \
  < draft.txt \
  > draft-new.txt

違いを確認します。

diff -u draft.txt draft-new.txt

問題がなければ置き換えます。

mv draft-new.txt draft.txt

解説

diff -u は2つのファイルの違いを表示し、mv はファイルを移動または改名します。安全な手順は「別名で保存 → 差を確認 → 置き換え」です。

次のコマンドは実行しないでください。

# 危険: 入力と出力が同じ
fm respond < draft.txt > draft.txt

シェルが先に draft.txt を空にするため、元の内容を失う可能性があります。

8. 英語のファイルを翻訳する

シチュエーション

english.txt を読みやすい日本語にして保存したい。

利用例

fm respond --no-stream \
  -i '中学生にも読みやすい自然な日本語へ翻訳してください' \
  < english.txt \
  > japanese.txt

解説

翻訳専用コマンドはなく、respond へ翻訳するよう指示します。人名、数字、日付などは元の英文と見比べてください。

9. 返信案を作る

シチュエーション

受け取ったメールを received-mail.txt に保存したので、丁寧な返信案を作りたい。

利用例

fm respond \
  -i 'このメールへの丁寧な返信案を作ってください。返信本文だけを返してください' \
  < received-mail.txt

3種類の候補を作る場合:

fm respond \
  -i '短い返信、丁寧な返信、フレンドリーな返信の3案を作ってください' \
  < received-mail.txt

解説

fm がメールアプリから自動的に本文を読むわけではありません。コピーして保存した本文など、利用者が渡した文章を基に返信案を作ります。送信前に、名前、日時、約束の内容を必ず確認してください。

10. 文章を分類する

シチュエーション

messages.txt に書かれた項目を「学校」「家庭」「趣味」に分けたい。

利用例

fm respond \
  --use-case content-tagging \
  -i '各項目を「学校」「家庭」「趣味」に分類してください' \
  < messages.txt

解説

--use-case content-tagging は、文章へ分類用のタグを付ける作業に適した設定です。fm が通知やメールを自動取得するのではなく、渡した文章だけを分類します。

11. 答えと会話記録を使い分ける

シチュエーション

読むための文書と、後で続きを質問する会話記録を使い分けたい。

利用例

答えだけを文書にする:

fm respond --no-stream '勉強計画をMarkdownで作って' > study-plan.md

会話記録を保存する:

fm respond --save-transcript session.json '勉強計画を考えて'

続きを質問する:

fm respond \
  --resume session.json \
  --save-transcript session-2.json \
  '数学の時間を増やしてください'

解説

方法 保存内容 目的
> study-plan.md AIが出した答え 読む文書を作る
--save-transcript 質問と答えを含む会話 後で会話を続ける

--save-transcript は、普通の文書を作る機能ではありません。

画像を扱う

画像では、最初に次の使い分けを覚えましょう。

文字だけで連続会話 ──> fm chat
画像を渡す         ──> fm respond --image
画像について続ける ──> --save-transcript と --resume

12. 画像を1枚渡して質問する

シチュエーション

flower.jpg に何が写っているか、1回質問したい。

利用例

fm respond \
  --image flower.jpg \
  --text 'この画像を説明してください'

説明を保存する場合:

fm respond --no-stream \
  --image flower.jpg \
  --text 'この画像を説明してください' \
  > flower-description.txt

解説

--image で画像、--text で質問を指定します。

  • --image flower.jpg: AIへ渡す画像
  • --text '...': 画像についての質問
  • > flower-description.txt: AIの答えを保存

説明を保存しても元の画像は変更されません。別のフォルダーにある画像は、場所を含めて指定します。

fm respond \
  --image ~/Pictures/flower.jpg \
  --text 'この花の色と形を説明してください'

13. fm chat へ画像を渡せるか

シチュエーション

fm chat を開始し、その会話中に画像を添付したい。

利用例

現在の fm chat には --image がないため、次の形では実行できません。

# 使用できない例
fm chat --image flower.jpg

代わりに fm respond を使います。

fm respond \
  --image flower.jpg \
  --text 'この画像を説明してください'

解説

fm chat は文字による対話用、fm respond --image は画像入力用です。

画像ファイル名を文字として入力するだけでは、画像の中身は渡りません。

flower.jpgを説明して

この文字だけでは、AIが flower.jpg の画像データを読んだことにはなりません。

14. 画像について続けて質問する

シチュエーション

画像の説明を聞いた後、「どこが重要?」「別の画像との違いは?」と質問を続けたい。

利用例

最初の画像と会話を保存します。

fm respond \
  --image flower.jpg \
  --text 'この画像を説明してください' \
  --save-transcript image-chat.json

保存した会話の続きを質問します。

fm respond \
  --resume image-chat.json \
  --text '画像の中で特に重要な部分はどこですか?' \
  --save-transcript image-chat-2.json

別の画像を加えて比較します。

fm respond \
  --resume image-chat.json \
  --image another-flower.jpg \
  --label second \
  --text '最初の画像との違いを説明してください' \
  --save-transcript comparison.json

解説

  • --save-transcript: 質問と答えを会話記録として保存します。
  • --resume: 保存した会話の続きから質問します。
  • --label second: 追加画像へ名前を付けて区別しやすくします。

これは fm chat の画面内で会話する方法ではありませんが、コマンドを1回ずつ実行して画像について会話を続けられます。更新後の会話も残すには、毎回 --save-transcript を指定します。

15. 写真の文字やバーコードを読む

シチュエーション

プリントの文字や商品のバーコードを読みたい。

利用例

OCRで文字を読む:

fm respond \
  --image worksheet.jpg \
  --tool ocr \
  -i '読めない文字は推測せず[不明]と書いてください' \
  '画像内の文章を読んでください'

バーコードを読む:

fm respond --image package.jpg --tool barcode \
  'バーコードの値を教えてください'

解説

OCRは画像内の文字を読み取る技術です。--tool ocr と --tool barcode は同時にも指定できます。画像がぼやけていると正しく読めないことがあります。

発展的な使い方

16. トークン数を調べる

シチュエーション

AIへ送るファイルがどれくらいの長さか知りたい。

利用例

fm count-tokens --quiet < report.txt

解説

トークンはAIが文章を読むときの小さな単位です。--quiet を付けると数字だけを表示します。

17. 決まった形のJSONを作る

シチュエーション

文章から名前と年齢を取り出し、JSONファイルにしたい。

利用例

設計図を作ります。

fm schema object \
  --name Person \
  --string name --description '名前' \
  --integer age --description '年齢' \
  > person-schema.json

設計図を使ってJSONを作ります。

fm respond --no-stream \
  --schema person-schema.json \
  '山田太郎さんは14歳です' \
  > person.json

解説

schema は出力形式の設計図です。--string は文字列、--integer は整数を表します。必須にしない項目には、宣言の直後へ --optional を付けます。

18. 別のプログラムからAIを使う

シチュエーション

自作プログラムからWeb APIとして fm を使いたい。

利用例

サーバーを起動します。

fm serve --host 127.0.0.1 --port 1976

別のターミナルで確認します。

curl http://127.0.0.1:1976/health

解説

serve は fm をAPIサーバーとして起動します。APIはプログラム同士の窓口です。終了は Control-C です。初めて使う場合は、外部から接続される可能性がある --host 0.0.0.0 を使わないでください。

まとめ

よく使うコマンド

やりたいこと コマンド例
利用確認 fm available
質問 fm respond '質問'
会話 fm chat
画像について質問 fm respond --image photo.jpg --text '説明して'
画像について質問を続ける fm respond --resume image-chat.json --text '続きの質問'
答えを保存 fm respond --no-stream '質問' > answer.txt
ファイルを要約 fm respond -i '要約して' < report.txt
安全に校正 fm respond --no-stream -i '校正して' < old.txt > new.txt
翻訳 fm respond -i '日本語に翻訳して' < english.txt
返信案 fm respond -i '返信案を作って' < mail.txt
分類 fm respond --use-case content-tagging -i '分類して' < text.txt
OCR fm respond --image photo.jpg --tool ocr '文字を読んで'
バーコード fm respond --image photo.jpg --tool barcode '値を読んで'
トークン数 fm count-tokens --quiet < report.txt
ヘルプ fm --help

学習・ファイル操作の安全チェック

  • > の右側のファイルが上書きされてもよいか
  • 入力と出力が同じファイル名になっていないか
  • 元ファイルやバックアップを残しているか
  • AIの出力に間違いがないか確認したか
  • 個人情報や秘密を不用意に入力していないか
  • 宿題の答えをそのまま提出せず、自分でも考えたか
  • 医療、法律、お金の重要な判断をAIだけに任せていないか

困ったとき

fm: command not found

sw_vers で確認してください。fm はmacOS 27以降に入っています。

モデルを利用できない

fm available --model system

Apple Intelligenceが有効か、モデルのダウンロード、対応言語・地域、fm license --status を確認します。

コマンドの使い方を忘れた

fm --help
fm respond --help
fm chat --help
fm schema object --help

公式情報

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?