# 5.3 ディープリンクプロトコル ## 機能説明 CC Switch は `ccswitch://` ディープリンクプロトコルをサポートしており、リンクからワンクリックで設定をインポートできます。 **使用シーン**: - チーム内での設定共有 - チュートリアルでのワンクリック設定 - デバイス間の素早い同期 ## オンライン生成ツール CC Switch はオンラインのディープリンク生成ツールを提供しています: **アクセス先**:[https://farion1231.github.io/cc-switch/deplink.html](https://farion1231.github.io/cc-switch/deplink.html) ### 使用方法 1. 上記の Web ページを開く 2. インポートタイプを選択(プロバイダー/MCP/Prompt) 3. 設定情報を入力 4. 「リンクを生成」をクリック 5. 生成されたディープリンクをコピー 6. 他の人に共有するか、別のデバイスで使用 ## プロトコル形式 ### V1 プロトコル URL パラメータ形式で、読みやすく生成しやすい形式です: ``` ccswitch://v1/import?resource={type}&app={app}&name={name}&... ``` **共通パラメータ**: | パラメータ | 必須 | 説明 | |------|------|------| | `resource` | はい | リソースタイプ:`provider` / `mcp` / `prompt` / `skill` | | `app` | はい | アプリタイプ:`claude` / `codex` / `gemini` / `opencode` / `openclaw` | | `name` | はい | 名前 | **プロバイダーパラメータ**(resource=provider): | パラメータ | 必須 | 説明 | |------|------|------| | `endpoint` | いいえ | API エンドポイントアドレス(カンマ区切りで複数 URL 対応) | | `apiKey` | いいえ | API キー | | `homepage` | いいえ | プロバイダー公式サイト | | `model` | いいえ | デフォルトモデル | | `haikuModel` | いいえ | Haiku モデル(Claude のみ) | | `sonnetModel` | いいえ | Sonnet モデル(Claude のみ) | | `opusModel` | いいえ | Opus モデル(Claude のみ) | | `notes` | いいえ | メモ | | `icon` | いいえ | アイコン | | `config` | いいえ | Base64 エンコードされた設定内容 | | `configFormat` | いいえ | 設定形式:`json` / `toml` | | `configUrl` | いいえ | リモート設定 URL | | `enabled` | いいえ | 有効にするかどうか(ブール値) | | `usageScript` | いいえ | 使用量クエリスクリプト | | `usageEnabled` | いいえ | 使用量クエリを有効にするか(デフォルト true) | | `usageApiKey` | いいえ | 使用量クエリ専用 API Key | | `usageBaseUrl` | いいえ | 使用量クエリ専用アドレス | | `usageAccessToken` | いいえ | 使用量クエリアクセストークン | | `usageUserId` | いいえ | 使用量クエリユーザー ID | | `usageAutoInterval` | いいえ | 自動クエリ間隔(分) | **プロンプトパラメータ**(resource=prompt): | パラメータ | 必須 | 説明 | |------|------|------| | `content` | はい | プロンプト内容 | | `description` | いいえ | 説明 | | `enabled` | いいえ | 有効にするかどうか(ブール値) | **MCP パラメータ**(resource=mcp): | パラメータ | 必須 | 説明 | |------|------|------| | `apps` | はい | アプリリスト(カンマ区切り、例:`claude,codex,gemini,opencode`) | | `config` | はい | MCP サーバー設定(JSON 形式) | | `enabled` | いいえ | 有効にするかどうか(ブール値) | **Skill パラメータ**(resource=skill): | パラメータ | 必須 | 説明 | |------|------|------| | `repo` | はい | リポジトリ(形式:`owner/name`) | | `directory` | いいえ | ディレクトリパス | | `branch` | いいえ | Git ブランチ | **例**: ``` ccswitch://v1/import?resource=provider&app=claude&name=My%20Provider&endpoint=https%3A%2F%2Fapi.example.com&apiKey=sk-xxx ``` ## インポートタイプの例 ### プロバイダーのインポート ``` ccswitch://v1/import?resource=provider&app=claude&name=My%20Provider&endpoint=https%3A%2F%2Fapi.example.com&apiKey=sk-xxx ``` ### MCP サーバーのインポート ``` ccswitch://v1/import?resource=mcp&apps=claude,codex&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-fetch%22%5D%7D&name=mcp-fetch ``` ### Prompt プリセットのインポート ``` ccswitch://v1/import?resource=prompt&app=claude&name=%E4%BB%A3%E7%A0%81%E5%AE%A1%E6%9F%A5&content=%23%20%E8%A7%92%E8%89%B2%0A%E4%BD%A0%E6%98%AF%E4%B8%80%E4%B8%AA%E4%B8%93%E4%B8%9A%E7%9A%84%E4%BB%A3%E7%A0%81%E5%AE%A1%E6%9F%A5%E4%B8%93%E5%AE%B6 ``` ### Skill のインポート ``` ccswitch://v1/import?resource=skill&name=my-skill&repo=owner/repo&directory=skills/my-skill&branch=main ``` ## ディープリンクの生成 ### 手動生成 1. パラメータを準備 2. V1 プロトコル形式で URL を組み立て 3. 特殊文字を URL エンコード **例**: ```javascript const params = new URLSearchParams({ resource: 'provider', app: 'claude', name: 'My Provider', endpoint: 'https://api.example.com', apiKey: 'sk-xxx' }); const url = `ccswitch://v1/import?${params.toString()}`; ``` ### オンラインツール CC Switch 公式のオンラインディープリンク生成ツールを使用するとより便利です。 ## ディープリンクの使用 ### リンクのクリック ブラウザや他のアプリでディープリンクをクリック: 1. システムが CC Switch を開くかどうかを確認 2. 確認後、CC Switch が起動 3. インポート確認ダイアログを表示 4. インポートを確認 ### インポートの確認 インポート前に確認ダイアログが表示され、以下が含まれます: - インポートタイプ - 設定のプレビュー - 確認/キャンセルボタン **セキュリティ上の注意**:信頼できるソースからの設定のみインポートしてください。 ## プロトコルの登録 ### 自動登録 CC Switch のインストール時に `ccswitch://` プロトコルが自動登録されます。 ### 手動登録 プロトコルが正しく登録されていない場合: **macOS**: アプリを再インストールするか、以下を実行: ```bash /usr/bin/open -a "CC Switch" --args --register-protocol ``` **Windows**: アプリを再インストールするか、レジストリを確認: ``` HKEY_CLASSES_ROOT\ccswitch ``` **Linux**: `.desktop` ファイルの `MimeType` 設定を確認。 ## セキュリティに関する考慮事項 ### 機密情報 ディープリンクには機密情報(API Key など)が含まれる場合があります: - API Key を含むリンクを公開の場で共有しない - 共有前に機密情報を削除または置換 - 安全なチャネルでリンクを送信 ### ソースの確認 インポート前に CC Switch は以下を実行します: 1. データ形式の検証 2. 設定のプレビュー表示 3. ユーザーの確認を要求 ### 悪意のあるリンクからの防護 CC Switch は以下を確認します: - データ形式が正当か - 必須フィールドが揃っているか - 設定値が妥当な範囲内か ## サンプルリンク ### 例:Claude プロバイダーのインポート ``` ccswitch://v1/import?resource=provider&app=claude&name=Test%20Provider&apiKey=sk-xxx&endpoint=https%3A%2F%2Fapi.example.com ``` ### 例:MCP サーバーのインポート ``` ccswitch://v1/import?resource=mcp&name=mcp-fetch&apps=claude,codex,gemini&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22mcp-server-fetch%22%5D%7D ``` ## トラブルシューティング ### リンクが開けない **確認事項**: 1. CC Switch がインストールされているか 2. プロトコルが正しく登録されているか 3. リンクの形式が正しいか ### インポートに失敗する **考えられる原因**: - Base64 エンコードのエラー - JSON 形式のエラー - 必須フィールドの不足 **解決方法**: 1. 元の JSON 形式を確認 2. Base64 エンコードをやり直す 3. すべての必須フィールドが存在することを確認