秘密管理工具

PassBox是一个为开发者、CI/CD管道和AI代理设计的开源端到端加密秘密管理器,提供客户端加密、团队共享和AI代理集成功能。

  • by Paparusi
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Paparusi/passbox

使用说明

PassBox

Zero-knowledge secrets management for developers and AI agents

Dashboard · API · npm · Contributing


PassBox是一个开源的端到端加密密钥管理器,专为开发人员、CI/CD管道和AI代理构建。你的秘密在离开你的机器(服务器)之前,会在客户端进行加密 从不 看到明文数据。

为什么选择PassBox?

  • 零知识加密 --Argon2d+AES-256-GCM+X25519。服务器无法解密您的机密。
  • CLI优先 --从终端管理秘密。注入任何流程 passbox run.
  • AI代理原生 --内置MCP服务器,具有凭证代理功能。AI代理在不查看机密的情况下使用机密。
  • Web仪表板 --用于管理保管库和机密的全功能web UI。
  • 开发人员SDK --用于编程访问的TypeScript SDK。 npm install @pabox/sdk.
  • 自助式 --使用Docker运行自己的实例,或使用托管云。
  • 团队共享 --通过X25519密钥交换使用基于角色的访问共享保管库。
  • 版本历史 --每一个秘密的变化都会被追踪。随时回滚。
  • 审计日志 --对谁访问了什么以及何时访问的完整审计跟踪。

快速开始

安装CLI

npm install -g pabox

基本用法

# Login (creates account on first use)
passbox login

# Create a vault
passbox vault create my-app

# Store secrets
passbox set DATABASE_URL "postgres://user:pass@host/db"
passbox set API_KEY "sk-live-xxxxx"
passbox set JWT_SECRET "super-secret-key"

# Retrieve a secret
passbox get DATABASE_URL

# List all secrets
passbox list

# Inject secrets into a process
passbox run -- node server.js
# All vault secrets are now available as environment variables

# Import from .env file
passbox env push .env

# Export to .env file
passbox env pull

Web仪表板

网络仪表板已上线 passbox.dev.

特征:

  • 创建和管理保管库
  • 添加、编辑、显示、复制和删除机密
  • 搜索和过滤机密
  • 账户设置
  • 响应式设计(适用于移动设备)

软件开发工具包

npm install @pabox/sdk
import { PassBox } from '@pabox/sdk';

// Authenticate with service token (for servers/CI)
const pb = new PassBox({
  serverUrl: 'https://api-production-db62.up.railway.app',
  token: 'pb_live_xxxxxxxxxxxx',
});

// Or register a new account (with full E2E crypto)
const { passbox, recoveryKey } = await PassBox.register({
  email: 'user@example.com',
  password: 'master-password',
});
// Save recoveryKey — it's shown only once!

// Or login with existing account
const pb2 = await PassBox.login({
  email: 'user@example.com',
  password: 'master-password',
});

// Secret operations
await pb.secrets.set('DATABASE_URL', 'postgres://...');
const value = await pb.secrets.get('DATABASE_URL');
const all = await pb.secrets.list();

// Bulk .env operations
await pb.env.import('.env', { vault: 'my-app' });
const envString = await pb.env.export({ vault: 'my-app' });

// Inject into process.env
await pb.env.inject({ vault: 'my-app' });
console.log(process.env.DATABASE_URL); // available now

MCP服务器(AI代理)

PassBox包含一个MCP服务器,允许AI代理(Claude、GPT等)安全地访问机密,而不会暴露原始值。

npm install -g @pabox/mcp-server

Claude桌面配置

{
  "mcpServers": {
    "passbox": {
      "command": "npx",
      "args": ["@pabox/mcp-server"],
      "env": {
        "PASSBOX_TOKEN": "pb_live_xxxxxxxxxxxx",
        "PASSBOX_SERVER": "https://api-production-db62.up.railway.app"
      }
    }
  }
}

可用的MCP工具

工具 说明
passbox_get_secret 获取秘密值
passbox_set_secret 创建或更新机密
passbox_list_secrets 在保险库中列出秘密
passbox_delete_secret 删除机密
passbox_list_vaults 列出可用保管库
passbox_proxy_request 使用注入的机密进行HTTP请求(凭证代理)

凭证经纪

这 passbox_proxy_request 该工具允许人工智能代理使用您的秘密进行API调用 从未见过原始凭证:

Agent: "Call the Stripe API to list customers"
→ PassBox replaces {{STRIPE_KEY}} with the actual key
→ Makes the HTTP request server-side
→ Returns the response to the agent
→ Agent never sees the API key

建筑

加密

Master Password
    │
    ▼ Argon2id (3 iterations, 64MB memory, 4 parallelism)
    │
Master Key (256-bit)
    │
    ├──► Encrypts vault keys (AES-256-GCM)
    │
    └──► X25519 key pair
         ├── Public key → stored on server (for sharing)
         └── Private key → encrypted, stored on server

每个秘密都使用每个保险库密钥用AES-256-GCM加密。保险库密钥使用主密钥加密。服务器只存储密文——解密完全在客户端进行。

加密库: @贵族/密码, @贵族/曲线, @贵族/哈希 --由Cure53审核,零依赖。

Monorepo结构

passbox/
├── apps/
│   ├── server/          # Hono API server (Railway)
│   ├── cli/             # CLI tool (passbox command)
│   └── web/             # Next.js web dashboard (Vercel)
├── packages/
│   ├── types/           # Shared TypeScript types
│   ├── crypto/          # E2E encryption library
│   ├── sdk/             # TypeScript SDK
│   ├── mcp-server/      # MCP server for AI agents
│   └── config/          # Shared configs
├── supabase/            # Database migrations
└── docker/              # Docker setup

自我寄宿

Docker Compose

git clone https://github.com/Paparusi/passbox.git
cd passbox/docker

# Configure environment
cp .env.example .env
# Edit .env with your Supabase credentials

# Start services
docker compose up -d

Docker(仅限服务器)

docker build -f docker/Dockerfile.server -t passbox-server .
docker run -p 3000:3000 --env-file .env passbox-server

手册

git clone https://github.com/Paparusi/passbox.git
cd passbox
pnpm install
pnpm build

# Start server
node --env-file=.env apps/server/dist/index.js

数据库设置

PassBox使用 Supabase (PostgreSQL+身份验证+行级安全)。

  1. 在以下位置创建Supabase项目 网站 supabase.com
  2. 运行迁移:
    supabase link --project-ref YOUR_PROJECT_REF
    supabase db push
    
  3. 将项目URL、匿名密钥和服务角色密钥复制到 .env

CLI命令

命令 描述
passbox login 登录或创建帐户
passbox logout 清除本地会话
passbox vault create <name> 创建新vault
passbox vault list 列出您的保险库
passbox vault delete <name> 删除vault
passbox get <name> 获取秘密值
passbox set <name> <value> 设定秘密
passbox delete <name> 删除机密
passbox list 列出当前保管库中的所有机密
passbox env push <file> 将.env文件导入到vault
passbox env pull 将vault导出到.env文件
passbox run -- <cmd> 将secrets作为env变量运行命令
passbox serve 启动MCP服务器
passbox whoami 显示当前用户

API

基本URL: https://api-production-db62.up.railway.app/api/v1

端点 方法 描述
/health GET 健康检查
/auth/register POST 注册+生成密钥
/auth/login POST 登录+接收JWT
/auth/refresh POST 刷新访问令牌
/auth/service-token POST/DELETE 服务令牌管理
/keys/me GET/PUT 用户加密密钥
/vaults GET/POST 列出/创建保管库
/vaults/:id GET/PUT/DELETE Vault CRUD
/vaults/:id/members GET/POST 保险库共享
/vaults/:id/members/:uid PUT/DELETE 成员角色管理
/vaults/:vid/secrets GET/POST 列出/创建机密
/vaults/:vid/secrets/bulk POST 批量创建/更新
/vaults/:vid/secrets/export GET 导出为.env
/vaults/:vid/secrets/:name GET/PUT/DELETE 机密CRUD
/vaults/:vid/secrets/:name/versions GET 版本历史记录
/audit GET 审核日志(管理员+)

npm包

软件包 说明 安装
pabox CLI工具 npm i -g pabox
@pabox/sdk TypeScript SDK npm i @pabox/sdk
@pabox/mcp-server MCP服务器 npx @pabox/mcp-server
@pabox/crypto 加密库 npm i @pabox/crypto
@pabox/types TypeScript类型 npm i @pabox/types

贡献

我们欢迎捐款!看 贡献.md 有关设置说明。

git clone https://github.com/Paparusi/passbox.git
cd passbox
pnpm install
pnpm build
pnpm test

安全

PassBox采用零知识架构设计。如果您发现安全漏洞,请参阅 安全.md 我们的披露政策。

许可证

麻省理工学院 --免费使用、修改和分发。