処理方法を選ぶ
Mac は 設定 → undefined で提供元を設定するか、ローカルAI でモデルを管理します。iPhone/iPad は 設定 の undefined、ローカルAI Beta、Mac のローカル AI を使います。
Mac、iPhone、iPad、Apple Watch のチャット設定、Mac ローカル AI への接続、カスタムサーバーの使い方を案内します。
Apple Watchが記録するHRVと、WatchMuseがストレスの目安を計算する仕組みを説明します。サンプルの数値で計算も試せます。
クラウド AI にはネット接続が必要で、API キーが必要なサービスもあります。ダウンロード済みの対応モデルは、そのデバイス上でクラウド AI を呼び出さずに実行できます。Mac ローカル AI には Mac への接続が必要です。モデルのダウンロードにはネットを使います。
Mac、iPhone、iPad の基本チャットに Apple Watch は必要ありません。Mac に Mood と天気の機能はありません。
Mac は 設定 → undefined で提供元を設定するか、ローカルAI でモデルを管理します。iPhone/iPad は 設定 の undefined、ローカルAI Beta、Mac のローカル AI を使います。
選んだサービスに必要な項目だけ入力します。Mac のカスタムサーバーは互換性のある HTTPS URL を使い、キーやモデルの欄はありません。内蔵 Qwen は使用量制限のある別のオンラインサービスです。
チャットでサービスを選び、まず短いテキストを送ってください。画像には対応する提供元とモデルが必要です。Mac のデバイス接続は現在テキストのみです。
Mac 機能プレビュー · 2026 年 10 月 4 日時点のソースコードを確認した内容です。TestFlight での Mac 版配布を示すものではありません。
モデルは Mac にダウンロードされ、Mac で実行されます。iPhone や iPad は今回の質問とチャット設定に応じた文脈を送信し、Mac が回答を返します。モデルファイルが他のデバイスに転送されることはありません。
同じ LAN、または Mac に到達できるよう設定済みのプライベート VPN を使います。公開中継サービスが自動で用意されるわけではありません。認証付き TCP/TLS を使い、HTTP API ではありません。
ペアリングコードには接続先、ポート、認証用の秘密鍵が含まれます。パスワードと同様に扱い、自分のデバイス以外に共有しないでください。通常はポートの手入力は不要です。
ポートを変えるときは Mac のデバイス接続を停止し、1024〜65535 のポートを保存して再開します。新しいコードをコピーし、各デバイスを再ペアリングしてください。
ルーターのポートをインターネットに公開しないでください。認証や暗号化も無効にしないでください。VPN で .local 名を解決できない場合は、Mac との接続 の詳細設定で到達可能な Mac のプライベートアドレスを指定できます。
同じ Apple ID でも接続は自動では成立しません。iCloud のチャット同期と Mac AI のペアリングは別です。
Mac の電源を入れ、スリープさせず、WatchMuse を実行しておく必要があります。ウインドウを閉じてもメニューバーで接続は続きますが、App を終了すると停止します。
App は接続スイッチの状態を記憶し、次回起動時にサービスの再開を試みます。終了後に独立したサービスが残るわけではありません。再起動後やエラー後は準備完了の表示を確認してください。
現在の接続は、チャット設定に応じた文脈を含むテキストのみを扱います。Mac 本体で画像が使えても、この接続で画像を送れるとは限りません。クラウド AI への自動切り替えはありません。
ローカル生成は同時に 1 件です。ダウンロード、検証、他の回答の生成中はビジーになり、新しい依頼は待機せず拒否される場合があります。長い処理はタイムアウトします。
速度はハードウェア、モデルの大きさ、空きメモリ、他の処理に左右されます。推奨メモリ量は快適な動作の保証ではありません。負荷が高い場合は小さな対応モデルから試してください。
Mac の 設定 → 一般 → iCloud で会話を同期 は任意です。共通のチャット保存データを使うため、他のデバイスでもバックアップを有効にします。iCloud 機能を備えた署名済みビルドと、利用可能な iCloud アカウントが必要です。
保存データにはメッセージと、保存された添付、引用、書類から抽出したテキストが含まれます。モデルファイル、API キー、Mac のペアリング用秘密鍵は含まれず、デバイスごとに設定します。
同期をオフにすると以後の同期は止まりますが、既存のクラウドデータは自動削除されません。即時同期は保証されず、Mac へのネットワーク接続の代わりにもなりません。
App の利用条件に同意し、デバイス接続をオンにして状態を確認します。待受サービスの準備ができて初めてコードが表示されます。ローカルネットワーク権限、ポートの競合、キーチェーンへのアクセスを確認してください。署名や App 識別子が変わると保存済み認証情報にアクセスできない場合があります。意図した署名済みビルドを使ってください。
ペアリングは設定を保存する操作で、疎通確認ではありません。Mac のスリープ、App の実行、準備完了表示、LAN・VPN の到達性を確認します。ファイアウォール全体を切らず、App ごとの通信許可を確認してください。アドレスやポートが変わった場合は新しいコードで再設定します。
Mac を起こして WatchMuse を開き、サービスの準備完了後に再試行します。ウインドウを閉じる操作と App の終了は異なります。
デバイス接続を停止し、新しいポートを保存して再開します。各クライアントを新しいコードで再ペアリングしてください。古いコードには古いポートが入っています。
ダウンロード、検証、生成の終了を待ちます。現在の LocalAI フォルダに必要な全ファイルがあること、モデルの利用条件に同意済みであることを確認し、このモデルを使用 を選びます。ダウンロードだけで自動的に切り替わるわけではありません。エラー表示も確認してください。
署名と App 識別子が意図したものか確認します。識別子が違うと保存先・設定・キーチェーン権限も変わる場合があります。Mac の 設定 → 一般 にある「Recover Previous Data」「Import Downloaded Models…」「Import Previous Settings…」を確認してください。これらは英語表示の場合があります。旧 LocalAI フォルダまたは設定ファイルを選ぶと、検証済みモデルを元の場所から移動せずコピーします。パスワードと権限は引き継がれません。設定の読み込み後は再起動し、旧データは先に消さないでください。
ローカル回答、ダウンロード、検証が終わるまで待ってください。複数端末から連続で再試行しないでください。タイムアウト時は短い質問や小さいモデルを試します。
まずペアリング済み iPhone からテキストを送り、Mac 接続と Watch へのアクセス許可を確認します。Watch でモデル情報を更新し、Mac または Mac を使う iPhone に従う設定を選びます。iPhone を近くに置き、中断した場合は WatchMuse を開き直してください。Watch へのモデルダウンロードは不要です。
クラウド提供元の設定は以下を、ローカル AI は上のガイドをご覧ください。API キーは必要な提供元にだけ設定します。モデルはプラットフォームやバージョンで異なるため、App 内の一覧を確認してください。
| AIサービス | 設定方法 | 初期設定・選択可能なモデル |
|---|---|---|
| Qwen AI 千问 AI | WatchMuse 向けのオンラインサービスです。利用資格と使用量に制限があり、ダウンロードできる Qwen モデルとは別です。 | WatchMuseサーバーの設定に従います。 |
| OpenAI | OpenAIの公式ガイドに沿ってAPIキーを作成し、アプリに入力します。OpenAIのキー取得ガイド | App 内のモデル一覧を確認してください。Mac とモバイルでは初期値が異なる場合があります。 |
| Gemini | Google AI StudioでAPIキーを作成し、アプリに入力します。Geminiのキー取得ガイド | App 内のモデル一覧を確認してください。Mac とモバイルでは初期値が異なる場合があります。 |
| DeepSeek | DeepSeekのプラットフォームでAPIキーを取得し、アプリに入力します。DeepSeekのキー取得ガイド | App 内のモデル一覧を確認してください。Mac とモバイルでは初期値が異なる場合があります。 |
| Claude | Claude ConsoleでAPIキーを作成し、アプリに入力します。Claudeのキー取得ガイド | App 内のモデル一覧を確認してください。Mac とモバイルでは初期値が異なる場合があります。 |
| Perplexity Sonar | Perplexity API ConsoleでAPIキーを作成し、アプリに入力します。Sonarのキー取得ガイド | App 内のモデル一覧を確認してください。Mac とモバイルでは初期値が異なる場合があります。 |
| OpenRouter | OpenRouterのAPIキーを1つ作成し、アプリのモデル一覧から使いたいモデルを選びます。ほかのプラットフォームのキーを個別に用意する必要はありません。OpenRouterのキー取得ガイド | App 内のモデル一覧を確認してください。Mac とモバイルでは初期値が異なる場合があります。 |
| カスタムサーバー | HTTPSエンドポイントの完全なURLを入力します。アプリからのリクエストを受け取り、指定の形式で応答する必要があります。通常のWebページのURLでは接続できません。エンドポイントの仕様を見る | ご自身のサーバーの設定に従います。 |
モデルの提供状況、画像への対応、利用制限、料金は、選んだサービス、モデル、アカウントによって異なります。アプリのモデル一覧と、各サービスの最新ドキュメントを確認してください。APIキーはアプリ内にのみ入力してください。このWebサイトでAPIキーの送信を求めることはありません。
APPLE WATCH
トラブルシューティングお困りの項目を開くと、解決のヒントが見つかります。
「設定」→「AIとチャット」で「返信通知」をオンにしてください。通信やバックグラウンド処理を続けられる時間はwatchOSが管理しています。アプリが一時停止または終了すると、時間のかかるリクエストが完了しない場合があります。会話を開き直して、保存された内容を確認してください。
WatchMuseの位置情報サービスを許可し、「現在地を更新」をもう一度試してください。Apple Weatherが一時的に利用できない場合、代替サービスの使用を有効にしていればOpen-Meteoを利用できます。都市名を手入力することもできます。
ヘルスケアデータの読み出しを許可し、Apple Watchに最近のHRV測定値があることを確認してください。WatchMuseはApple Watchに保存されている最新の測定値を読み取ります。アプリから新たなHRV測定を開始することはできません。コンディションの段階表示は参考情報であり、医療上の診断ではありません。
インストールやアップデート後にWatchMuseを一度開き、使用する「気分」「ストレス」「天気」の機能がオンになっていることを確認してください。その後、watchOSによるタイムラインの更新をお待ちください。必要に応じて文字盤からコンプリケーションを取り外し、もう一度追加してください。
watchOSの「設定」で通知が許可され、WatchMuse内でも該当する通知がオンになっていることを確認してください。睡眠中の通知抑制により、気分の通知が一時停止される場合があります。また、バッテリーを節約するため、watchOSがバックグラウンド処理を遅らせることがあります。
互換性のあるHTTPSエンドポイントを1つ用意すれば、Ollama、自分でホストするモデル、クラウド上のモデルをWatchMuseから利用できます。サーバー側で、WatchMuseのシンプルなリクエストを各モデルが求める形式に変換してください。
互換性のある HTTPS エンドポイントを使用します。Mac のこの設定には API キーやモデル選択は不要で、モデルはサーバー側が決めます。Mac のデバイス接続とは別の機能です。
Ollama の管理画面やモデル紹介ページではなく、エンドポイント自体の URL を入力してください。WatchMuse は UTF-8 の JSON で HTTP POST リクエストを送り、質問を message に入れます。画像がない場合、サーバーは画像フィールドが null の場合と省略されている場合の両方を受け付けてください。
エンドポイントはタイムアウトまでに、成功を示す2xxステータス、Content-Type: application/json、空でないreply文字列を返す必要があります。
{
"message": "Hello",
"imageBase64": null,
"mimeType": null
}
{
"reply": "Hello from your model."
}
画像添付に対応したチャット画面では、画像を選んで質問を入力すれば、エンコードはアプリが行います。通常の入力欄に Base64 の文字列を貼り付ける必要はありません。以下はカスタムサーバーの開発・テスト向けの説明です。
Base64 は、画像ファイルのバイナリデータを JSON に入れられる文字列に変換する方式です。画像の URL やファイルのパスとは異なります。
{
"message": "この画像には何が写っていますか?",
"imageBase64": "REPLACE_WITH_FULL_BASE64",
"mimeType": "image/jpeg"
}REPLACE_WITH_FULL_BASE64 は仮の文字列です。送信前に、画像の完全な Base64 データに置き換えてください。そのままでは使えません。
以下のコマンドはローカルの画像を読み、変換結果を出力するだけで、ファイルをアップロードしません。パスを自分の画像に合わせ、出力を imageBase64 に入れてください。
base64 -i "/path/to/photo.jpg" | tr -d '\r\n'[Convert]::ToBase64String([System.IO.File]::ReadAllBytes("C:\path\to\photo.jpg"))下の Ollama ゲートウェイでは、テキストモデルの例として qwen2.5 を使っています。画像を試す場合は、インストール済みの画像対応モデルに変更してください。 Ollama の画像入力ドキュメント ↗
Base64 は暗号化ではありません。HTTPS を使い、個人的な画像は信頼できない変換サイトにアップロードせず、手元のパソコンで変換してください。
curl -X POST "https://your-domain.example/watch-ai" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"message": "Reply with the word ready.",
"imageBase64": null,
"mimeType": null
}'
{ "reply": "ready" }
import express from "express";
const app = express();
app.use(express.json({ limit: "20mb" }));
app.post("/watch-ai", async (request, response) => {
const { message, imageBase64, mimeType } = request.body ?? {};
if (typeof message !== "string" || !message.trim()) {
return response.status(400).json({ error: "message is required" });
}
const userMessage = { role: "user", content: message };
if (imageBase64 && mimeType?.startsWith("image/")) {
userMessage.images = [imageBase64];
}
try {
const ollamaResponse = await fetch("http://127.0.0.1:11434/api/chat", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
model: "qwen2.5",
messages: [userMessage],
stream: false
})
});
if (!ollamaResponse.ok) {
return response.status(502).json({ error: "Model request failed" });
}
const result = await ollamaResponse.json();
const reply = result?.message?.content?.trim();
if (!reply) {
return response.status(502).json({ error: "Model returned no answer" });
}
return response.json({ reply });
} catch {
return response.status(503).json({ error: "Model is unavailable" });
}
});
app.listen(3000, "127.0.0.1");
App のバージョン、デバイス、OS、選択した AI の接続方法、正確なエラーをお知らせください。Mac 接続の場合は、サービスが準備完了になっているかも記載してください。ペアリングコード、認証情報、私的な会話は送らないでください。
[email protected]