概要
keygrant は、Claude Code などの AI コーディングエージェントのためのシークレットマネージャーです。エージェントは API キーを見ることなく、それを使うことができます。
基本的な考え方
モデルのコンテキストに入ったものは、何であれ漏洩する可能性があります。返答、生成されたコード、ツール呼び出しに含まれる URL、リクエストログ、あるいは Issue や Web ページに仕込まれたプロンプトインジェクションの指示を通じて漏れるおそれがあります。そこで keygrant は、値をコンテキストから完全に締め出します。
model context: STRIPE_KEY the name, harmless
child process: sk-live-... the value, injected at exec time
output to model: [STRIPE_KEY:REDACTED]
モデルは curl -H "Authorization: Bearer $STRIPE_KEY" ... と書きますが、$STRIPE_KEY が何に展開されるのかを知ることはありません。
4 つの構成要素
- OS のキーストアへの保存。 Windows では DPAPI、macOS ではログインキーチェーン、Linux では Secret Service を使います。値は stdin から渡され、コマンドライン引数やチャットメッセージを経由することはありません。
- 2 つの MCP ツール。
list_secretsは名前と説明だけを返します。exec_with_secretsは、指定されたシークレットをその子プロセスに注入したうえで、コマンドを 1 つ実行します。シークレットを保存するツールは、意図的に用意していません。 - コマンドごとの承認。 シークレットが渡される前に、ネイティブダイアログにコマンド全体が表示されます。承認と許可(グラント)を参照してください。
- 出力のマスキング。 出力は、モデルに返される前にシークレットの値(平文、base64、16 進数、URL エンコード)がマスクされます。これは第二の防御線です。マスキングを参照してください。
次のステップ
- はじめての方は、クイックスタートへ。3 分ほどで終わります。
- 別の MCP クライアントを使っている場合や、すべてのプロジェクトで使いたい場合は、Claude Code とその他のクライアントへ。
- 複数のマシンで使いたい場合や、スマートフォンから承認したい場合は、クラウド同期(プレビュー版)へ。
- すべてのコマンドとフラグについては、CLI リファレンスへ。
- 何を防ぎ、何を防がないのかについては、脅威モデルへ。