はじめに:AIエディタ時代の .env 漏洩リスク
CursorやGitHub Copilot、Claudeなど、強力なAIアシスタントを使った開発が当たり前になりました。しかし、それに伴って新たなセキュリティリスクが生まれています。
それは「ローカル開発環境の .env ファイルに、生のパスワードやAPIキーを書いておくことの危険性」です。
AIにコードのコンテキストを読み込ませた際、誤って生の .env の内容までAIのサーバーに送信されてしまったり、画面共有中に見えてしまったりする不安を覚えたことはないでしょうか?
この問題を根本から解決するため、OSのセキュアなキーチェーンから環境変数を実行時に注入する、CLI&GUIハイブリッドのシークレットマネージャー「Kimu」を開発・OSSとして公開しました!
🗝️ Kimuの魔法:プレースホルダーで安全なローカル開発
Kimuの最大の特徴は、ローカルの .env ファイルに実際の秘密情報を書かなくてよくなる点です。代わりに「プレースホルダー」を使用します。
❌ 今までの危険な .env
# このファイルがAIに読み込まれると危険...
DATABASE_URL=postgres://user:SuperSecretPassword@localhost/db
OPENAI_API_KEY=sk-proj-xxxxxxxxxxxxxxxxxxxxxxxx
✨ Kimuを使った安全な .env
# 万が一流出しても無害!
DATABASE_URL=SECRET{{DB_PASSWORD}}
OPENAI_API_KEY=SECRET{{OPENAI_KEY}}
使い方(CLIモード)
普段の開発コマンドの頭に kimu run -- をつけるだけです。
# Next.js / Vite などの場合
kimu run -- npm run dev
# Python / Go などの場合
kimu run -- python main.py
kimu run -- go run main.go
このコマンドを叩くと、Kimuが裏側で自動的にOSのキーチェーンから本物のパスワードを取得し、メモリ上に環境変数として展開してから子プロセス(npm など)を起動します。
ソースコード側は一切変更せず、普段通り process.env.OPENAI_API_KEY などで値を受け取ることができます。
2. OSネイティブのキーチェーンを利用した堅牢な保存
パスワードの保存には、Rustの keyring クレートを採用しました。
自前で暗号化ロジックを持つのではなく、各OSが提供する最もセキュアな領域に処理を委譲しています。
- macOS: Keychain
- Windows: Credential Manager
- Linux: Secret Service API
3. モダンなフロントエンド開発に合わせた .env 探索ロジック
Next.jsやViteなどのモダンなツールでは、環境変数の優先順位があります。KimuのCLIは、以下の順でファイルを探索し、上書きしながら読み込む(Next.jsなどの標準仕様に準拠した)スマートなフォールバックを実装しています。
.env.env.development-
.env.local(最優先)
おわりに
「Kimu」は、AI駆動開発を進める中での「パスワード漏洩への恐怖」を払拭し、安全で快適なDXを実現するために作ったツールです。
ターミナルで kimu と叩けば、GUI画面が開いて直感的にキーの登録やタグ管理を行うこともできます。
手元の .env に生のパスワードを書いている方は、ぜひ一度試してみてください!
リポジトリへの Star ⭐️ もお待ちしております!