チャットや手作業で配っている
経路上に平文が残り、メッセージ履歴や端末、バックアップから消せなくなります。
Offline-first secret sharing CLI
Kapsaro は、Git/PR 中心の開発チームのための秘密情報共有ツールです。秘密情報をメンバーごとに暗号化し、誰に共有するか・いつ変更したかを Pull Request で確認できます。専用サーバや外部 SaaS は必要ありません。
brew install ebisawa/kapsaro/kapsaro
# 1. 既存の .env を暗号化して取り込む
kapsaro import .env
# 2. 暗号化された差分を PR でレビュー
git add . && git commit -m "update secrets"
# 3. 平文を残さず、いつものコマンドで実行
kapsaro run -- npm start
01 · 課題
最も避けたいのは、とりあえずチャットで送る、個人のローカルにだけ残る、誰がどの値を持っているか分からない、という状態です。
経路上に平文が残り、メッセージ履歴や端末、バックアップから消せなくなります。
最新の値がどこにあるのか、誰が持っているのかが分からなくなります。
いつ・誰が・何を変えたか、今は誰に共有されているかの記録が残りません。
02 · 解決
本格的なシークレット管理基盤やクラウドの Secrets Manager を導入するほどではない。しかし平文の配布は続けたくない。Kapsaro はその間にある実務的な課題を、専用サーバや外部 SaaS なしで解決します。
秘密情報はメンバーごとの公開鍵で暗号化され、共有パスワードを配る必要がありません。暗号化された値は .kapsaro/secrets/ に保存され、平文の .env をリポジトリに置かずに済みます。
値の変更も、誰に共有するか(受信者)の更新も、Pull Request の差分として確認できます。コードと同じレビューの流れに載せられます。
kapsaro run は復号した値をプロセスへ渡します。ディスクに平文ファイルを残しません。
03 · 仕組み
アプリケーションの起動方法は変えず、復号結果だけを環境変数として渡します。
GitHub 用などで使っている Ed25519 SSH 鍵をそのまま利用できます。
secret はキー単位で暗号化され、変更された entry と署名だけが差分になります。
復号した値はプロセスに渡され、平文ファイルをディスクに残しません。
# 1. workspace を初期化
kapsaro init --member-handle alice@example.com
# 2. 既存の .env を暗号化して取り込み
kapsaro import .env
# 3. 平文ファイルを書き出さずに起動
kapsaro run -- npm start
# 4. 個別の値も取得
kapsaro get DATABASE_URL
04 · 適合
今の Git ワークフローを大きく変えずに、平文共有から一歩抜け出したいチームに向いています。本番のすべての secret を中央で統制する基盤ではなく、即時失効や詳細な監査、動的シークレットが必要な領域は、専用の Secrets Manager / KMS と併用してください。
ローカルやステージングで使う .env を、平文で配らずに共有したい。
クライアント証明書や鍵ファイルを、追跡可能な形で配布したい。
CI で使う範囲を限定したシークレットを、リポジトリのレビューに載せて管理したい。
新しい基盤を導入せず、今のリポジトリと PR レビューの上でそのまま運用したい。
05 · 安全性
Kapsaro は独自実装の暗号に頼らず、公開鍵暗号による個別の鍵と、実証された業界標準の技術で秘密情報を守ります。
公開鍵暗号で共有相手ごとに暗号化します。チームで使い回す共有パスワードや共通鍵を配らず、登録された本人だけが自分の鍵で復号できます。
独自実装の暗号ではなく、標準として公開され広く検証されてきた公開鍵暗号と署名方式(HPKE や Ed25519 など)を採用しています。
暗号化も復号もローカルで完結します。復号できる鍵は各自の手元にあり、リポジトリには暗号化された値だけが残るため、1 か所の侵害で平文がまとめて漏れる構造になりません。
06 · 導入
GitHub などで普段使っている Ed25519 の SSH 鍵があれば、今のリポジトリですぐ始められます。GPG や専用サーバ、外部 SaaS は要りません。Homebrew でインストールし、既存の .env を取り込むだけです。
# Homebrew
brew install ebisawa/kapsaro/kapsaro
# 初期化して取り込み
kapsaro init --member-handle alice@example.com
kapsaro import .env
付録 · FAQ
kapsaro import .env で取り込めます。以降は kapsaro run や kapsaro get で値を使えます。kapsaro encrypt と kapsaro decrypt で扱えます。