
2026/03/13 1:41
**Show HN:OneCLI – Rustで作られたAIエージェント用バルト(Vault)**
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
OneCLI はオープンソースのゲートウェイで、API 認証情報を一度だけ保存し、それらを AI エージェントが送信する HTTP リクエストに注入します。これにより、エージェントは実際の秘密情報を見ることがありません。エージェントはプレースホルダーキー(例:FAKE_KEY)を提供し、OneCLI の Rust プロキシがそれらを REAL_KEYS に置き換え、AES‑256‑GCM を使用してリクエスト時にのみ復号します。このシステムには、エージェント・シークレット・権限管理用の Next.js ウェブダッシュボードと、永続化用に埋め込まれた PGlite/PostgreSQL データベースが含まれます。認証モードは2種類あり、ローカル使用向けの単一ユーザー(ログイン不要)と、多人数チーム向けの Google OAuth です。 主な機能は、透過的なクレデンシャル注入、暗号化されたシークレット保存、ホスト・パスパターンマッチング、スコープ付きアクセストークンを持つ複数エージェントサポート、およびオプションのデータベース以外に外部依存がないことです。Rust ゲートウェイはポート 10255 で動作し、ウェブダッシュボード/API はポート 10254 で稼働します。`DATABASE_URL`、`NEXTAUTH_SECRET`、Google OAuth のクレデンシャル、および暗号化キーといった環境変数が必要です。 プロジェクト構成は `apps/web`(Next.js)、`apps/proxy`(Rust ゲートウェイ)、`packages/db`(Prisma ORM)、および `packages/ui`(共有 UI コンポーネント)に分かれています。クイックスタートは単一の Docker コマンド(`docker run …`)または Docker Compose で行えます。ローカル開発には `mise`、Node.js、pnpm、Rust、および Prisma が必要です。一般的なコマンドには `pnpm dev`、`pnpm build`、`pnpm check`、`pnpm db:generate`、`pnpm db:migrate`、および `pnpm db:studio` があります。OneCLI は Apache‑2.0 ライセンスでリリースされ、オープンな貢献ポリシーと行動規範を備えています。
本文
AIエージェントのためのシークレット・ヴォルト
一度保存。どこでも注入。エージェントはキーを決して見ない。
- ウェブサイト · ドキュメント
OneCLI とは?
OneCLI は、AI エージェントとそれらが呼び出すサービスの間に位置するオープンソースゲートウェイです。
各エージェントに API キーを埋め込む代わりに、OneCLI に一度だけ認証情報を保存し、ゲートウェイが透明に注入します。エージェントはシークレットを一切見ることがありません。
なぜ作ったのか
AI エージェントは数十個もの API を呼び出す必要がありますが、各エージェントに直接認証情報を渡すとセキュリティリスクが高まります。
OneCLI は認証を一元管理するゲートウェイで、アクセス権の設定・キー回転・全エージェントの動作監視を一か所で行えるようにします。
仕組み
- 実際の API 認証情報を OneCLI に保存。
- エージェントにはプレースホルダーキー(例:
)を渡す。FAKE_KEY - エージェントがゲートウェイ経由で HTTP 呼び出しを行うと、OneCLI のプロキシはリクエストを適切な認証情報にマッチさせ、
をFAKE_KEY
に差し替え、復号してアウトバウンドリクエストへ注入。REAL_KEY
エージェントは実際の秘密キーに触れず、通常通り HTTP 呼び出しを行い、プロキシが交換処理を担当します。
アーキテクチャ
- Rust Gateway – 高速な HTTP ゲートウェイでアウトバウンドリクエストを傍受し認証情報を注入。
エージェントは
ヘッダーにアクセストークンを付与して認証します。Proxy‑Authorization - Web Dashboard – Next.js アプリ(ダッシュボード + API)。ゲートウェイが各リクエストでどの認証情報を注入すべきか決定するための API を提供します。
- Secret Store – AES‑256‑GCM で暗号化された認証情報保管庫。シークレットはリクエスト時にのみ復号され、ホスト・パスパターンでマッチングしゲートウェイがヘッダーへ注入します。
クイックスタート
外部データベースや設定不要で OneCLI をローカル実行する最速方法:
docker run --pull always -p 10254:10254 -p 10255:10255 \ -v onecli-data:/app/data ghcr.io/onecli/onecli
http://localhost:10254 を開き、エージェントを作成しシークレットを追加してから、エージェントの HTTP ゲートウェイ先を
localhost:10255 に設定します。
Docker Compose で実行する場合
git clone https://github.com/onecli/onecli.git cd onecli/docker docker compose up
主な機能
- 透明な認証情報注入 – エージェントは通常通り HTTP 呼び出しを行い、ゲートウェイが認証処理を担います。
- 暗号化されたシークレット保管 – AES‑256‑GCM による静的データ暗号化。リクエスト時にのみ復号。
- ホスト&パスマッチング – パターン一致で正しい API エンドポイントへシークレットをルーティング。
- マルチエージェント対応 – 各エージェントごとにアクセス権限付きトークンを発行。
- 外部依存なし – PGlite を組み込み(または PostgreSQL を自前)で動作。
- 2 つの認証モード – ローカル利用時はシングルユーザー(ログイン不要)、チーム向けは Google OAuth。
- Rust Gateway – 高速・メモリ安全な HTTP ゲートウェイ。HTTPS の MITM 抽出も可能。
プロジェクト構成
apps/ web/ # Next.js アプリ(ダッシュボード + API、ポート 10254) proxy/ # Rust Gateway(認証情報注入、ポート 10255) packages/ db/ # Prisma ORM + マイグレーション + PGlite ui/ # 共通 UI コンポーネント(shadcn/ui) docker/ Dockerfile # シングルコンテナビルド(ゲートウェイ + ウェブ + PGlite) docker-compose.yml
ローカル開発
必要条件
(Node.js、pnpm 等をインストール)mise- Rust(ゲートウェイ用)
セットアップ
mise install pnpm install cp .env.example .env pnpm db:generate pnpm db:init-dev pnpm dev
Dashboard は http://localhost:10254、Gateway は http://localhost:10255 で確認できます。
コマンド一覧
| コマンド | 説明 |
|---|---|
| 開発モードで Web + Gateway を起動 |
| 本番ビルド |
| Lint・型チェック・フォーマット実行 |
| Prisma クライアント生成 |
| データベースマイグレーション実行 |
| Prisma Studio を起動 |
設定
ローカル開発では全ての環境変数は任意です:
| 変数名 | 説明 | デフォルト値 |
|---|---|---|
| PostgreSQL 接続文字列 | Embedded PGlite |
| Google OAuth を有効化(マルチユーザー) | シングルユーザーモード |
| Google OAuth クライアント ID | — |
| Google OAuth クライアントシークレット | — |
| AES‑256‑GCM 暗号化キー | 自動生成 |
コントリビューション
貢献を歓迎します!開始前に Contributing Guide と Code of Conduct をご覧ください。
ライセンス
Apache‑2.0