Skip to content
webkuborPublic

About

🔐 本地密钥库:管理 API Key / Token,AES-256-GCM 加密存本机,工具凭别名取用,agent 不接触明文。 / Local-first secret manager for AI workflows — agents get aliases, never plaintext.

Topics

Resources

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

Kyvault Banner

🔐 Kyvault

AI 时代开发者密钥与资产台账管理器 — 用别名注入,减少向模型上下文传递明文。

Version crates.io Test License Downloads Rust 无需额外语言运行时

本地优先(local-first)的 secret manager(密钥管理 / 秘钥管理)
一个二进制同时是 API key manager(API Key 管理)、token manager(Token 管理 / 令牌管理)、password manager(密码管理)与 credentials(凭证管理)台账;
AES-256-GCM 加密落盘,提供本地 secret management 与 dotenv / .env 替代方案;用 `ky run` 将凭证注入子进程,避免在模型上下文中传递明文。


Ky 桌面版

面向人的独立 Tauri 2 App:文本剪贴板历史、配置片段版本和本地密钥管理。CLI 继续供 Agent 与脚本使用。构建、使用与本地存储边界见 桌面版说明。当前为本地构建预览版,未公开发布。

🎬 30 秒演示

kyvault 30 秒演示:明文密钥如何流进 AI 上下文,又如何被别名替代

一条命令把密钥从「明文躺在上下文里」变成「只有别名的引用」。
下载 MP4(1920×1080)


🎯 Kyvault 的行为与边界

能力 实际行为与边界
默认本地存储 文件后端使用 AES-256-GCM 加密,读取与解密无需联网。
ky run 别名注入 命令只需引用别名或 secret:// URI,值在运行时传入子进程环境,无需先交给模型上下文。
ky get 明文读取 会将解密后的值输出到终端;交给 AI 执行时,输出可能进入模型上下文。
可选网络功能 API 验证与余额查询、更新、GitLab 同步和可选 D1 后端会访问网络。
子进程输出 子进程能读取并输出注入的值;Kyvault 不隔离子进程,也不自动过滤其日志。

🖥️ 本地 GUI

不想敲命令?ky ui 一键唤起本地极客 Web GUI —— 向导式录入、可视化检索,全程零命令。

ky ui 智能存入向导:点选分类 → 点选平台 → 自动生成规范 URI → 粘贴即存

智能存入向导 —— 选大类 → 选平台 → URI 自动生成,粘贴密钥点「安全加密存入」即完成。

ky ui 凭证检索台账:搜索、分类、别名与末位标识一览

凭证检索台账 —— 全库检索、按平台/别名过滤,末位标识辅助辨认(不暴露完整密钥)。

GUI 只绑 127.0.0.1,地址带每次启动随机生成的 token —— 本机其他网页借不走你的明文。

macOS 用户还可以一键生成 Dock 图标(点图标 = 打开 GUI,不用开终端):

bash scripts/make-dock-app.sh   # 生成 ~/Applications/Kyvault GUI.app,拖进 Dock 即可

🔥 一屏特性亮点

  • 🔒 别名注入 (Alias Injection): 用别名(如 github_token)引用凭证,ky run 在运行时将值注入子进程,无需把明文写进提示词。子进程仍可读取或输出该值。
  • 🌐 本地极客 Web GUI 与向导 (Web GUI & Wizard): 一键 ky ui 唤起本地极客暗黑风面板;ky wizard 提供终端四步分类引导,彻底告别命名不统一。
  • 🧾 浏览器录入、先验证再写库 (ky add): 邮箱授权码 / 应用专用密码、邮箱登录密码、API Key 都在本地页面粘贴:自动去空格与零宽字符、大小写原样保留;先用 IMAP 或平台接口验证,通过才加密写入;一个邮箱只保留一条登录密码,新的覆盖旧的。
  • 🤖 多平台 CLI 智能对接 (AI Connect): 一键 ky connect,自动将规则和技能注入 Gemini/agy/Claude/Codex/Hermes 及项目本地助手 记忆与规则库。
  • 🖥️ 开发者加密台账中心 (Developer Ledger): 加密管理服务器账号密码、云服务租金、CLI 客户端多 Profile 凭证令牌,支持 URI 寻址。
  • ⚡ 极简短命令 (First-Class ky): ky 作为官方第一公民,敲 ky list、ky run、ky ui 享受最极客的开发者心流。

⚡ 30 秒上手

# 1. 一键安装(自动就绪 kyvault 与短命令 ky)
curl -fsSL https://raw.githubusercontent.com/webkubor/kyvault/main/install.sh | bash

# 或者用 Cargo(需要 Rust 工具链)
cargo install kyvault

# 2. 一键连接本地所有 AI 智能体 (Claude / Codex / agy / Hermes / Cursor)
ky connect

# 3. 浏览器录入凭据:自动去空格 → 找旧条目 → 先验证,通过才写库
ky add                              # 也可 --email [email protected] / --email [email protected] --login / --provider deepseek

#    极客 Web GUI 可视化检索(自动打开本地浏览器,地址带一次性随机 token)
ky ui

#    macOS:一键生成 Dock 图标,点图标即开 GUI(见上方「本地 GUI」节)
bash scripts/make-dock-app.sh

# 4. 或命令行引导式规范录入
ky wizard

# 5. 以凭证引用构造命令,运行时注入(避免子进程输出密钥)
ky run --env GITHUB_TOKEN=secret://github/pat -- git push

💡 关于快捷短命令 ky:ky 是 kyvault 的官方第一公民短命令,两者完全等价。敲 ky list、ky run、ky ui 即可体验极致的极客开发流。


🔥 核心亮点

🔒 1. AI 编码原生安全 (AI-Safe Alias Injection)

  • 痛点:当 AI 助手读取含有凭证的 .env 文件,或命令输出了环境变量时,明文可能进入模型上下文与会话记录。是否用于训练取决于所用服务的政策与设置。
  • 解法:通过别名映射注入,AI 可用别名或 secret:// URI 构造命令,ky run 再把值传给子进程环境。这减少了主动向模型提供明文的需要;它不是沙箱,ky get 或子进程输出仍可能暴露凭证。

🤖 2. 智能连接,AI 零配置感知 (Zero-Config AI Connect)

  • 一键连接:内置 kyvault connect 命令,能自动发现并注入当前机器的全局 Gemini/Claude 规则与当前项目的 .agents/ 技能文件。
  • IDE 无感对接:自动识别项目目录并追加安全别名规则到 .cursorrules 与 .copilotinstructions。AI 智能体在理解您的项目时会“自动学会”使用 kyvault,实现零人工介入的主动安全运维。

🖥️ 3. 加密资产台账中心 (Developer Ledger & CLI Multi-Tokens)

  • 服务器台账:将服务器 IP、root 登录密码、云服务商及月度租用成本以第一公民的数据结构集中加密记录,统一支持 secret://server/<host>/[ip|root-password] 的 URI 寻址解密。
  • CLI 多账户管理:支持针对同一个 CLI 工具(如 studio-cli、git)管理多套 Profile(如主账户、测试账户、部署账户)的 Token,多账户环境一键读取,杜绝身份混淆。

🔑 4. 本地加密 (Local Encryption)

  • 认证加密:文件后端使用 AES-256-GCM 加密凭证值;寻址名称和部分审计元信息不加密。
  • 离线读取:默认文件后端的读取与解密无需联网。API 验证、更新、GitLab 同步及可选 D1 后端会访问网络。

⚠️ name 是别名,不要填密钥本身。 secret://<platform>/<name> 里的 name 不加密 —— 它是寻址用的,list 会原样打印。 把密钥填进 name 等于「加密存了一份、明文又漏一份」。往 set 里塞 sk-... / ghp_... 当 name 等于自废加密。

🔄 5. 极简无缝迁移 (.env Migration)

  • 无感导入:支持一键导入项目已有的 .env 配置文件,并自动匹配最适合 AI 使用的变量别名。
  • 支持 Dry-Run:在实际导入前提供安全预览机制,清晰掌握数据结构变化。

📖 使用指南

账户管理

# 保存账户(用户名+密码)
kyvault account set github [email protected] mypassword123
kyvault account set github [email protected] adminpass456

# 读取密码
kyvault account get github [email protected]

# 列出平台下所有账户
kyvault account list github

# 删除账户
kyvault account delete github [email protected]

密钥管理

# 保存平台密钥(API Key、Token 等)
kyvault key set github ghp_xxxxxxxxxxxx
kyvault key set openai sk-xxxxxxxxxxxx

# 读取密钥
kyvault key get github ghp_xxxxxxxxxxxx

# 列出平台下所有密钥
kyvault key list github

# 删除密钥
kyvault key delete github ghp_xxxxxxxxxxxx

平台查询

# 列出所有平台及摘要
kyvault platform

# 查看指定平台详情
kyvault platform github

AI 集成

# 推代码
kyvault run --env GITHUB_TOKEN=secret://github/pat -- git push

# 调 API
kyvault run --env OPENAI_API_KEY=secret://openai/api-key -- python app.py

# 多个密钥
kyvault run --env TOKEN1=secret://example/first --env TOKEN2=secret://example/second -- python script.py

别名系统

# 创建别名(AI 只认识这个)
kyvault alias set github_token secret://github/pat

# 用别名注入
kyvault run --env GITHUB_TOKEN=github_token -- git push

从 .env 迁移

# 预览(不实际导入)
kyvault import --file .env --dry-run

# 导入全部
kyvault import --file .env

# 只导入 GitHub 相关
kyvault import --file .env --prefix GITHUB_

🤖 AI 智能体一键连接 (AI Connect)

通过全局和项目本地规则,向 AI 编码助手(如 Cursor、VSCode Copilot、Claude Code 等)说明密钥库与别名用法,引导其优先使用注入命令:

# 一键自动对接全局 Gemini 规则和当前项目下的 .agents/、.cursorrules 和 .copilotinstructions
kyvault connect

🖥️ 服务器密码与租金台账 (Server Ledger)

以第一公民命令格式加密存储您的所有服务器台账,支持以 secret:// 的形式让 AI 直接寻址解密:

# 1. 保存服务器(必填:主机名、IP、root密码;可选:月租成本、云服务商)
kyvault server set my-host 120.46.12.3 rootpwd123 --cost "99元/月" --provider "腾讯云"

# 2. 查询全部台账信息
kyvault server get my-host

# 3. 指定读取单个加密字段(支持 secret:// URI 路由兼容,完美服务 AI)
kyvault server get my-host --field ip            # 输出: 120.46.12.3
kyvault get secret://server/my-host/root-password # 输出: rootpwd123

🔌 CLI 客户端多 Token 维护 (CLI Multi-Tokens)

用于多账户、多环境切换的 CLI 统一 Token 凭证维护:

# 1. 为指定 CLI 的不同账户存储 Token
kyvault cli set studio-cli webkubor jwt_token_main
kyvault cli set studio-cli test-user jwt_token_test

# 2. 查询指定 Profile 的加密令牌
kyvault cli get studio-cli webkubor             # 输出: jwt_token_main
kyvault get secret://cli/studio-cli/test-user   # 输出: jwt_token_test

🧾 账号体系、操作审计与只读面板

三件事补上「谁、哪个账号、别人能不能看」这一层:

# 1. 一个 profile = 一个账号,把散在各平台的凭据收成一组
kyvault profile add work --platform github --username alice --org acme --cli gh \
  --link secret://github/pat
kyvault profile use work          # 切换当前账号
kyvault run --profile work -- npm run deploy   # 整组注入:变量名 = ref 名大写(PAT)

# 2. 审计:谁在什么时候读过/改过哪条(只记 ref 与时间,不记明文)
kyvault audit --limit 50
kyvault audit --action get --actor alice --json
# 操作人:--as <名字> > KY_ACTOR > 库内 git user.name > $USER
# 团队谁改的:git log 的提交信息已带操作者(chore(secrets): sync by <name> at <ts>)

# 3. 只读面板:导出静态 HTML,可以放任何静态托管
kyvault panel --out panel.html

面板不含凭据值、密文或尾号,但账号、IP、设备与审计仍属于敏感元信息,应使用带访问控制的站点托管;noindex 不能代替登录鉴权。可写、能查看明文的 kyvault ui 仅绑定 127.0.0.1,且地址带每次启动随机生成的 token、只收 JSON POST、不返回 CORS 头 —— 只绑本机挡不住本机浏览器里打开的其他网页。

服务器 Agent 协作(实验性)

在受信密码库主机上,由本地管理员审批设备公钥、来源 IP 与逐条授权:

kyvault broker register prod-agent --principal agent:deploy \
  --pubkey /path/to/agent.pub --allow-ip 192.0.2.10 \
  --allow-ref secret://github/deploy --ttl-hours 24
kyvault broker authorized-key prod-agent
kyvault broker status
kyvault broker revoke prod-agent

authorized-key 只生成配置行供审阅,不会修改 SSH 设置。管理员应将其装入专用账户的 authorized_keys,使用 OpenSSH restrict、from= 与 fixed command;Agent 不得拥有该账户的其他登录路径。store、程序和授权文件必须由可信管理员维护,目录仅本人可读。不能把环境变量 SSH_CONNECTION 单独当认证;身份成立依赖正确的 sshd/forced-command 部署。principal 与 --as 仍是人工标签,认证的是登记的 SSH key,不检测私钥是否被复制。

Agent 通过专用 SSH config、已确认的 broker host key 连接,并核对预期设备:

kyvault broker probe --host vault-broker --expect-device prod-agent \
  --ssh-config /path/to/broker-ssh-config
kyvault broker run --host vault-broker --expect-device prod-agent \
  --ssh-config /path/to/broker-ssh-config \
  --env GITHUB_TOKEN=secret://github/deploy -- git push

Agent 使用自己的 SSH 私钥,不拿整库 master key。新请求受 IP、精确 ref、期限与撤销约束,服务端审计写失败则不释放凭据;服务端审计文件仍不防本机管理员篡改。撤销只阻止后续发放;已获准的请求和已复制的静态值不能追回。Mac/Windows 主设备签名审批与自动 enrollment 尚未完成。Broker 主机当前需支持 POSIX shell/OpenSSH;Windows 可作为 SSH 客户端,原生 Windows broker 尚未验收。

凭据有效性与重复监察

kyvault check openai production  # 联网检查,保存状态、HTTP 分类、检查时间和耗时
kyvault check email 163-smtp-auth  # 邮箱授权码 / 应用专用密码:IMAP 登录验证,邮箱取条目账号备注
kyvault inspect                  # 离线只读:类型/平台/账户、孤儿关联、时间问题与历史健康状态
kyvault inspect --duplicates     # 显式解密比较重复值;仅输出引用分组,不输出值、尾号或指纹

健康检查不把网络错误、403 或 429 判作凭据失效。check 返回 0 表示通过/限流(限流不证明认证成功),1 表示认证失败,2 表示权限/网络/接口等未知问题;不要用任意非零退出码自动轮换。报告显示的是最近一次记录,默认不联网。计划任务可由操作系统调度,当前没有自动创建周期任务或通知渠道。

🦊 已有 glab?不用再抄一遍 PAT

本机 glab auth login 过之后,kyvault init --remote <仓库地址> 会直接复用 glab 的登录态建私有库并首推:

kyvault gitlab auth        # 先看当前会用哪把凭证(env / glab 配置文件 / glab CLI)
kyvault init --remote https://gitlab.com/team/vault.git

凭证优先级:KY_GITLAB_TOKEN → glab 配置文件 → glab auth status --show-token。 调 API 优先走 glab api(token 不进 ps),没有 glab 才回落 curl 且 token 走 stdin。


📁 安全架构与 master.key 核心规范

~/.config/kyvault/store/ (GitLab 团队仓库)
├── auth.json        # Auth Guard 授权方法配置 (SSH 指纹、TOTP 加密 secret)
├── master.key.enc   # 旧版兼容包裹文件(不是有效的公钥加密保护)
├── secrets.json     # AES-256-GCM 加密密文 (入仓 Git 同步)
├── meta.json        # 审计元信息 (脱敏, 记录更新时间、last4、scopes、组织)
├── accounts.json    # 账号注册表 (profile / 登录名 / 组织 / ref; 不含密钥材料, 入仓)
├── audit.log        # 操作审计 (谁读过/改过哪条; 有读事件, 默认不入仓)
└── .lock            # 跨进程文件排他锁 (防止 Agent 并发写入冲突)

🛡️ 旧版 Auth Guard 配置(仅兼容)

# 这些命令只读取/关闭旧 auth.json;setup/add 默认拒绝,兼容迁移需显式设置 KYVAULT_ALLOW_INSECURE_LEGACY_AUTH=1。
kyvault auth status
kyvault auth list

旧格式使用公开 SSH .pub 内容派生 key,且 TOTP 校验未接入敏感命令。请勿把它用于密库保密或远程 Agent 授权。方案见 人类与 Agent 协作提案。

📋 人类与 Agent 协作安全边界

模式 用途 访问权限
本地 file 单机用户与本地 Agent 能解锁该 vault 的进程可读全库
Git Sync 小型可信组同步密文 同一 master key 的持有者可读全库;IP 与 visibility 不做授权
Broker(实验性 CLI 原型) SSH 设备身份 + IP/CIDR + 精确 ref + 期限/撤销 Server 持有整库 root key;Agent 仅请求获准条目,不 clone 密库

Broker 使用 OpenSSH forced command,不是公网服务。必须由管理员在专用低权限 SSH 账户安装生成的 authorized_keys 行,并通过 sshd policy 禁止交互 shell、SFTP、用户 startup hooks、环境覆盖与其他登录 key。IP 取 SSH_CONNECTION 并与 OpenSSH from= 双重约束。--as 是人工审批标签,不是 Mac/Windows 主设备签名;当前每条响应都返回请求的静态值,拿到值的进程仍可保留或外传。启用前应在隔离测试账号和服务器上 review 部署。

  • 本地 audit.log 与 --as 仅为操作线索,不是认证后的不可抵赖审计。
  • 有效性检查、到期/重复监察、多平台多账号、设备登记与 Agent Grant 的分阶段方案见 人类与 Agent 协作提案。
  • 文件后端的 AES-GCM 负责认证加密;公开明文 SHA-256 不作为共享重复检测指纹。

🔑 什么是 master.key?

master.key 是在本地生成的 32 字节(256 位)高强度安全随机数(以 44 字符的标准 Base64 编码保存)。 它是整套密钥库加解密的唯一根凭据:

  1. 纯本地计算:kyvault 使用 SHA-256(Base64Decode(master.key)) 派生 AES 密钥,对每条凭证生成独立 12 字节随机 Nonce 进行 AES-256-GCM 认证加密。解密零网络依赖。
  2. 物理隔离与绝对不入仓:master.key / master.key.enc 被 .gitignore 强力排除,kyvault gitlab push 前会进行双重防泄露检查。
  3. 本地查看与迁移备份(明文 master.key 模式):
    kyvault master-key           # 查看路径、权限、SHA-256 指纹
    kyvault master-key --reveal  # 导出明文(备份至 1Password / 换机迁移)

存储结构 (secrets.json)

{
  "github": {
    "accounts": {
      "user@gmail": "encrypted_password_1",
      "admin@gmail": "encrypted_password_2"
    },
    "keys": {
      "ghp_xxx": "encrypted_key_1",
      "ghp_yyy": "encrypted_key_2"
    }
  }
}
  • 加密算法: AES-256-GCM(认证加密)
  • 密钥派生: SHA-256
  • 包装文件: 旧版 master.key.enc 格式只为兼容保留,不验证 SSH 私钥,不能视为安全保护
  • 存储与同步: 本地脱机解密,GitLab 团队密文同步
  • 权限与并发: master.key.enc 仅当前用户可读写 (0600),跨进程 .lock 排他锁

📋 命令速查

快捷 完整 用途 示例
- kyvault init 初始化主密钥与目录 kyvault init
- kyvault master-key 查看主密钥路径与指纹 kyvault master-key (加 -r 显明文)
账户管理
kyvault account set kyvault account set 存账户 kyvault account set github user@gmail pass
kyvault account get kyvault account get 读密码 kyvault account get github user@gmail
kyvault account list kyvault account list 列账户 kyvault account list github
kyvault account delete kyvault account delete 删账户 kyvault account delete github user@gmail
密钥管理
kyvault key set kyvault key set 存密钥 kyvault key set github ghp_xxx value
kyvault key get kyvault key get 读密钥 kyvault key get github ghp_xxx
kyvault key list kyvault key list 列密钥 kyvault key list github
kyvault key delete kyvault key delete 删密钥 kyvault key delete github ghp_xxx
平台查询
- kyvault platform 平台列表 kyvault platform
kyvault platform <name> kyvault platform <name> 平台详情 kyvault platform github
API 验证
- kyvault check 验证 key 有效性与余额 kyvault check openai --key sk-xxx
- kyvault check email IMAP 复验邮箱授权码 kyvault check email gmail-app-password
- kyvault add 浏览器录入凭据(先验证再写库) kyvault add --email [email protected] (或 ky add)
- kyvault request Agent 声明录入请求 → 人粘密文 → 自动校验入库建别名 ky request declare --platform github --name ci-token --alias github_token --open (或 ky req)
- kyvault providers 支持平台列表 kyvault providers
AI 集成
- kyvault run 注入env单向执行 kyvault run --env X=val -- cmd
- kyvault connect AI 智能对接 (全Agent规则) kyvault connect
加密资产台账
- kyvault server set 存服务器台账 kyvault server set host 1.1.1.1 pw
- kyvault server get 读服务器台账 kyvault server get host
- kyvault server list 列服务器台账 kyvault server list
- kyvault server delete 删服务器台账 kyvault server delete host
- kyvault cli set 存 CLI Token kyvault cli set tool prof token
- kyvault cli get 读 CLI Token kyvault cli get tool prof
- kyvault cli list 列 CLI Token kyvault cli list
- kyvault cli delete 删 CLI Token kyvault cli delete tool prof
GitLab 团队协作
- kyvault gitlab status 团队库同步与安全检查 kyvault gitlab status
- kyvault gitlab pull 拉取最新密文与元信息 kyvault gitlab pull
- kyvault gitlab push 提交推送密文 (严查key) kyvault gitlab push
- kyvault gitlab sync 自动同步 (pull+push) kyvault gitlab sync
- kyvault gitlab setup 克隆团队仓库至本地 kyvault gitlab setup [email protected]:org/vault.git
Auth Guard 旧配置只读与关闭;setup/add 默认禁止,兼容迁移需显式 opt-in kyvault auth status
- kyvault auth setup 交互式首次配置 kyvault auth setup
- kyvault auth add 添加授权方法 kyvault auth add ssh ~/.ssh/id_ed25519.pub
- kyvault auth list 查看已绑定方法 kyvault auth list
- kyvault auth remove 移除授权方法 kyvault auth remove ssh-id_rsa
- kyvault auth disable 关闭守卫 kyvault auth disable
- kyvault auth status 守卫状态概览 kyvault auth status
引导与图形界面
- kyvault ui 启动本地极客 Web GUI(自动唤起浏览器,地址带随机 token) kyvault ui (或 ky ui)
- kyvault wizard 交互式分类引导向导 (规范URI) kyvault wizard (或 ky wizard)
自检与更新
- kyvault doctor 工具自检修复 kyvault doctor
- kyvault update 在线升级工具 kyvault update

🤖 兼容平台

LLM 大模型

平台 Logo 验证 别名注入
OpenAI 🟢 kyvault check openai --key sk-xxx ✅
DeepSeek 🔵 kyvault check deepseek --key sk-xxx(含余额) ✅
智谱 AI 🟣 kyvault check zhipu --key xxx(含余额) ✅
Moonshot (Kimi) 🌙 kyvault check moonshot --key sk-xxx(含余额) ✅
Anthropic (Claude) 🟠 kyvault check anthropic --key sk-ant-xxx ✅
Google Gemini 💎 kyvault check gemini --key xxx ✅
通义千问 ☁️ kyvault check qwen --key sk-xxx ✅
MiniMax 🔷 kyvault check minimax --key xxx ✅
字节豆包 🫘 kyvault check doubao --key xxx(含余额) ✅
Groq ⚡ kyvault check groq --key gsk_xxx ✅
Together AI 🤝 kyvault check together --key xxx ✅
OpenRouter 🔀 kyvault check openrouter --key sk-or-xxx ✅
Fireworks AI 🔥 kyvault check fireworks --key xxx ✅
SiliconFlow 🧊 kyvault check siliconflow --key sk-xxx ✅
百川 🌊 kyvault check baichuan --key xxx ✅
讯飞星火 ✨ kyvault check spark --key xxx ✅
阿里云百炼 ☁️ kyvault check aliyun --key xxx(含余额) ✅

开发与运维平台

平台 Logo 验证 别名注入
GitHub 🐙 kyvault check github --key ghp_xxx ✅
Cloudflare 🧡 kyvault check cloudflare --key cloudflare_token ✅
GitLab 🦊 kyvault check gitlab --key glpat-xxx ✅
Feishu 🐦 kyvault check feishu --key tenant_access_token ✅

🤝 贡献

欢迎贡献!请查看 CONTRIBUTING.md。

# 开发环境
git clone [email protected]:webkubor/kyvault.git
cd kyvault
cd rust
cargo test          # 含老库兼容测试(对着 tests/fixtures 里 Python 1.x 写的密钥库解)
cargo fmt --check   # CI 门禁,本地先跑
cargo clippy --all-targets -- -D warnings

📄 许可证

本项目基于 MIT 许可证开源,详情见 LICENSE。

🌐 线上文档

发布/渠道/配图等运营资料不在本仓库维护,迁到了 gitlab.com/webkubor/hermes-ops-skills 的 docs/kyvault-ops-plan.md。原因:本仓库的密钥后端之一是 Cloudflare D1(远程 HTTP 数据库),线上文档不应该被 D1 的网络抖动绑住。

❓ FAQ & 常见问题

Q: 本地只有 Node 环境,需要安装 Python 吗?

A: 不需要。
Kyvault 提供 Rust 预编译二进制,加密走 aes-gcm(AES-256-GCM)、TLS 走 rustls。使用预编译版本不需要 Python、Node 或 Rust 工具链。Linux 发布目标使用 GNU ABI,仍需兼容的系统库环境。

这一点是刻意的:密钥库是所有需要凭据的工作的底座,它不该依赖任何一个可能坏掉的运行时。此前的 Python 版就吃过这个亏——某些机器上解释器的 TLS 验证会整体失效(同一条证书链 openssl verify 判 OK、curl 连得通,唯独 Python 报 CERTIFICATE_VERIFY_FAILED),密钥写入通道当场只读。


🔎 常见搜索 / Find us by

在找 dotenv / .env 的替代方案,或者想把散落各处的 API Key、Token、密码与服务器凭证收进同一个 加密仓库?Kyvault 就是干这个的。已有的 .env 用 kyvault import --file .env 导入,之后交给 ky run 把值注入子进程,不必把它写进提示词或模型上下文。

它是 local-first 的:默认文件后端本地运行、解密不出网;需要远端存储时,可选 GitLab 密文同步, 或用 KYVAULT_BACKEND=d1 接 Cloudflare D1 远端密文后端。与需要自行部署的 self-hosted 密钥管理服务相比,Kyvault 的本地用法无需部署服务端;远端功能则需要相应的 GitLab 仓库或 D1 配置。


🌟 觉得好用?支持一下!

如果您喜欢 Kyvault,请为本项目在 GitHub 上点个 Star ⭐️!您的每一个 Star 都是我们持续优化的最大动力!
👉 GitHub 仓库链接


Built with 🔐 by webkubor

About

🔐 本地密钥库:管理 API Key / Token,AES-256-GCM 加密存本机,工具凭别名取用,agent 不接触明文。 / Local-first secret manager for AI workflows — agents get aliases, never plaintext.

Topics

Resources

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages