mcpField
C
credentials

credentials

github.com/aibtcdevセキュリティ11175 回インストール1 日前に更新
リポジトリ

credentials について

APIキー、トークン、パスワード、URLなどの名前付き認証情報を管理するコマンドラインツールです。保存時に値を暗号化し、マスターパスワードをウォレットシステムとは別に管理します。

主な機能

  1. 01AES-256-GCMによるシークレット暗号化
  2. 02認証情報ごとのメタデータ保存
  3. 03認証情報の取得と一覧表示
  4. 04確認付きの認証情報削除
  5. 05パスワード変更と再暗号化

活用シーン

  1. 01ローカルスクリプト用のAPIキー保存
  2. 02コマンド実行時のシークレット取得
  3. 03保存済み認証情報のマスターパスワード変更

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aibtcdev/skills --skill credentials

インストール後、Claude Code で/credentialsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

AGENT.md
credentials.ts
store.ts
types.ts

詳細

認証情報スキル

任意の名前付きシークレット(API キー、トークン、パスワード、URL など)を管理します。認証情報ごとに PBKDF2 で鍵を導出し、AES-256-GCM を使用して保存時に暗号化します。値は ~/.aibtc/credentials.json に暗号化されたブロブとして保存され、識別子、ラベル、カテゴリ、タイムスタンプのみが平文で保存されます。ウォレットは不要です。認証情報ストアはウォレットシステムとは独立した独自のマスターパスワードを使用します。

使い方

bun run credentials/credentials.ts <subcommand> [options]

サブコマンド

add

新しい認証情報を追加するか、既存の認証情報を更新します。値は、PBKDF2(100,000 回の反復処理、認証情報ごとのソルト)を介してマスターパスワードから導出した鍵を使用し、AES-256-GCM で暗号化されます。

bun run credentials/credentials.ts add --id <id> --value <value> --password <pass> [--label <text>] [--category <cat>]

オプション:

  • --id(必須)— 正規化された認証情報識別子(例:hiro-api-key、openrouter-token)
  • --value(必須)— 平文のシークレット値(機密情報です。保存されません)
  • --password(必須)— 暗号化用のマスターパスワード(機密情報)
  • --label(任意)— 人が読めるラベル(デフォルト:id と同じ)
  • --category(任意)— api-key、token、url、secret などのカテゴリタグ(デフォルト:secret)

出力:

{
  "success": true,
  "id": "hiro-api-key",
  "label": "Hiro API Key",
  "category": "api-key",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedAt": "2026-01-01T00:00:00.000Z"
}
get

認証情報の値を復号して返します。出力には値が平文で表示されるため、取り扱いに注意してください。

bun run credentials/credentials.ts get --id <id> --password <pass>

オプション:

  • --id(必須)— 認証情報の識別子
  • --password(必須)— 復号用のマスターパスワード(機密情報)

出力:

{
  "id": "hiro-api-key",
  "label": "Hiro API Key",
  "category": "api-key",
  "value": "hiro_api_key_xxxxxxxxxxxxxxxx",
  "createdAt": "2026-01-01T00:00:00.000Z",
  "updatedAt": "2026-01-01T00:00:00.000Z"
}

ヒント:スクリプトで値を取り出すには、$(bun run credentials/credentials.ts get --id hiro-api-key --password $CRED_PASS | jq -r .value) を使用します。

list

すべての認証情報の識別子とメタデータを一覧表示します。復号は行われず、シークレット値も返されません。

bun run credentials/credentials.ts list

出力:

{
  "count": 2,
  "credentials": [
    {
      "id": "hiro-api-key",
      "label": "Hiro API Key",
      "category": "api-key",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "updatedAt": "2026-01-01T00:00:00.000Z"
    }
  ]
}
delete

認証情報を完全に削除します。マスターパスワード(所有権の確認用)と、明示的な確認文字列が必要です。

bun run credentials/credentials.ts delete --id <id> --password <pass> --confirm DELETE

オプション:

  • --id(必須)— 削除する認証情報の識別子
  • --password(必須)— 確認用のマスターパスワード(機密情報)
  • --confirm(必須)— 正確に DELETE を指定する必要があります

出力:

{
  "success": true,
  "deleted": "hiro-api-key",
  "message": "Credential \"hiro-api-key\" has been permanently deleted."
}
rotate-password

すべての認証情報をアトミックに再暗号化して、マスターパスワードを変更します。古いパスワードですべての認証情報を復号し、新しいパスワードで再暗号化します。復号に失敗する認証情報がある場合、変更を一切書き込む前に操作を中止します。

bun run credentials/credentials.ts rotate-password --old-password <pass> --new-password <pass>

オプション:

  • --old-password(必須)— 現在のマスターパスワード(機密情報)
  • --new-password(必須、8 文字以上)— 新しいマスターパスワード(機密情報)

出力:

{
  "success": true,
  "message": "Password rotated. 3 credentials re-encrypted.",
  "count": 3
}

セキュリティに関する注意

  • 認証情報は、認証情報ごとに固有のソルトと IV を使用して AES-256-GCM で暗号化されます。1 つの認証情報が漏えいしても、他の認証情報の安全性は損なわれません
  • PBKDF2-SHA256 の反復処理を 100,000 回行うことで、ブルートフォース攻撃にかかるコストを高めます
  • マスターパスワードがディスクに書き込まれることはありません。--password フラグまたは環境変数の置換を介して渡してください
  • ~/.aibtc/credentials.json はモード 0o600(所有者のみ読み書き可能)で書き込まれます
  • 認証情報ストアはウォレットシステムとは独立しています。別のマスターパスワードを使用することを推奨します
  • delete と rotate-password は、ストアを変更する前に復号してパスワードを確認します

コメント