IT技術に関する情報掲載サイト

プログラミングに関することを掲載します。

macOS 27: ローカルLLMの初期設定手順

久しぶりに面白そうなものがでたら、やってみた

macOS 27のローカルLLM「fm」を初期設定する方法|MacだけでAI会話を始める手順

macOS 27では、Apple Intelligenceの基盤であるApple Foundation Model(AFM)を、Mac上で直接使えるようになりました。追加アプリのインストールも、APIキーの取得も不要で、ターミナルから fm コマンドを実行するだけでローカルAIを試せます。

この記事では、対応Macの確認から、初回のライセンス同意、1回だけの質問、対話モード、ローカルAPIとしての利用まで、初期設定の手順をわかりやすくまとめます。

macOS 27のローカルLLMとは

macOS 27に搭載されているのは、いわゆる「モデルを自分でダウンロードして動かすOllama型」の仕組みではなく、OSに組み込まれたAppleのオンデバイスモデルです。Appleの公式な呼び方は「オンデバイスモデル」または「Apple Foundation Model」で、fm はそれを操作するためのコマンドラインツールです。

実機で確認された例では、モデルは AFM 3 Core Advanced、コンテキスト長は8,192トークンでした。大きなモデルファイルを数GB単位でダウンロードする必要がなく、規約同意後すぐに試せるのが大きな特徴です。

事前に確認すること

fm を使うには、次の条件が必要です。

  • macOS 27「Golden Gate」以降がインストールされたMacであること
  • Apple Siliconチップ(M1以降)を搭載したMacであること
  • Apple Intelligenceの対応条件を満たしていること。モデル、言語、地域の準備状況により利用できない場合があります

Intel MacやmacOS 26以前の環境では利用できません。まず「アップルメニュー」→「このMacについて」で、macOSのバージョンとチップを確認してください。

手順1:macOS 27へアップデートする

既存のMacを使っている場合は、まずOSを更新します。

  1. 画面左上のAppleメニューを開く
  2. 「システム設定」を選択
  3. 「一般」→「ソフトウェアアップデート」を開く
  4. macOS 27が表示されたら「今すぐアップデート」を実行

アップデート中はMacが再起動するため、作業中のファイルは保存してから進めてください。

手順2:ターミナルを開く

Spotlight検索を使うのが簡単です。

  1. command + スペース を押す
  2. 「ターミナル」と入力する
  3. 「ターミナル.app」を起動する

ターミナルは、Macに標準搭載されている文字入力ベースの操作画面です。ここにコマンドを入力して、ローカルLLMを操作します。

手順3:fmコマンドを確認する

まず、fm コマンドが使えるかを確認します。次のコマンドを入力してください。

fm --help

または、次のように入力します。

fm

ヘルプが表示されれば、macOS 27のローカルLLM機能が利用できる状態です。

手順4:利用規約に同意する

初回は、Apple Foundation Models CLIの利用規約への同意が必要です。まず次のコマンドを実行します。

fm available

まだ同意していない場合は、次のような案内が表示されます。

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').

画面の案内に従い、次のコマンドを実行します。

sudo fm license

sudo は管理者権限でコマンドを実行するためのコマンドです。実行するとパスワードを求められることがあります。ここで入力するのは、Macにログインするときのパスワードです。

同意はそのMacの全ユーザーに適用されるため、初回のみ管理者権限が必要になります。日常的な fm の利用ごとに sudo を付ける必要はありません。

手順5:まず1回だけ質問してみる

設定が完了したら、単発の質問から試しましょう。

fm respond "ローカルLLMとは何か、1文で説明して"

fm respond は、質問を1回送って回答を1回受け取るコマンドです。ターミナル上で完結するため、ブラウザや専用アプリを開く必要がありません。

手順6:対話モードを使う

前の回答を踏まえて会話を続けたい場合は、fm chat を使います。

fm chat

このモードでは、たとえば次のような使い方ができます。

  • 「日本語でブログ記事の見出しを10個考えて」
  • 「その中からSEO向きのものを3つ選んで理由を説明して」
  • 「選んだ見出しで導入文を書いて」

対話を終了するときは、画面の案内に従って終了コマンドを入力します。チャット形式なので、記事の下書き、要約、言い換え、アイデア出しなどに向いています。

手順7:ローカルAPIとして使う

fm には、モデルをローカルAPIとして利用するための serve コマンドも用意されています。

fm serve --help

この機能を使うと、Mac内で動くAIを自分のスクリプトやアプリから呼び出せるようになります。たとえば、ブログ記事の自動要約ツールや、ローカルで完結する検索補助ツールを作る場合に便利です。

初期設定でつまずきやすいポイント

症状 考えられる原因 対処
fm: command not found と表示される macOS 27未満、または非対応環境 ソフトウェアアップデートとチップ種別を確認する
ライセンス同意を求められる 初回利用のため sudo fm license を実行する
sudo fm license が失敗する 管理者権限がない、パスワード入力ミス 管理者アカウントで実行し、パスワードを再入力する
利用できない、モデルが見つからない 地域・言語・対応機種の制限 Apple Intelligenceの対応条件とOS設定を確認する

どんな人に向いているか

macOS 27の fm は、次のような人に特に向いています。

  • とりあえずローカルLLMを無料で試したい人
  • APIキーの管理や月額課金を避けたい人
  • ブログ記事の要約、見出し案、言い換えにAIを使いたい人
  • 個人情報を含むメモを外部サービスへ送りたくない人
  • ターミナルや簡単なスクリプトに抵抗がない人

一方で、非常に長い文章の処理や、特定分野に特化した高度な生成には、Ollamaなどで任意のモデルを動かす方が向く場合もあります。まずはOS標準の fm で用途を試し、足りない部分だけOllamaなどで補う進め方が現実的です。

まとめ:macOS 27なら追加アプリなしでローカルLLMを始められる

macOS 27のローカルLLM初期設定は、次の3ステップで完了します。

  1. Apple Silicon搭載MacをmacOS 27へアップデートする
  2. ターミナルで sudo fm license を実行して規約に同意する
  3. fm respond または fm chat でAIを使い始める

追加ダウンロードやAPIキーが不要なため、「ローカルAIを始める最初の一台」として、macOS 27搭載Macはかなり扱いやすい選択肢です。

 

実際、使ってみた感想は、まだまだ、知識が全然足らないかな〜。

Claude Codeで /radio を打つとラジオが流れる?

Claude Codeで /radio を打つとラジオが流れる?

Claude Codeには、ちょっと遊び心のある /radio コマンドがあります。これを実行すると、ブラウザで Claude FM の lo-fi ラジオが開き、作業中のBGMとして使えます。

開発の合間にちょうどいい

コードを書いていると、無音すぎて集中しづらいことがあります。そんなときに /radio を使うと、ターミナル作業の流れを止めずに、気分だけを少し切り替えられます。

何がうれしいのか

この機能の面白さは、単なる音楽再生ではなく、Claude Code の体験そのものに「作業空間」を足している点です。AIツールが“相棒”から“作業環境”へ変わっていく例としても興味深いです。

使い方

使い方はシンプルです。Claude Code のセッション内で /radio と入力するだけで、Claude FM のラジオが開きます。

ひとこと

開発に必要なのは、速さだけではありません。少しだけ気分を整える仕掛けがあると、長時間の作業がかなり楽になります。こういう遊び心は、いつでも、大事にしていたい。

Google AntigravityのAgent Managerのサイドバーの日本語化

Google AntigravityのAgent Managerを使ってて、サイドバーのチャット履歴が英語になってしまって、変更できないし、わかりにくくて困っていたけど、Playgroudのチャットで直接依頼したら、できました。依頼時の指示内容は、

Agent Managerのチャットの履歴のタイトルが英語になっちゃうんだけど、日本語にしたい。また、変更したい

です。変更はできないって回答をもらった。

 

※しばらく、つかったら、できたりできなかったりするようなので、もっといい方法があるかもしれないです。

エラー対処:miseトラブルシューティングの手順

brew install miseをしたあとに、

node --version

 

ってしたら、以下のエラーがでた

 

mise ERROR error parsing config file: ~/Desktop/develop/mise.toml                                                                                                                              

mise ERROR Config files in ~/Desktop/develop/mise.toml are not trusted.

Trust them with `mise trust`. See https://mise.jdx.dev/cli/trust.html for more information.

mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information

 

 

エラーの内容を見ると、mise(ランタイムマネージャー)がセキュリティ上の理由で設定ファイルをブロックしている状態です。

mise は、知らないうちに悪意のある設定が実行されないよう、新しいプロジェクトや変更された設定ファイルを「信頼(trust)」する手順を求めてきます。

 

対応方法は、

mise trust

 

でなおる

 

 

Maxプラン不要!Claude CodeでChrome操作を実現する

Claude code 2.0.72から/chromeでchromeの操作ができるようになったみたいですが、実際やってみたら、Maxプランに入らないと、Chromeにextentionがインストールできなかったので、違う方法をさがしました。

 

一番簡単な方法は、Claude CodeでMaxプランなしでChrome操作を実現する方法です。

すぐに試せる方法:Playwright MCPサーバー という方法があります。

 

以下のコマンドでPlaywright MCPサーバーを追加すれば、Claude Codeからブラウザを操作できるようになります。

claude mcp add --transport stdio playwright -- npx -y @playwright/mcp@latest 

インストール後、claudeコマンドなどでたちあげて、

Claude Code内で以下のように指示するだけです

例:Chromiumブラウザを開いてGoogleにアクセスし、スクリーンショットを撮ってください

 

簡単なので、色々試してみてください。

 

 

Google Antigravityで日本語対応方法する方法

こんな感じでできます。Antigravityはもっとつかってみよう。

手順

  1. 「CMD + Shift + X」で拡張機能パネルを表示させる
  2. 検索窓のところに「Japanese Language Pack for Visual Studio Code」を入力
  3. インストールを実施
  4. 再起動実施
  5. 「CMD + Shift + P」からパレットを呼び出す
  6. 「Configure Display Language」にて、日本語を選択。

これで、Antigravityを日本語で使うことができます。ためしてみてください。

Slackのキーワード検索の方法

Slackに投稿したメッセージを一定のキーワードで抽出したかったので、その方法を調べたのでメモ。jpから後ろは、CSV形式でダウンロードさせるためのコマンドです。

curl -s -G https://slack.com/api/search.messages \
  -H "Authorization: Bearer xoxp-<USER_TOKEN>" \
  --data-urlencode "query=キーワード" |
jq -r '.messages.matches[] | [.permalink, .text] | @tsv'

 

トークンを取る方法

Slack APIで必要なスコープを取得する流れをまとめます


1. どのスコープが必要か

  • search.messages を使う場合

    • User Token (xoxp-...) が必要

    • スコープ: search:read

    • Bot Token (xoxb-...) では利用できません

  • chat.getPermalink を使う場合

    • Bot Token / User Token どちらでも可

    • 特別なスコープは不要(通常の chat:write などがあればOK)


2. スコープを取得する手順

  1. Slack API管理画面にアクセス
    https://api.slack.com/apps にアクセスし、自分のワークスペースのアプリを作成するか既存アプリを選びます。

  2. OAuth & Permissions を設定

    • 左メニューの "OAuth & Permissions" をクリック

    • 「User Token Scopes」セクションで search:read を追加します。

    • Botトークンに付ける場合は「Bot Token Scopes」に権限を追加します。

  3. Install App to Workspace

    • 画面下の「Install App to Workspace」を押して権限をワークスペースにインストールします。

    • インストール後に xoxp-... (User Token) や xoxb-... (Bot Token) が発行されます。

  4. トークンを使う

    • search.messages を使うコードでは xoxp-... トークンを使う必要があります。

    • chat.getPermalink は Botトークンでも動くので、既存Botに組み込むならこちらでも可です。


3. ポイント・注意点

  • User Tokenは個人ユーザーにひもづくので、他ユーザーの検索も対象になります。

  • Bot Tokenでは検索APIは不可なので注意してください。

  • 会社のSlackだと管理者の承認が必要な場合があります(特にUser Tokenを発行する時)。