laptop_mac macOS Sonoma
Intermediate
schedule 8 min read
by Alex Rivera • May 14, 2024
Step 1 macOSでAIをシステム全体に解き放つ
現代のmacOSパワーユーザーは、断片化されたAIの世界で活動しています。ChatGPTにピン留めされたブラウザタブ、ライティング支援のための別々のアプリ、そしてフロー状態を破壊する絶え間ないコンテキストスイッチング。もしAIがブラウザウィンドウに孤立するのではなく、オペレーティングシステムの構造に直接織り込まれ、必要な瞬間にすぐに利用でき、ミリ秒単位で応答し、データが一切マシンの外に出ないとしたらどうでしょうか?
OllamaをRaycastに接続すると、まさにそれが実現します。この組み合わせは、Macとのインタラクション方法を根本的に変革します。
このアーキテクチャが異なる理由
ほとんどのAI統合は同じパターンをたどります。アプリを開き、プロンプトを入力し、クラウドの応答を待ち、出力をコピーする。このワークフローはすべてのステップで認知的オーバーヘッドを生み出します。Raycast + Ollamaは、AIをファーストクラスのシステムプリミティブとして位置づけることで、このパターンを完全に打ち破ります。
| アプローチ |
レイテンシ |
プライバシー |
オフラインサポート |
コンテキスト認識 |
| ブラウザベースのChatGPT |
高い(ネットワークラウンドトリップ) |
❌ データがOpenAIに送信される |
❌ インターネットが必要 |
限定的 |
| ネイティブAIアプリ |
中程度 |
まちまち |
場合による |
最小限 |
| Raycast + Ollama |
超低遅延(localhost) |
✅ 100%ローカル |
✅ 完全オフライン |
深い(システム全体) |
Ollamaがもたらすもの
Ollamaは、Apple Silicon上でローカルに大規模言語モデルを実行する軽量な推論サーバーです。http://localhost:11434上にクリーンなREST APIを公開しており、他のツールが簡単に利用できるようにしています。Llama 3、Mistral、Phi-3、Gemma 2などのモデルは、Mシリーズチップ上で印象的な速度で動作し、一般的なタスクではクラウドモデルの応答時間に匹敵するか、それを上回ることも少なくありません。
Terminal
# Verify Ollama is running and listening
curl http://localhost:11434/api/tags
# Expected output: a JSON list of your locally installed models
Ollamaがバックグラウンドサービスとして動作し始めると、Raycastを含む適切に設定されたアプリケーションがクエリできる、永続的なAIバックボーンになります。
Raycastがもたらすもの
Raycastはシステム全体で使えるコマンドランチャーで、数十万人のMacユーザーにとって事実上Spotlightの代替となっています。その拡張エコシステムにより、ほぼあらゆるものと統合でき、AIコマンドフレームワークによって、選択したテキスト、クリップボードの内容、または自由形式のプロンプトを任意のLLMエンドポイントに直接パイプできます。
ここでの重要な洞察:RaycastコマンドはmacOSのどこからでも利用できます。Xcodeで関数をレビューしているときも、Notionでドキュメントを作成しているときも、Slackでメッセージを書いているときも、Terminalでスクリプトをデバッグしているときも、シングルホットキーの呼び出しでアプリを切り替えることなく、作業中のものにAIを呼び出せます。
コンポーザビリティの力
このセットアップを真に強力にしているのは、単一の機能ではなくコンポーザビリティです。次のことが可能になります:
- エディタでコードを選択 → Raycast AIコマンドを呼び出す → 説明をクリップボードに注入する
- Safariで密度の高い段落をハイライト → ページを離れずに平易な言葉で要約する
- Terminalからエラーメッセージを取得 → デバッグ用プロンプトで処理する → すぐに修正内容を貼り付ける
これが、「訪問するツール」としてのAIと、「持ち歩く能力」としてのAIの違いです。以降のセクションでは、必要なRaycast拡張機能のインストールから、ワークフロー全体をOS標準機能のように感じさせるホットキーの設定まで、このシステムをゼロから構築する手順を説明します。
注意: このガイドのすべての操作はデバイス上で完結します。APIキー、サブスクリプション、テレメトリは一切不要です。プロンプトとレスポンスがMacの外に出ることはありません。
Step 2 前提条件: Raycastのセットアップ
Ollamaとの連携に入る前に、Raycastの環境を適切に設定する必要があります。この基盤を省略すると後で問題が生じるため、最初から正しく設定しましょう。
必要なもの
| 要件 |
バージョン |
備考 |
| Raycast |
1.50.0以上 |
AI機能にはProプランが必要 |
| macOS |
12 Monterey以上 |
VenturaまたはSonomaを強く推奨 |
| Ollama |
0.1.20以上 |
ローカルサービスとして起動している必要あり |
| RAM |
最低8GB |
大規模モデルには16GB以上を推奨 |
Raycastのインストール
Raycastをまだインストールしていない場合、インストールは簡単です。raycast.comから最新の安定版を直接ダウンロードするか、Homebrewでインストールしてください:
Terminal
brew install --cask raycast
インストール後、Raycastを起動して初期オンボーディングを完了させてください。Spotlightをすぐに置き換えてください――これは、私たちが構築するワークフローにおいて絶対に外せないステップです。以下に移動してください:
Terminal
System Settings → Keyboard → Keyboard Shortcuts → Spotlight
Show Spotlight search の⌘Spaceのチェックを外し、Raycastの環境設定の General → Raycast Hotkey から⌘Spaceを割り当ててください。
Raycastのバージョン確認
Ollama拡張機能は、カスタムモデルエンドポイントをサポートするRaycastの拡張機能APIを必要とします。Raycastの環境設定を開き、ビルドを確認してください:
Terminal
Raycast → About Raycast → Build Number
または、ターミナルから以下のクイックチェックを実行してください:
Terminal
defaults read com.raycast.macos CFBundleShortVersionString
バージョンが古い場合は、組み込みのアップデーターが対応します:
Terminal
Raycast → Check for Updates
Raycastで拡張機能を有効にする
デフォルトでは、Raycastの拡張機能ストアにアクセスできますが、Extensionsタブがアンロックされており、ストアに到達できることを確認してください。⌘,でRaycastの環境設定を開き、エラーなくExtensionsタブに移動できることを確認してください。
続行前に有効にすべき重要な設定:
Raycast Preferences → Extensionsに移動し、"Allow Extension Installation from Store" がオンになっていることを確認してください。これがないと、次のステップでのOllama拡張機能のインストールが警告なく失敗します。
Ollamaが起動していることを確認する
Raycastが通信するためには、稼働中のOllamaインスタンスが必要です。Raycast内で何かを設定する前に、Ollamaがアクティブで応答可能であることを確認してください:
Terminal
# Check if Ollama is running
curl http://localhost:11434/api/tags
# Expected response (example)
{
"models": [
{
"name": "llama3:latest",
"modified_at": "2024-01-15T10:30:00Z",
"size": 4661211584
}
]
}
curlコマンドがタイムアウトするか接続エラーが返された場合は、Ollamaを手動で起動してください:
プロのヒント: OllamaをmacOSのログイン項目に追加すると、自動的に起動するようになります。System Settings → General → Login Itemsに移動して、Ollamaアプリケーションを追加してください。これにより、マシンを起動した瞬間からRaycastが常にモデルバックエンドを利用できるようになります。
ネットワーク権限
RaycastがローカルのOllamaインスタンスへ初めてアクセスしようとする際、macOSはネットワークアクセスの権限を求めるプロンプトを表示します。「許可」をクリックしてください——これは外部ネットワークアクセスではなく、ローカルホスト通信です。誤ってプロンプトを拒否してしまった場合は、以下のコマンドでリセットできます:
Terminal
tccutil reset All com.raycast.macos
これらの前提条件が整えば、環境は拡張機能のインストールに向けて万全の状態になります。
Step 3 ステップ1:Raycast Ollama拡張機能のインストール
Ollamaがローカルで起動し、Raycastがインストールされている状態で、システム全体のランチャーとローカルAIモデルを繋ぐブリッジとなるのが1つの拡張機能です。このセクションでは、すべてのステップで曖昧さをなくすため、正確なインストールプロセスを説明します。
Raycastストアで拡張機能を探す
Raycastは、アプリ内から直接アクセスできる厳選された拡張機能マーケットプレイスを維持しています。以下の手順でナビゲートしてください:
- 設定済みのホットキー(デフォルト:
⌥ Space)でRaycastを開く
- 「Store」と入力し、Raycast Storeを選択する
- 検索バーに
Ollamaと入力する
- 「Ollama AI」というタイトルの拡張機能を探す——コミュニティによって作成され、Raycastチームによって審査されています
あるいは、ウェブから直接インストールすることもできます:
Terminal
https://www.raycast.com/massimiliano_pasquini/raycast-ollama
ウェブページの「Install Extension」をクリックすると、Raycastがお使いのマシン上のインストールプロンプトに直接ディープリンクされます。
Raycast CLIを使ったインストール(パワーユーザー向け方法)
ターミナルベースのワークフローを好む場合、RaycastはCLIツールチェーンを通じた拡張機能の管理をサポートしています。まず、Raycast CLIがインストールされていることを確認してください:
Terminal
# Install Raycast CLI via npm
npm install -g @raycast/api
# Verify installation
raycast --version
注意: CLIの方法は主に拡張機能の開発を目的としており、エンドユーザーのインストール向けではありません。本番環境での使用には、ストアUIの方法が推奨されます。
拡張機能インストールのウォークスルー
ストアUIまたはウェブポータルのどちらかからインストールをクリックすると、Raycastに以下の権限プロンプトが表示されます:
| リクエストされた権限 |
理由 |
| ネットワークアクセス |
OllamaのローカルHTTP APIと通信する |
| クリップボードの読み取り/書き込み |
テキスト変換コマンドを有効にする |
| システムサービス |
AIの応答をアクティブなアプリに挿入できるようにする |
すべての権限を許可してください — これらはいずれもインターネットに接続しません。すべてのリクエストはlocalhostのみにルーティングされるため、データが自分のマシンの外に出ることはありません。
インストールの確認
インストール後、拡張機能が有効であることを確認します:
- Raycastを開く(
⌥ Space)
Ollamaと入力する — すぐにコマンドのクラスターが表示されるはずです:
- Ollama: Chat
- Ollama: Ask
- Ollama: Summarize
- Ollama: Fix Grammar
Ollama: Chatを選択して↵を押す
Ollamaが起動している場合(ターミナルでollama serveを実行)、インタラクティブなチャットセッションに直接入ることができます。接続エラーが表示された場合は、デーモンがアクティブであることを確認してください:
Terminal
# Check if Ollama is running
curl http://localhost:11434/api/tags
# Expected output (truncated):
# {"models":[{"name":"llama3.2:latest",...}]}
# If not running, start it:
ollama serve
最初のモデルのプル(まだ行っていない場合)
拡張機能を実行するには、コマンドを実行する前に少なくとも1つのモデルをローカルにプルしておく必要があります。一般的な用途向けの高速で有能なデフォルトモデル:
Terminal
# Lightweight and fast — ideal for system-wide commands
ollama pull llama3.2
# Higher capability for complex tasks (requires more RAM)
ollama pull mistral
# Verify models are available
ollama list
この時点で、拡張機能はインストールされ、接続され、使用可能な状態になっています。次のステップでは、正確なAPI設定に移ります — エンドポイント、ポート、およびレスポンスの動作を、使用しているハードウェアとワークフローの要件に合わせて調整します。
Step 4 ステップ2:APIエンドポイントとポートの設定
Raycast Ollama拡張機能がインストールされたら、次の重要なステップはRaycastがローカルのOllamaインスタンスと実際に通信できることを確認することです。これには、OllamaがAPIを公開する方法と、正しいエンドポイントを指定するための拡張機能の設定方法についての確かな理解が必要です。
OllamaのデフォルトネットワークConfiguration の理解
デフォルトでは、OllamaはローカルのREST APIサーバーを次のアドレスで実行します:
これは設定する中で最も重要な値です。Raycastが行うすべてのAIリクエスト — テキストの要約、コードの説明、文法の修正など — は、このエンドポイントを経由してマシン上で動作するOllamaの推論エンジンへのHTTPリクエストとしてルーティングされます。
ターミナルからヘルスエンドポイントに直接アクセスすることで、Ollamaがいつでも実行中で応答可能であることを確認できます:
Terminal
curl http://localhost:11434
# Expected output: Ollama is running
これがエラーを返す場合、Ollamaは実行されていません。次のコマンドで起動してください:
プロヒント: macOSで.dmg GUIアプリケーションを使用してOllamaをインストールした場合、メニューバーのプロセスとして自動的に起動します。Homebrewでインストールした場合は、手動で起動するか、launchdサービスを設定する必要があるかもしれません。
RaycastでのExtensionエンドポイントの設定
Raycastを開く(デフォルトでは⌘ Space)、Extensionsと入力し、Ollamaエクステンションの設定に移動します。以下の設定可能なフィールドが見つかります:
| 設定 |
デフォルト値 |
説明 |
| Ollama API URL |
http://localhost:11434 |
ローカルOllamaサーバーのベースURL |
| Request Timeout |
60000 ms |
リクエストが失敗するまでの最大待機時間 |
| Default Model |
(ユーザー定義) |
オーバーライドが指定されていない場合に使用するモデル |
意図的にOllamaのデフォルトポートを変更していない限り、Ollama API URLをhttp://localhost:11434に設定してください。他のローカルサービスとの競合を避けるためなど、異なるポートでOllamaを実行している場合は、起動時にオーバーライドできます:
Terminal
OLLAMA_HOST=0.0.0.0:11435 ollama serve
その場合、RaycastエクステンションのURLを合わせて更新してください:
リモートおよびネットワーク上のOllamaインスタンスの取り扱い
このセットアップであまり知られていない機能の一つは、RaycastがOllamaをローカルで実行することを必要としないという点です。リモートマシン、NAS、またはローカルネットワーク上の専用GPUサーバーでOllamaを実行している場合、そのマシンのIPアドレスをRaycastに指定できます:
Terminal
http://192.168.1.50:11434
重要なセキュリティ上の考慮事項: デフォルトでは、Ollamaはlocalhostにのみバインドされます。ネットワークインターフェースで公開するには、明示的に以下を設定する必要があります:
Terminal
OLLAMA_HOST=0.0.0.0:11434 ollama serve
認証なしでこのポートを公共のインターネットに絶対に公開しないでください。 Ollamaには組み込みの認証レイヤーがありません。オープンなデータベースポートと同様に扱い、適切にファイアウォールを設定してください。
モデルの可用性の確認
続行する前に、対象のモデルが取得済みであり、API経由で利用可能であることを確認してください:
Terminal
curl http://localhost:11434/api/tags | jq '.models[].name'
これにより、ローカルで利用可能なすべてのモデルのリストが返されます。Raycastエクステンションはこのリストからモデルセレクターを生成するため、カスタムコマンドで使用するモデルは事前にollama pull <model-name>を使用して取得しておく必要があります。
エンドポイントが設定され、モデルが確認されたことで、RaycastはローカルAIへの明確で低レイテンシのチャンネルを持つようになりました。クラウド依存ゼロ、APIコストゼロ、そして高性能なハードウェアでサブ秒の応答時間を実現します。
Step 5 カスタムAIコマンドの作成(要約、書き直し、文法修正)
Ollamaエクステンションが設定され、ローカルモデルと通信できるようになったことで、Mac上のどこからでも即座に起動できる目的特化型のAIコマンドを構築することが真の力となります。Raycastのスクリプトシステムにより、チャットインターフェースへのコピー&ペーストやコンテキストの切り替えなしに、自分のワークフローに合わせたコマンドを作成できます。
Raycast AIエクステンションとカスタムスクリプトの違いを理解する
RaycastはカスタムAIコマンドに対して2つの方法を提供しています:
- エクステンションベースのコマンド — Raycast OllamaエクステンションのPrompt設定パネルを通じて構築
- スクリプトコマンド — Ollama APIを直接呼び出すShellまたはJavaScriptスクリプト
ほとんどのユーザーにとって、拡張機能ベースのアプローチはユースケースの90%をカバーします。高度なパイプラインには、スクリプトコマンドで完全なコントロールが得られます。
Ollama拡張機能でプロンプトを設定する
Raycastを開き、「Ollama」を検索して、カスタムコマンドに移動します。各コマンドには以下が必要です:
| フィールド |
説明 |
例 |
| 名前 |
Raycast内のコマンド識別子 |
Summarize Selection |
| モデル |
使用するOllamaモデル |
llama3.2 |
| システムプロンプト |
モデルへの永続的な指示 |
You are a concise summarizer. |
| ユーザープロンプトテンプレート |
{selection}変数を使った動的プロンプト |
Summarize this in 3 bullet points: {selection} |
| 出力 |
結果の表示場所 |
クリップボード / HUD / 詳細ビュー |
3つの必須コマンド
1. 要約
このコマンドは、メール、記事、ドキュメントなど選択したテキストを、わかりやすい箇条書きに凝縮します。
システムプロンプト:
Terminal
You are a precise summarization assistant. Extract only the essential information. Never add opinions or information not present in the source text. Respond only with the summary, no preamble.
ユーザープロンプト:
Terminal
Summarize the following text into 3-5 concise bullet points:
{selection}
出力をDetail Viewに設定すると、長い要約もクリップボードを散らかさずに読みやすい状態で表示されます。
2. 書き直し
書き直しコマンドは、ぎこちない文章を洗練されたプロフェッショナルな文章に変換します。Slackメッセージ、ドキュメント、メールに最適です。
システムプロンプト:
Terminal
You are an expert editor and technical writer. Rewrite the provided text to be clear, concise, and professional. Preserve the original meaning and tone intent. Return only the rewritten text with no explanation.
ユーザープロンプト:
Terminal
Rewrite the following to be clearer and more professional:
{selection}
出力をClipboardに設定すると、⌘Vで改善されたバージョンをすぐに貼り付けることができます。
3. 文法修正
あなたの文体を変えずに文法を精密に修正します。ドキュメントを書く開発者や、英語が母国語でない方にとって重要な機能です。
システムプロンプト:
Terminal
You are a grammar correction tool. Fix all grammatical errors, punctuation mistakes, and spelling issues in the provided text. Do not change the writing style, tone, or word choices unless grammatically necessary. Return only the corrected text.
ユーザープロンプト:
Terminal
Fix the grammar and punctuation in the following text:
{selection}
応用:バッチ処理のためのスクリプトコマンド
プログラムによる制御が必要なパワーユーザーには、RaycastスクリプトコマンドからOllamaのREST APIを直接呼び出す方法があります:
Terminal
#!/bin/bash
# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title Fix Grammar (Script)
# @raycast.mode silent
SELECTION=$(pbpaste)
RESPONSE=$(curl -s http://localhost:11434/api/generate \
-H "Content-Type: application/json" \
-d "{
\"model\": \"llama3.2\",
\"prompt\": \"Fix grammar only, return corrected text: ${SELECTION}\",
\"stream\": false
}" | python3 -c "import sys, json; print(json.load(sys.stdin)['response'])")
echo "$RESPONSE" | pbcopy
Terminal
これを `fix-grammar.sh` として保存し、`chmod +x fix-grammar.sh` で実行可能にしてから、`~/.config/raycast/scripts/` に配置してください。
---
### モデル選択の戦略
すべてのタスクに最も高性能なモデルが必要なわけではありません。コマンドの複雑さに応じてモデルのサイズを選びましょう:
| コマンド | 推奨モデル | 理由 |
|---|---|---|
| 文法修正 | `phi3` または `gemma2:2b` | 高速・軽量・シンプルなタスク |
| 書き直し | `llama3.2` | 品質と速度のバランスが良い |
| 要約 | `llama3.2` または `mistral` | 高い理解力が必要 |
**プロのヒント:** Apple Silicon では小型モデルが1秒以内に応答します — 文法修正のように1日に何十回も使うコマンドでは、この速度の差が劇的な改善をもたらします。
## ホットキーを最適化して瞬時にアクセスする
優れたAIワークフローと*卓越した*ワークフローの違いは、摩擦にあります。余分なクリック、コンテキストの切り替え、メニューを探す時間——これらはすべて集中状態を乱す認知的な負荷です。ホットキーはその摩擦を完全に排除し、AIアシスタンスを意識的なツールから思考のシームレスな延長へと変えます。
### Raycastのホットキー構造
Raycastはキーボードショートカット割り当てに2つの異なる層をサポートしています:
| 層 | スコープ | 最適な用途 |
|-------|-------|---------------|
| **グローバルホットキー** | システム全体、どのアプリでも動作 | 最もよく使うAIコマンド1つ |
| **拡張機能ホットキー** | 特定の拡張機能コマンドを起動 | 頻繁に使うが優先度が低いコマンド |
| **エイリアス** | Raycastを開きコマンドを事前入力 | フルネームを覚えなくても素早くアクセス |
| **クイックリンク** | 特定のプロンプトへのRaycastショートカット | テンプレート化された繰り返しAIタスク |
### AIコマンドへのホットキー割り当て
**Raycast環境設定 → 拡張機能 → Ollama AI** に移動し、前のセクションで作成した各カスタムコマンドを見つけます。任意のコマンドの横にあるホットキーフィールドをクリックして、希望のキーの組み合わせを押してください。
**AIコマンド向け推奨ホットキー設定:**
⌥ + Space → Raycastを開く(メインランチャー)
⌃ + ⌥ + S → AI要約(選択テキスト)
⌃ + ⌥ + R → AI書き直し(選択テキスト)
⌃ + ⌥ + G → 文法修正(選択テキスト)
⌃ + ⌥ + O → Ollama チャットを開く(フリーフォーム)
Terminal
> **プロのヒント:** すべてのAIコマンドの修飾キープレフィックスとして `Control (⌃) + Option (⌥)` を使用してください。この組み合わせはmacOSのシステムショートカットや他のアプリケーションで使われることがほとんどなく、競合のないクリーンな名前空間を確保できます。
### ホットキーの競合を避ける
ショートカットを確定する前に、すでに他で使われていないか確認してください:
```bash
# Check system-level shortcuts via defaults
defaults read com.apple.symbolichotkeys AppleSymbolicHotKeys
マークダウンコンテンツを日本語に翻訳します:
システム設定 → キーボード → キーボードショートカットに移動して、各カテゴリを確認することもできます。よくある競合が発生しやすい箇所は以下の通りです:
- Mission Controlはほとんどの
⌃ + Arrowの組み合わせを占有しています
- Spotlightのデフォルトは
⌘ + Spaceです
- スクリーンショットツールはいくつかの
⌘ + Shift + numberスロットを使用しています
- Alfred、1Password、Magnetなどのサードパーティアプリが
⌥ベースのショートカットを使用している場合があります
テキスト選択ワークフローの強化
システム全体のAIホットキーが真の力を発揮するのは、テキスト選択トリガーと組み合わせたときです。現在任意のアプリケーションで選択されているテキストに対して動作するように、Ollamaコマンドを設定してください:
- Safari、Notion、Xcode、Slackなど、どこでもテキストを選択する
⌃ + ⌥ + Sを押す
- Ollamaが選択内容を処理し、アプリを切り替えることなくインラインで要約を返す
これが機能するのは、Raycastがシステムクリップボードとアクティブな選択コンテキストを読み取るためです。確実に動作させるために、拡張機能の設定パネルで「アクティブなアプリから選択テキストを読み取る」を有効にしてください。
筋肉記憶マップの作成
ホットキーを書き留めて、30日間一貫して使い続けてください。 意識的なショートカットを無意識の筋肉記憶に変えるのは、一貫性です。以下の段階的な進め方を検討してください:
Terminal
Week 1: Use hotkeys consciously, referring to your cheat sheet
Week 2: Fingers begin finding shortcuts without looking
Week 3: Hotkeys feel as natural as ⌘+C / ⌘+V
Week 4: You forget AI assistance is a "tool" — it's just thinking
目標はゼロレイテンシーのAIアクセスです — 意図と実行の間のギャップを完全になくすことです。適切なホットキーアーキテクチャが整えば、Ollamaは「開くもの」ではなく、自然と「手が伸びるもの」になります。