mcpField
H
hush

hush

ローカル
github.com/omarei-omotoセキュリティ61 週間前に更新

hush について

hushは、コーディングエージェントを使う個人開発者や小規模チーム向けのローカルなシークレット管理ツールです。リポジトリ内にシークレットを暗号化して保存し、値をエージェントに見せずにプロセスから利用できます。

主な機能

  1. 01リポジトリ内でシークレットを暗号化保存
  2. 02単一プロセスへのシークレット注入
  3. 03値を読まずにキーを使うエージェントツール
  4. 04メンバー追加・削除時の再暗号化
  5. 05エージェント設定と会話記録のスキャン

活用シーン

  1. 01プロジェクトの平文 .env ファイルを置き換える
  2. 02シークレットを注入して開発スクリプトを実行する
  3. 03暗号化したシークレットをチームメンバーと共有する
  4. 04エージェント設定内のキー漏えいを確認する

MCP 対応

READMEにはMCPサービスのインターフェースについて記載がありません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"omarei-omoto-hush": {
"command": "npx",
"args": [
"-y",
"@omarei/hush"
]
}
}
}
起動コマンドnpx -y @omarei/hush

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@omarei/hush0.13.2

ツール

10

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
envstringいいえ非推奨の "set" エイリアス。hush 2.0 で削除されました。
setstringいいえ一覧表示するセット(デフォルト:プロジェクトのデフォルトセット)。

詳細

hush

エージェントは使えても、読み取ることはできない、エンベロープ暗号化されたチームのシークレット。

CI npm node license runtime deps OpenSSF Best Practices

API キーは .env ファイルに保存されています。これは平文で、起動するすべてのプロセスが読み取れます。AI コーディングエージェントをリポジトリに向けた日には、そのキーはエージェントのコンテキストウィンドウに入り、そこからトランスクリプトが保存されるあらゆる場所へ渡ってしまいます。

hush はサーバーもアカウントも共有パスワードも使わずに、この問題を解決します。シークレットはリポジトリ内に暗号化して保存されます。hush npm run dev を実行すると、そのプロセスだけにシークレットが渡され、ほかには渡りません。コーディングエージェントには、キーを使うことはできても、読み取ることはできないツールが提供されます。チームメイトにはコマンドひとつでアクセス権を付与でき、アクセス権を削除するとすべてが再暗号化されます。依存関係はゼロ、必要なのは npm install だけです。

hush init acme                  # a vault in .hush/vault.json — commit it
hush add .env --as "Dev"        # your existing secrets, now encrypted, as a set called dev
hush npm run dev                # injected into the process, never onto disk
hush team add sam hush_pk_1xM…  # commit; sam can decrypt. no invite email.
hush team rm sam                # re-keys the vault, re-seals every value

.env ファイルを hush ボールトに入れると、コミットされるのは暗号文です。hush run はプログラムにキーを渡し、[redacted:FAL_KEY] を出力します

重要

ステータス:初期段階です。 動作し、十分にテストされていますが、まだ 1.0 より前の段階で、作者は 1 人しかおらず、外部のセキュリティレビューも受けていません。暗号化方式には、このプロジェクトで独自に考案したものではなく、標準的な方式(ageの方式を node:crypto で再構築したもの)を使用しており、独立した再実装との差分テストスイートもありますが、有資格者がレビューしたこととは同じではありません。docs/REVIEW-SCOPE.mdに、必要なレビューの概要を記載しています。

開発は macOS 上で行われており、Linux は CI でカバーされています。Windows はベータ版です。キーは DPAPI で保護され、承認は Windows ネイティブのダイアログで行われます。また、hush run npm … は npm.cmd 経由で動作し、シークレットファイルには所有者のみがアクセスできる ACL が設定され、PowerShell フックもあります。Windows の CI ジョブでこれらの動作経路を確認していますが、実際の使用実績はまだ多くありません。フィンガープリント承認(Windows Hello)にはまだ対応していません。通常とは異なる環境で試して問題が起きた場合は、何がうまくいかなかったか教えてください。

読むべきでないボールトを読み取る方法を見つけた場合は、イシューを作成するのではなく、非公開で報告してください。

インストール

ファイルは1つで、Nodeは不要です。macOS、Linux(glibcおよびmusl)、Windows(ベータ版)に対応しています。

curl -fsSL https://raw.githubusercontent.com/omarei-omoto/hush/main/scripts/install.sh | sh
brew install omarei-omoto/tap/hush
irm https://raw.githubusercontent.com/omarei-omoto/hush/main/scripts/install.ps1 | iex
scoop install https://github.com/omarei-omoto/hush/releases/latest/download/hush.json

インストーラーは、リリースのSHA256SUMSに記載されたsha256と一致しないバイナリを拒否します。また、GitHub CLIにサインインしている場合は、ビルド来歴のアテステーションも検証し、sudoを使わずに~/.local/binへインストールします。ダウンロードを手動で検証するには、次のコマンドを実行してください:gh attestation verify hush-darwin-arm64 --repo omarei-omoto/hush。

または、Node ≥ 22.6を使ってnpmからインストールできます。

npm install -g @omarei/hush

クローンから実行する場合、ビルド手順は不要です。Node ≥ 22.18ではTypeScriptを直接実行できます(22.6~22.17では、先にnpm run buildを実行してください)。

git clone https://github.com/omarei-omoto/hush.git
cd hush && node src/cli.ts --help
公開パッケージにコンパイル済みの出力が含まれている理由

Nodeはnode_modules内のTypeScriptの型を削除しないため、インストールしたコピーではsrc/を実行できません。tarballにはdist/内のJavaScriptが含まれます(npm run buildでビルドされ、prepackによって自動実行されます)。hushコマンドは、何が存在するかではなく、どこにあるかで実行対象を決めます。node_modules内ではdist/を実行し、チェックアウト内(npm linkされたものも含む)ではsrc/を実行するため、古いビルドが編集内容を上書きすることはありません。実行時の依存関係は引き続きゼロです。

クイックスタート

cd your-project
hush start

これですべてです。キーを探して取り込み、AI アシスタントがキーの近くで動作するかを確認し、プロジェクトの実行を提案します。質問はいくつかありますが、事前に知っておく必要があることはありません。いつでも再実行できます。残っているものを引き継ぎ、hush setupで現在の状況を確認できます。

コーディングエージェントにセットアップを任せることもできます。 次の内容をClaude Code、Codex、またはCursorに貼り付けてください。

このプロジェクトにhushをセットアップしてください。hush setup --jsonを実行して、その指示に従ってください。各手順のコマンドを記載どおりに実行し、「choice」とマークされた項目についてはチャットで私に尋ね、「person」とマークされた項目については実行して私を待ってください。.envファイルを開いたり、チャットでキーを尋ねたりしないでください。

新しいキーや.envの削除など、あなたの対応が必要なことは、チャットではなく、あなた自身の画面で確認を求めます。詳しくはセットアップをご覧ください。

すべての手順を自分で確認したい場合は、同じことを手動で行えます。

hush init                    # creates your key + a vault, safe to commit
hush add .env --as "Dev"     # what you already have, encrypted, as a set called dev
rm .env                      # you don't need it any more
git add .hush && git commit -m "encrypted secrets"

以後は、実行するコマンドの前にhushを付けてください。

hush npm run dev             # anything after hush runs with the secrets injected
hush dev                     # or: find package.json and run its dev script

シークレットは、そのプロセスの環境内だけに存在します。ディスクにも、シェルにも、スクロールバックにも残りません。

続いて、すでに存在するものを手早く確認します。

hush scan --agents           # plaintext keys in your agents' config files; --fix moves them into hush
hush scan --transcripts      # your keys in agents' saved conversations (read-only)

別のマシン(サーバーやdevcontainerなど)のエージェントも、あなたのマシンに保持されたキーを使えます:tailnet上のhush。

これが必要な理由

.env ファイルは、いつの間にかリポジトリ内で最悪の成果物になっています。 プレーンテキストで、起動するすべてのプロセスから読み取ることができ、今では日常的に LLM のコンテキストに取り込まれています。研究者は、コーディングエージェントが .env の認証情報をそのまま、伏せ字にもせず、リポジトリ全体と一緒にアップロードしていたことを発見しました。

既存のツールは、それぞれこの課題の一部に対応しています。

優れている点代わりに必要なもの
SOPS / age受信者ごとの暗号化、確実なアクセス取り消しエージェントの存在を想定していないこと、YAML と鍵の管理
secretctlエージェントへの対応明示的にシングルユーザー向け
dotenvx / nevr-envGit 内の暗号化ファイルチーム全体で鍵を 1 つ共有するため、実質的なアクセス取り消しができない
1Password CLI + MCP本格的な保管庫、実際のハードウェア、監査、エージェントアクセスチームの全員がアカウントとサブスクリプションを用意する必要がある
Doppler / Infisical + MCP本格的なシークレット管理、エージェントアクセスサーバーの運用、またはライセンスの購入

hush はローカルで使える無料のアカウント不要な選択肢であり、最後の 2 つの代替品ではありません。チームですでに 1Password や Doppler を利用しているなら、それらの MCP サーバーは、より優れたハードウェアと実際の監査証跡を備えて hush と同じことができます。そちらを使ってください。hush は、登録もデプロイも不要で、age のセキュリティモデルと、値を読み取れないエージェントを求める個人開発者や小規模チーム向けです。バックエンドは Git リポジトリです。

境界線はここです。動的な認証情報、リース、有効期限、または他人が編集できない監査ログが必要になった時点で、Git 内のファイルでは要件を満たせません。hush ではそこまで対応できず、対応できるとは謳っていません。詳しい比較はRESEARCH.mdをご覧ください。

ドキュメント

その他の情報はすべてガイドにあります。GitHub のdocs/guideにあるほか、サイト tryhush.dev でもご覧いただけます。

コントリビューション

ぜひご協力ください。特に、私が試せない環境(Linux、Windows、私が持っていない YubiKey)での実行、外に出るべきでない値を取り出す方法の発見、または分かりにくかった点の報告を歓迎します。

  • CONTRIBUTING.md — セットアップ方法と変更に求められる基準
  • docs/ARCHITECTURE.md — 各要素の連携方法と、それを支えるテスト
  • 開発 — テストスイート、ファザー、バイナリの実行方法
  • CODE_OF_CONDUCT.md — Contributor Covenant 2.1
  • SECURITY.md — 脅威モデルと脆弱性の報告方法
  • docs/AUDIT.md — これまでに見つかったすべての不具合と、変更内容

セキュリティ上の問題は issue で報告しないでください。 代わりに非公開のアドバイザリを作成してください。

ライセンス

MIT — LICENSEを参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。