AIエージェントが送っている、 あなたのAPIキーを。
Claude CodeやCodex CLIがプロンプトを送るたびに、APIキー・パスワード・データベースURLがそのままLLMへ渡っています。Veilはローカルプロキシとして動作し、マシンの外に出る前にシークレットをマスクします。
- 127.0.0.1で動作
- クラウド中継なし
- Apache-2.0
機能
APIキーとシークレットは LLMに渡さない
Claude CodeやCodex CLIを使っていれば、環境変数・接続文字列・APIキーがリクエストのたびにLLMプロバイダーへ送られています。これがLLMプロンプト情報漏洩のリスクです。Veilはこう対処します。
プロンプトに含まれるAPIキーやシークレット
シークレットを自動検出してマスク
APIキー、パスワード、データベースURL、メールアドレス、IPアドレス。リクエストがlocalhostを出る前にVeilが検出してマスクします。
ターンをまたいで再利用されるシークレット
決定論的トークンで一貫したマスキング
同じシークレットには常に同じプレースホルダーを割り当てます。マルチターン会話でもプロンプトキャッシュでも、LLMは一貫した値で推論できます。
想定外のリクエスト形式
fail-closedで未知の形式はブロック
Veilが認識できないリクエスト形式は転送しません。サイレントに素通りすることも、平文で漏れることもありません。
管理対象が増えるという負担
ただのローカルプロセス
アカウント不要、ダッシュボードなし、クラウドなし。Veilは127.0.0.1で動き、リクエストとレスポンスの本文だけを処理します。APIキーはそのまま通過します。
対応範囲
Veilが検出・マスキングする対象
Veilはプロンプトやツール呼び出しに含まれるAPIキー・シークレット・個人情報を認識し、LLMへ送信する前にフォーマット保持型のプレースホルダーへ置き換えます。
- シークレット
APIキー · トークン · パスワード · DSN - メール
user@example.com - 電話番号
+1 555 123 4567 - IPアドレス
192.168.1.1 · 2001:db8::1 - クレジットカード
4111 1111 1111 1111 - 口座番号
銀行・金融のID - URL
https://internal.corp/api - 日付オプトイン
デフォルトでは無効 - 氏名・住所オプトイン
オプトインの意味解析
Veilを信頼できる理由
マスクされていないシークレットは 外に出ない。
送信前にシークレットをマスクし、レスポンスが返ったらローカルで復元する。それだけです。クラウド中継なし、余計なサービスなし、localhost以外への信頼は不要。
100%ローカル
Veilは127.0.0.1にバインドします。クラウド中継もリモートサーバーもなし。あなたとプロバイダーの間にあるのはローカルプロセスだけです。
解析できなければfail-closed
認識できないリクエスト形式は転送されません。Veilが確信を持てなければ、リクエストを停止します。
APIキーはあなたの手元に
Veilはプロバイダーの認証情報を保存も操作もしません。書き換えるのはリクエストとレスポンスの本文だけです。
ソースを自分の目で確認
Apache-2.0。すべてのコードが監査可能です。信頼する前に、脅威モデルとリリース成果物をご自身で確認してください。
セキュリティモデル
約束ではなく、明確な保証
Veilは小さく、ローカルで、監査可能です。何をして、何をしないかを正確に示します。
ローカルのみ
127.0.0.1にバインドします。リレーもリモートサーバーもなく、Veilは認証情報を一切保存しません。
fail-closed(フェイルクローズド)
解析エラー、検出エラー、ポリシー違反、非対応エンドポイントは、平文を転送せずリクエストをブロックします。
決定論的トークン化
同じ値はスコープ内で同じプレースホルダーに対応するため、マルチターンの文脈やプロンプトキャッシュがマスキング後も保たれます。
ローカルで復元
プロバイダーが見るのはプレースホルダーのみ。あなたのターミナル・ファイル・ツール呼び出しには実際の値が戻ります。
仕組み
エージェントを ローカルプロキシに向ける
アカウントもダッシュボードも不要。Claude CodeまたはCodex CLIの設定でbase URLをlocalhostに向けるだけです。APIキーのマスキングはVeilが自動で行います。ツールもワークフローもそのままです。
Veilを起動
コマンドひとつでlocalhost proxyをバックグラウンド常駐させます。ここがAPIキー漏洩対策の境界線です。
$ veil service installエージェントを向ける
Claude CodeまたはCodex CLIの設定でbase URLを変更するだけです。proxy用terminalは不要です。
$ ~/.claude/settings.json -> ANTHROPIC_BASE_URL=http://127.0.0.1:8787あとはいつも通り
それ以外は何も変わりません。認証情報もワークフローもツールもそのまま。Veilは通信の中身をマスクするだけです。
はじめよう
一度installして、 そのまま作業。
多くのユーザーにはnpmが最短です。インストールしてserviceを起動し、agent設定にlocal base URLを入れるだけです。
npm i -g @paiart/veilcurl -fsSL https://veil.paiart.com/install.sh | shbrew install PAIArtCom/veil/veilirm https://veil.paiart.com/install.ps1 | iexInstall, start, configure.
source checkoutもproxy用terminalも不要です。npmが適切なbinaryを取得し、serviceがVeilを常駐させます。
- 01Veilをinstall
Homebrewやshell installerが必要でなければnpmを使います。
npm i -g @paiart/veil - 02background serviceを起動
localhost proxyを127.0.0.1:8787で動かし続けます。
veil service install && veil status - 03agentのbase URLを設定
Claude Codeはsettings.json、Codexはconfig.tomlを使います。その後は通常通り作業できます。
http://127.0.0.1:8787
互換性
今できること、 これから対応すること。
Veilはカバレッジを正直に示します。Claude CodeとCodex CLIのリクエストは保護対象です。対応できない形式は明示するか、fail-closedでブロックします。
対応済み(v0.1.2)
- Claude Code(Anthropic Messages)
- Codex CLI(OpenAI Responses)
- Codex Responses経由のOpenRouter
- Go SDKインテグレーション
- サポート対象形式のテキスト・tool-useフィールド
近日対応予定
- Chat Completionsクライアント
- Gemini
- OCR・添付ファイル・ドキュメント解析
- リモートMCPツールトラフィック
FAQ
よくある質問
Veilを使うとAPIのレイテンシは増えますか?
localhostで動作し、リクエストとレスポンスのボディを書き換えるだけなので、オーバーヘッドはローカルの1ホップ分のみ。プロバイダーまでのネットワーク往復に比べれば無視できる程度です。
シークレットをマスクするとLLMの出力品質は変わりますか?
変わりません。Veilのプレースホルダーは決定論的かつフォーマット保持型なので、LLMは整合性のある値で推論できます。レスポンス内のプレースホルダーはローカルで元の値に復元されてからツールに渡されるため、ワークフローへの影響はありません。
VeilはプロバイダーのAPIキーを保存・参照しますか?
Veilはプロバイダーの認証情報を保存も参照もしません。リクエストとレスポンスのボディの内容のみを書き換え、APIキーはそのまま通過します。
OpenRouterなどのゲートウェイは使えますか?
Veilが対応するAPI形状なら使えます。OpenRouterではbase_urlをhttp://127.0.0.1:8787/veil/upstream=https://openrouter.ai/api/v1にし、Codexをwire_api="responses"で設定します。Codexが/responsesを追加し、VeilはOpenRouterの/api/v1/responsesへ転送します。Chat CompletionsはまだVeilに送らないでください。未対応エンドポイントはfail-closedで止まります。
どのAIコーディングエージェントに対応していますか?
Claude Code(Anthropic Messages)、Codex CLI(OpenAI Responses)、Codex Responses経由のOpenRouter、Go SDK連携に対応しています。Chat CompletionsクライアントやGeminiなどはロードマップにあります。
Veilをアンインストールするには?
エージェント設定からlocal base URLを削除し、veil service uninstallを実行します。アカウント、クラウドrelay、リモートプロセスはありません。