Secret Handoff について
Secret Handoffは、Claude CodeとCodex向けのローカルな認証情報受け渡しツールです。一時的な認証情報をチャットに書かずにエージェントへ使わせたいユーザーを対象とします。認証情報はローカルのブラウザページで入力し、承認済みリクエストで使用され、エージェントには参照情報とマスキング済みの結果が返されます。
主な機能
- 01ブラウザページで一時認証情報を入力
- 02ホスト、メソッド、パス単位でリクエストを承認
- 03参照情報とマスキング済み結果を返却
- 04複数の認証情報をまとめてリクエスト
- 05Claude Codeの貼り付け検知フック
活用シーン
- 01エージェントに一時的なAPI認証情報を使わせる
- 02承認済みAPIリクエストにワンタイムコードを渡す
- 03一度の受け渡しで複数の認証情報を収集
MCP 対応
ローカルのstdio MCP設定で`secrethandoff mcp`を起動し、Claude CodeとCodexから利用します。秘密の値はチャットではなくブラウザで入力します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Claude Code と Codex 向けの Secret Handoff
封印されたシークレットで、エージェントにアクセスを許可します。
チャットに値を入力せずに、一時パスワード、トークン、ワンタイムコードをエージェントに使わせることができます。ローカルツールがプライベートなブラウザーページを開き、エージェントがアクセスを必要とする理由を表示し、承認したリクエストにシークレットを適用します。設定が必要なボルトはありません。Secret Handoff アカウントも不要です。
このリポジトリでは、署名済みのSecret Handoff 0.0.2 リリース向けに、Claude Code と Codex のプラグインを公開しています。スキル、ローカルの stdio MCP 設定、Claude の検出フック、ステータスのみを表示する Claude カードが含まれています。シークレットの入力はブラウザー内で行います。これらはリポジトリのプラグインであり、ベンダーが審査・承認したディレクトリ掲載を主張するものではありません。
インストール
まず、ローカルツールをダウンロードしてインストールしてください。バイナリ 0.0.2 を選択します。ウェブサイトのインストーラーはアーカイブのチェックサムを検証してから、バイナリをインストールします。CLI が PATH にある状態で、以下の secrethandoff setup を実行し、Claude Code と Codex を接続します。
secrethandoff version
secrethandoff setup
secrethandoff doctor
想定バージョン:0.0.2。エージェントが作業するプロジェクトで secrethandoff init を実行し、認証情報に関するガイダンスを追加します。新しいエージェントセッションを開始してください。
Claude Code
バイナリのインストール後、プラグインを自分でインストールする場合:
claude plugin marketplace add geland/secrethandoff-integrations
claude plugin install secrethandoff@secrethandoff
Codex
codex plugin marketplace add geland/secrethandoff-integrations
codex plugin add secrethandoff@secrethandoff
インストール後、クライアントを再起動するか、新しいセッションを開始してください。デスクトップアプリの起動時も含め、バイナリはクライアントが引き継ぐ PATH 上にある必要があります。secrethandoff doctor でローカルのセットアップを確認できます。
マーケットプレイスを特定のバージョンに固定する場合、Codex では
codex plugin marketplace add geland/secrethandoff-integrations --ref v0.0.2 を使用できます。Claude Code では Git ソース
https://github.com/geland/secrethandoff-integrations.git#v0.0.2 を指定して
claude plugin marketplace add を実行できます。確認用のリリース ZIP も利用できます。
使い方
エージェントに「このタスクで必要な一時的な認証情報には Secret Handoff を使ってください」と依頼します。値は Secret Handoff のブラウザーページでのみ入力してください。対象を限定した API ホスト、メソッド、パスを承認します。エージェントは参照を使い、マスキングされた結果を受け取ります。タスクが終わったら、シークレットを忘れるようエージェントに依頼してください。
シークレットは、忘れさせるかプロセスが終了するまで、ツールプロセスのメモリ内に保持されます。入力済みのシークレットには自動的な有効期限がありません。承認された API には値が渡されます。デフォルトでは run_with_secret にブラウザーコマンドの承認が必要です。承認されたコマンドには値が渡され、漏えいする可能性があります。所有者は、検証済みの Claude Code ネイティブ権限プロンプトまたは Codex の承認設定を選択できます。Codex の設定では自動的に承認される場合があります。これらのモードによって、シークレットの入力方法が変わることはありません。
Claude の検出フックは、一部の意図しない貼り付けがモデルに届く前にブロックできます。ただし、クライアントのローカルトランスクリプトにすでに保存された値を消去することはできません。シークレットをチャットに貼り付けないでください。セキュリティ上の境界をお読みください。
Codex コマンド承認のオプトイン
対応バイナリと、0.155 系の安定版 Codex 0.155.1、またはデスクトップ版の正確なビルド 0.162.0-alpha.17.2 では、所有者はネイティブのホストポリシー認可を選択できます。許可ルール、フック、自動レビューなど、所有者の設定に従うため、このモードでは人間のクリックは必要ありません。ブラウザー承認が配布時のデフォルトです。シークレットの入力は、常に分離された Secret Handoff ページで行われます。
このリポジトリのチェックアウトから、プラグインを再読み込みし、所有者向けオプトインヘルパーを実行してから、新しいチャットを開始してください。このヘルパーはレビュー用 ZIP には含まれていません。
codex plugin add secrethandoff@secrethandoff
python3 scripts/configure_codex_approval.py codex \
--plugin-dir ~/.codex/plugins/cache/secrethandoff/secrethandoff/0.0.2
このヘルパーは、インストール済みの mcp.json と .mcp.json の起動環境のみを検証および編集します。ホストポリシー、レビュアー、フックは変更しません。再インストールするとオプトインがリセットされるため、再読み込み後にもう一度実行してください。ブラウザーでのコマンド承認に戻すには、codex の代わりに browser を使用してください。エージェントがこの設定を適用できるのは、所有者から明示的に指示された場合のみです。
python3 scripts/check_codex_approval.py は、無害なサーバーを使って、実際の許可/拒否の通知をテストします。python3 scripts/check_codex_approval.py --installed-plugin は、実際にキャッシュされたプラグインがネイティブモードで起動し、新しい空のストアを一覧表示できることを確認します。どちらも子プロセスのみを分離し、シークレットは使用しません。ターミナル CLI の代わりにデスクトップに同梱された実行ファイルを検証するには、どちらのチェックにも --codex-bin /absolute/path/to/codex を渡してください。ヘルパーによる設定の保持と拒否テストは、python3 -m unittest discover -s tests -p test_codex_approval_config.py で実行します。デスクトップのプロンプト表示には、所有者が別途実行するダミーテストが必要です。コマンド結果には client_policy/host_policy が報告され、人間がクリックしたという主張は含まれません。
認証情報のグループ化
request_secrets は、ローカルのブラウザーページで 2~8 件の認証情報をまとめて要求します。グループ名で要求を識別し、各フィールドには個別の名前と任意のラベルを設定できます。すべてのフィールドに同じポリシーが適用され、すべての値がまとめて使用可能になります。グループ名を使って待機してください。グループまたはそのメンバーのいずれかを忘れると、すべてのメンバーが消去されます。グループでの電話/ヘッドレスリレーによる入力には、現在対応していません。既存の request_secret 呼び出しでは、引き続き値を 1 件収集します。この機能によってコマンド承認の設定が変更されることはありません。
リリースの範囲
secrethandoff mcpを使用した、Claude Code と Codex のローカルハンドオフ。- 電話およびリモートリレーによるハンドオフは、公開サービスでは有効になっていません。
- 1 回限りの表示リンクは、シークレットを共有から引き続き個別に利用できます。
- その他のクライアント設定と掲載用ドラフトは、後のテストのために保持されます。公開済みのマーケットプレイス掲載項目でも、ホストの対応状況を検証済みだとする主張でもありません。
release-lock.jsonは、6 つのプラットフォームアーカイブと 6 つの MCPB バンドルのハッシュを固定します。プラグインは PATH 上のバイナリを起動します。メタデータがそのバイナリに置き換わったり、適用を強制したりすることはありません。使用前にsecrethandoff versionを確認してください。ソースとリリースの来歴はバイナリリポジトリで確認できます。
開発と検証
Python 3.11 以降と Node 24 を使用します。仮想環境に requirements-review.txt をインストールしてから、次を実行してください。
python scripts/test_release.py
python scripts/validate.py --release
python scripts/package.py --release
python scripts/test_package.py
tests/card.test.tsx は Claude mod テストランナーで実行します。
tests/card-state.test.mjs は、SECRETHANDOFF_TEST_TYPESCRIPT を通じて Node と TypeScript を利用できる状態で実行します。0.0.2 リリース状況、エージェントの評価、貢献者向けガイダンスを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。