クイックスタート

1. インストール

keygrant には Python 3.10 以降が必要です。スタンドアロンのツールとしてインストールします。

uv tool install keygrant      # or: pipx install keygrant
macOS には Python 3.9 が同梱されているため、素の pip install はそこで失敗します。 uv は適切な Python を自動的に取得します。

動作を確認します。

keygrant list                 # 新規インストール直後は "(vault empty)" と表示されます

2. プロジェクトに組み込む

エージェントが作業するプロジェクトフォルダで、次を実行します。

keygrant init

このコマンドは次の 2 つを行います。どちらも繰り返し実行して問題ありません。

3. シークレットを保存する

値は stdin から読み込まれるため、シェルの履歴やプロセス一覧に現れることはありません。

echo "sk-test-..." | keygrant set STRIPE_KEY --desc "stripe, test mode"

値を入力する代わりに、クリップボードから貼り付けることもできます。

pbpaste | keygrant set STRIPE_KEY --desc "stripe, test mode"          # macOS
Get-Clipboard | keygrant set STRIPE_KEY --desc "stripe, test mode"    # Windows PowerShell
xclip -o -selection clipboard | keygrant set STRIPE_KEY               # Linux

説明(description)はエージェントが目にする情報なので、役に立つ内容にしてください。どのサービスか、どの環境か、何に使ってよいか、などです。

4. Claude Code から使う

新しい MCP サーバーを読み込ませるため、そのフォルダで Claude Code を再起動し、普段の言葉で依頼します。

STRIPE_KEY を使って、Stripe の直近 5 件の charge を一覧表示してください。

モデルは curl https://api.stripe.com/v1/charges -u "$STRIPE_KEY:" のようなコマンドで exec_with_secrets を呼び出します。すると、そのコマンドがそのまま表示されたダイアログがポップアップします。内容を読んでから、Allow(Windows では Yes)をクリックしてください。出力は、キーがマスクされた状態で返ってきます。

まったく同じコマンドを 15 分以内にもう一度実行しても再度確認されることはありませんが、異なるコマンドであれば必ず確認されます。承認と許可(グラント)を参照してください。

5. 手動で試す(任意)

同じ注入を、ターミナルから自分で実行することもできます。CLI はシェルを介さずにコマンドを直接実行するため、変数を展開するにはシェルで包んでください。

keygrant exec --redact STRIPE_KEY -- sh -c 'curl -s https://api.stripe.com/v1/charges -u "$STRIPE_KEY:"'
keygrant exec --redact STRIPE_KEY -- cmd /c "echo %STRIPE_KEY%"   # Windows: [STRIPE_KEY:REDACTED] と表示されます

CLI は実行のたびに承認を求めます。許可を再利用することは決してありません。