
aquaman v0.14.0
🔱 AIエージェント向け唯一の独立したクレデンシャルプロキシ:自己管理型ヴォールト分離と最小権限リクエストポリシーを実現。キーは元の保管場所に留まり、エージェントのメモリには決して触れません。1Password、keychain、keepassxcなどと互換性があります。
🔱 Aquaman
🔱 AIエージェント向けの唯一の独立したクレデンシャルプロキシ: bring-your-own-vault分離と最小権限リクエストポリシー。あなたのキーは、すでに保管している場所に留まり、エージェントのメモリには決して入りません。1Password、keychain、keepassxcなど、多くのツールと互換性があります。
Claude Code、OpenClaw、あるいはHermesをセットアップして、今あなたは.envファイルの中に大事なAPIキーが平文で置かれているのを眺めている。記事を読んだでしょう。エージェントがプロンプトインジェクションを受けたときに何が起きるか、あなたは知っている。私たちも分かっています。
Aquamanはこれを3層の防御で解決します:
- プロセス分離: APIキーは別のプロキシプロセス内に存在し、egress時に注入されます。エージェントはキーではなくマーカーを保持するため、エージェント内でRCEが発生してもキーを読み取ることはできません。コーディングエージェントは、あなたが宣言したrefsのみを、一度に1つのコマンドで取得します。
- リクエストポリシー: サービスごとのルールが、エージェントがどのエンドポイントを呼び出せるかを制御します。管理APIをブロックし、削除を防ぎ、下書きは許可するが送信は拒否する。拒否されたリクエストに本物のクレデンシャルが渡ることはありません。
- 改ざん検知可能な監査: すべてのクレデンシャル使用はSHA-256ハッシュチェーンで記録されます。何がアクセスされたかを証明でき、事後に改ざんを検知できます。
パスを選ぶ
Aquamanは4つの連携パッケージとして提供され、1つのvault + 1つのdaemonを共有します。必要なものだけをインストールしてください:
| パッケージ | 機能 | インストールすべき場合 |
|---|---|---|
aquaman-proxy | コア: vault、daemon、監査、ポリシー、CLI。誰もが必要とする部分。 | 常に。 |
aquaman-plugin | OpenClaw Gatewayアダプタ。Gateway起動時にプロキシを起動し、モデルとTelegramのトラフィックをプロキシ経由でルーティングします。5つの認証モードにわたる25の組み込みサービス。 | OpenClaw Gatewayを運用している場合。https://clawhub.ai/plugins/aquaman-plugin でも入手可能 |
aquaman-coder | AIコーディングエージェントアダプタ。プロジェクトスコープのaquaman://service/key参照を、Bashツール呼び出しごとに解決します。 | Claude Code(現時点)を使用している場合 - Codex / OpenCode / Cursorは計画中。 |
aquaman-hermes | Hermesエージェントホストプラグイン(Python、PyPI上)。ネイティブのANTHROPIC_BASE_URL/OPENAI_BASE_URLを介して、オプトインのトークンゲート付きループバックリスナーにHermesを向けます。セッション内/aquaman-statusコマンド、ツール、ヘルスプローブを追加します。分離はプロキシ側で行われ、プラグインはクレデンシャルを保持しません。 | Hermesエージェントホストを運用している場合。pip install aquaman-hermes |
単一のaquaman CLIが4つすべてを表面化します: vaultと監査のためのトップレベルコマンド、OpenClaw統合のためのaquaman openclaw ...、コーディングエージェント統合のためのaquaman coder ...(内部でaquaman-coderに委譲)、そしてHermes Pythonパッケージのためのaquaman hermes ...。
クイックスタート
aquaman help、aquaman doctorはあなたの味方です。
1. Vaultのみ(プロキシ + あなたのシークレットだけ)```bash
npm install -g aquaman-proxy aquaman setup # backend wizard + store keys aquaman daemon & # start the proxy aquaman credentials list # verify
プロキシは `~/.aquaman/proxy.sock`(UDS、`chmod 0o600`)で待ち受けます。任意のツールを `http://aquaman.local/<service>/<path>` に向けると、プロキシは選択した vault バックエンドからそのサービス用の認証ヘッダーを注入します。
### 2. OpenClaw Gateway```bash
openclaw plugins install aquaman-plugin # 1. install plugin + proxy
openclaw aquaman setup # 2. backend + keys + plugin wire-up
openclaw # 3. done - proxy starts automatically
トラブルシューティング: openclaw aquaman doctor。
npm を直接使いますか? npm install -g aquaman-proxy && aquaman openclaw setup も同じことを行います - プロキシ CLI をインストールし、キーを保存し、プラグインを ~/.openclaw/extensions/aquaman-plugin/ にインストールし、認証情報を配線します (OpenClaw ≥ 2026.6.5 では SecretRef 参照、古いバージョンでは auth-profiles.json プレースホルダー)。
aquaman openclaw setup は models.providers.<svc>.baseUrl と channels.telegram.apiRoot をプロキシのループバックリスナーに向けます。なぜなら OpenClaw のモデルトランスポートとそのチャネルはそれぞれ独自の HTTP クライアントを構築し、fetch インターセプターをバイパスするからです。Telegram 以外のチャネルはエンドポイントのオーバーライドを公開していないため、それらのトークンは保存および移行されますが、egress 時に注入されません (packages/plugin/README.md を参照)。openclaw.json のプラグイン設定の下にチャネルを追加してください。サポートされているものには Slack、Discord、Telegram、MS Teams、Matrix、LINE、Twitch、Twilio、BlueBubbles、Mattermost、Nostr、Tlon、Feishu、Google Chat、ElevenLabs、xAI、Cloudflare AI Gateway、Mistral、Hugging Face などがあります (合計 25)。
3. AI コーディングエージェント (現在は Claude Code)```bash
npm install -g aquaman-proxy aquaman-coder # 1. install daemon + adapter aquaman setup # 2. vault wizard aquaman daemon & # 3. start the proxy
aquaman coder project add my-app --path ~/code/my-app
--env ANTHROPIC_API_KEY=aquaman://anthropic/api_key
--env GITHUB_TOKEN=aquaman://github/token # 4. declare a project
aquaman coder setup claude-code # 5. wire Claude Code hooks
aquaman doctor # 6. verify - should show both vault + coder green
**自分の目で確かめてみてください(30秒で納得):** Claude Code を再起動し、`~/code/my-app` 内で新しいセッションを開き、エージェントに次を実行するよう依頼してください:```
printenv | grep ANTHROPIC_API_KEY
トランスクリプトにこれが表示されます:``` ANTHROPIC_API_KEY=[REDACTED:injected-value]
⏺ ANTHROPIC_API_KEY is set and available (injected via aquaman vault).
*子*プロセスは実際のキーを見ることができました(テスト、ビルド、MCPサーバー、インポートスクリプトなど、実際にキーを必要とするものはすべて動作します)。*エージェント*、つまりマシン上でどのコードを実行するかを決定するものは、その値を決して見ることはなく、したがって会話履歴も、モデルプロバイダーのログも、後であなたのターミナルをスクリーンショットする誰も見ることはありません。
**自分のターミナルからも使えます。** 同じラッパーはエージェントなしでも動作します。対象のプロジェクトに `cd` して、コマンドの前にプレフィックスを付けるだけです:```bash
cd ~/code/
aquaman-coder exec -- python app/scripts/import.py
同じ環境変数注入、同じ stdout/stderr の秘匿化。Makefile のターゲット、シェルエイリアス、CI ランナーなど、通常 .env ファイルに手を伸ばすあらゆる場所にこれを組み込めます。
Claude Code が ~/code/my-app で Bash ツールを実行すると、aquaman のフックが updatedInput.command を介してコマンドを書き換え、aquaman-coder exec の下にラップします。そのラッパーは:
- 各
aquaman://service/key参照をブローカー経由(UDS 上のPOST /broker/resolve)で解決します。認証情報はエージェントのライフタイムではなく、1 つのコマンドのために実体化されます。 - stdout/stderr をリダクターに通し、解決された各値に対して値ベースのパターンを先頭に付加します:注入された文字列は、その形状に関係なく秘匿化されます(Atlassian トークン、Notion シークレット、内部 API キーなど、いずれも既知のプロバイダー形式に一致する必要はありません)。汎用的な形状ベースのパターン(sk-ant-、ghp_、sk_live_、AKIA…、JWT、PEM ブロック、ATATT3xF…)は、我々が注入しなかった子プロセスが表面化させるシークレットに対する多層防御として、引き続き後から実行されます。
- コマンド終了時にクリーンアップします。
Claude Code サンドボックス: デフォルトで Unix ソケットをブロックするため、aquaman coder setup claude-code は macOS 上でプロキシソケットを許可リストに追加します(sandbox.network.allowUnixSockets)。Linux と WSL2 はそのリストを無視し、唯一の選択肢は sandbox.network.allowAllUnixSockets: true で、これはサンドボックス化されたコマンドに対してすべての Unix ソケットを開放します。
4. Hermes(エージェントホスト)
Hermes は注入するトランスポートフックを持たない外部(Python)ホストであるため、分離はプロキシ側で行われます:プロキシはオプトインのトークンゲート付きループバックリスナーを公開し、Hermes は自身の環境変数を通じてそこを指し示します。```bash npm install -g aquaman-proxy # 1. install daemon aquaman setup # 2. vault wizard aquaman credentials add anthropic api_key sk-ant-... # 3. store a provider key
aquaman hermes setup # 4. enable loopback + write ~/.hermes/.env aquaman daemon & # 5. start the proxy (UDS + loopback) aquaman hermes doctor # 6. verify - listener + env + vault + Hermes
`aquaman hermes setup` はループバックリスナーを有効化し、インストールごとのトークンを生成し、aquaman 管理のブロックを `~/.hermes/.env` に書き込みます(`HERMES_HOME` を尊重):ネイティブの `ANTHROPIC_BASE_URL`/`OPENAI_BASE_URL` に加えて、トークンと等しいプレースホルダーの api_key です。Hermes はこのトークンをプロバイダーキーとして送信し、プロキシはそれを除去して、実際の vault 認証情報を注入し、上流へ転送します。現在は LLM プロバイダー(Anthropic、OpenAI)のみです。