面向 AI Agent 的开源凭证保管库与安全网关,实现密钥的透明拦截与零接触注入。
项目概述#
OneCLI 是一个专为 AI Agent 设计的开源凭证保管库与安全网关,核心理念为 "Store once. Inject anywhere. Agents never see the keys."。当多个 AI Agent 需要调用数十个外部 API 时,传统硬编码密钥方式存在极高泄露风险,OneCLI 通过透明拦截机制解决这一问题。
核心能力#
透明凭证注入#
Agent 发出包含占位符(如 FAKE_KEY)的普通 HTTP 请求,Rust 网关自动拦截并替换为真实密钥(REAL_KEY),Agent 永远不接触真实密钥。支持 HTTP 请求头和 URL 查询参数两种注入位置,同时支持 WebSocket 连接的凭证注入。
凭证安全与存储#
采用 AES-256-GCM 算法对密钥进行静态加密存储,仅在网关处理请求时实时解密。Rust 网关支持 MITM(中间人)拦截,可处理加密的 HTTPS 流量。
路由与匹配机制#
基于目标主机名(Host)和路径(Path)模式将凭证精准路由到正确的 API 端点。
多租户与权限管控#
- 每个 Agent 拥有独立的访问令牌和权限范围(scoped permissions)
- 双认证模式:单用户模式(本地使用,无需登录)和 Google OAuth(团队使用)
- 审计日志:对敏感操作进行审计记录
外部集成#
- Bitwarden Vault 联动:可连接 Bitwarden 密码管理器,按需拉取凭证注入,无需在服务器上持久化存储密钥
- OAuth 流程集成:网关可自动处理 App Connection 与 OAuth 流程并注入凭证(代码中可见 Google Calendar、YouTube、OpenAI 等集成)
架构设计#
AI Agent ──HTTP请求(FAKE_KEY)──▶ Rust Gateway (:10255) ──凭证替换──▶ 外部 API
│
▼
Web Dashboard (:10254)
(Next.js + Prisma + PostgreSQL)
│
▲
Bitwarden Vault (可选)
核心模块#
- Rust Gateway (
apps/gateway/):高速、内存安全的 HTTP 网关,负责请求拦截与凭证注入,核心性能瓶颈模块 - Web Dashboard (
apps/web/):基于 Next.js 构建的管理界面与内部 API,管理 Agent、密钥映射及权限解析 - Secret Store (
packages/db/):基于 Prisma + PostgreSQL 的存储层,处理密钥的 AES-256-GCM 加解密与匹配逻辑 - 共享 UI (
packages/ui/):基于 shadcn/ui 的共享组件库
工程化机制#
- 采用 pnpm workspace + Turborepo 进行 Monorepo 构建
- 使用 mise 统一管理 Node.js、pnpm、Rust 等工具版本
- 通过 Husky Git Hooks + Prettier 保障代码质量,CI/CD 依赖 GitHub Actions
安装部署#
一键安装(推荐)#
curl -fsSL https://onecli.sh/install | sh
Docker 部署#
git clone https://github.com/onecli/onecli.git
cd onecli
docker compose -f docker/docker-compose.yml up -d --wait
部署完成后:
- Web Dashboard:
http://localhost:10254 - Rust Gateway:
http://localhost:10255
快速上手:打开 Dashboard → 创建 Agent → 添加密钥 → 将 Agent 的 HTTP 网关指向 localhost:10255。
本地开发#
前置依赖:mise、Rust、Docker(PostgreSQL)。
mise install && pnpm install
cp .env.example .env
pnpm db:generate && pnpm db:up && pnpm db:migrate
pnpm dev
关键配置#
| 环境变量 | 说明 | 默认行为 |
|---|---|---|
DATABASE_URL | PostgreSQL 连接字符串 | 需参照 .env.example 配置 |
NEXTAUTH_SECRET | 配置后启用 Google OAuth 多用户模式 | 未配置则为单用户模式 |
GOOGLE_CLIENT_ID | Google OAuth 客户端 ID | — |
GOOGLE_CLIENT_SECRET | Google OAuth 客户端密钥 | — |
SECRET_ENCRYPTION_KEY | AES-256-GCM 加密主密钥 | 系统自动生成 |
Agent 通过 Proxy-Authorization 请求头携带访问令牌与网关进行认证。
适用场景#
- AI Agent 密钥集中管控与安全隔离
- 多 Agent 团队协作与权限划分
- 结合 Bitwarden 等密码管理器的按需凭证拉取
- 作为 MCP 及 AI 工具链的安全凭证中间件
- 密钥轮换与集中管控:一处修改密钥,所有 Agent 自动生效
待确认事项#
官方网站(onecli.sh)和文档站(docs.onecli.sh)在调查期间均无法访问(DNS 解析失败),无法确认是否为临时故障或已下线。以下信息存在不确定性:生产环境部署最佳实践、完整的外部服务集成列表、Windows 平台支持情况、Discord 社区具体链接。