返回更新列表
新发布Aug 5, 2026

apm v11.2.0

一个面向所有人的本地密码管理器

分享

APM

一个为所有人打造的更好用的本地密码管理器。

Go Rust License Docs

CI Latest Release Stars Issues

APM 是一款用 Go 和 Rust 编写的快速、零知识 CLI 密码管理器。它在一个加密保险库中存储 **25 种以上结构化机密类型**——从密码和 TOTP 验证码到 SSH 密钥、医疗记录、照片和二进制文件。本仓库发布两个二进制文件:`pm` 用于个人使用,`pm-team` 用于共享的组织级保险库。

为什么选择 APM?

  • 快速且易学——无需记忆命令或标志。APM 会提示你输入所需内容。同时为追求最高效率的高级用户提供 CLI 标志。
  • 零知识——你的主密码永远不会被存储。使用 Argon2id 派生三个独立的 32 字节密钥。除了你,任何人都无法解密你的保险库。
  • 双重加密——可选择 AES-256-GCM 或 XChaCha20-Poly1305。在 AEAD 认证之上通过 HMAC-SHA256 提供双重完整性保护。
  • 可移植——一个保险库文件,一个二进制文件。随时随地携带你的保险库。
  • 可选云同步——同步至 Google Drive、GitHub 或 Dropbox。完全自愿启用;使用 APM 无需账号。
  • 可扩展——基于清单的插件系统,拥有 100 多项细粒度权限、生命周期钩子和插件市场。
  • AI 就绪——原生 MCP 服务器,配以作用域令牌,让 Claude、Cursor 或任何兼容 MCP 的代理都能安全访问你的保险库。
  • 团队就绪——pm-team 提供完整的 RBAC、部门、审批流程和共享保险库。

快速开始

go build -o pm .
pm setup       # initialize vault and choose security profile
pm unlock      # start a session
pm add         # add a secret (interactive)
pm get github  # fuzzy search and retrieve
pm lock        # end session

团队版:

cd team
go build -o pm-team .

机密类型

APM 支持 25 种结构化机密类型,具有经过验证的字段和特定类型的显示逻辑:

#类型#类型
1密码14Docker 注册表
2TOTP15CI/CD 机密
3政府证件16安全笔记
4医疗记录17恢复代码
5旅行信息18证书
6联系人19银行信息
7Wi-Fi20文档
8API 密钥21软件许可证
9令牌22法律合同
10SSH 密钥23照片
11SSH 配置24音频
12云凭据25视频
13Kubernetes

功能

安全性

  • 零知识 Argon2id 密钥派生——主密码永不存储
  • 双 AEAD 加密算法:AES-256-GCM 和 XChaCha20-Poly1305
  • HMAC-SHA256 双重完整性校验
  • 四种可调安全配置:standardhardenedparanoidlegacy
  • 基于期限、访问次数和权限级别的每项机密信任评分(0–100)
  • 存储在保险库之外的防篡改审计日志

保险库

  • 单个加密保险库文件——可在任何设备间移植
  • 用于逻辑隔离的空间(类似文件夹)
  • 带交互式浏览器和键盘导航的模糊搜索
  • 元数据检查器:创建日期、最近访问、访问次数、信任评分

TOTP

  • 交互式列表中的实时倒计时器
  • 持久自定义排序
  • 直接复制:pm totp github
  • 自动填充守护进程集成,自动注入 2FA 验证码

云同步

  • Google Drive(OAuth2 PKCE)、GitHub(PAT)、Dropbox(OAuth2 PKCE)
  • 端到端加密——服务提供商永远看不到明文
  • .apmignore 用于按提供商过滤条目
  • 冲突解决:覆盖、保留本地或取消
  • 后台自动同步

会话

  • 显式解锁/锁定,支持可配置的过期时间和不活动超时
  • 为自动化和 AI 代理访问提供委托的临时会话

MCP 服务器

  • 原生 Model Context Protocol 服务器
  • 作用域权限令牌:readsecretswriteadmin
  • 写操作的事务护栏:预览 → 批准 → 回执
  • 兼容 Claude Desktop、Cursor、Windsurf 以及任何 MCP 客户端

插件

  • 基于清单的插件系统
  • 100 多项细粒度权限,涵盖保险库、网络、系统、加密、UI 和云
  • 用于保险库生命周期事件的钩子系统
  • 通过云服务提供商提供插件市场

恢复

方式命令
邮箱 OTPpm auth email
恢复密钥pm auth recover
法定份额(Shamir)pm auth quorum-setup
WebAuthn 通行密钥pm auth passkey register
一次性恢复代码pm auth codes generate

导入 / 导出

格式导入导出
JSONpm import jsonpm export json
CSVpm import csvpm export csv
TXTpm import txtpm export txt

策略引擎

name: corporate-standard
password_policy:
  min_length: 14
  require_uppercase: true
  require_numbers: true
  require_symbols: true
rotation_policy:
  rotate_every_days: 90
  notify_before_days: 14
pm policy load ./policies/

团队版(pm-team

  • 支持多种角色的 RBAC
  • 部门拥有隔离的加密域
  • 敏感条目的审批流程
  • 用于多用户凭据共享的共享保险库

安全配置

配置Argon2 内存迭代次数并行度使用场景
standard64 MB32大多数机器
hardened256 MB54工作站(≥8 GB 内存)
paranoid512 MB64服务器(≥16 GB 内存)
legacyPBKDF2600,0001向后兼容

APM 会自动检测你的 CPU 核心数和内存,以便在 pm setup 期间推荐最佳配置。


开发状态和历史

(此说明来自项目所有者) 截至 2026 年 3 月 30 日,我正在为 APM 开发 GUI。起初它是一个 CLI 应用程序。issue #38 详细说明了这一切。总的来说,我希望 APM 能够触达更广泛的用户群体。我计划将 GUI 单独放在一个 apm-gui 仓库中,或者创建一个组织并将两个仓库都迁移过去。

我开始做 APM 纯粹是作为个人项目。那是一个随意的夜晚,我想创建自己的密码管理器。我厌倦了 Zoho Password,因为我用它来管理 TOTP。它慢得几乎无法使用,而我当时用明文文件保存令牌,这很不安全。

截至目前,我没有任何放弃/停止维护该项目的计划。它将在很长一段时间内保持可用。我每天都在努力改进它,并且每天都使用它。有时仓库可能不活跃,那是我在测试和试验该应用的时候。


发布结构

版本稳定?保险库安全?用途
Canary最早的功能预览——可能损坏保险库
Alpha功能不稳定,但保险库完整性有保障
Beta经过全面测试的功能,慎重发布
Stable生产就绪的正式版本

在尝试 Canary 版本之前,请务必备份你的保险库。 附:对于某些发布版本,根据发布的快捷与简便程度,在无需创建过多版本层级的情况下,某些层级可能不会发布。


文档

完整文档见 aaravmaloo.github.io/apm


贡献

欢迎贡献。有关指南,请参阅 CONTRIBUTING.md


许可证

GPL-3.0 许可证 © Aarav Maloo

分类