服务商
npm
Agent 怎样通过 KeyKeeper 拿到 npm 的 key,在 www.npmjs.com 该选什么,KeyKeeper 怎么验证。
| 模板 id | npm |
|---|---|
| 字段 | npm-token → NPM_TOKEN · 密钥 |
| key 长什么样 | 以 npm_ 开头,创建时只显示一次 |
| 创建页面 | www.npmjs.com |
| KeyKeeper 的验证 | GET https://registry.npmjs.org/-/whoami——reads the npm identity for this token |
| 模板核实日期 | 2026-09-15 |
Agent 做什么
keykeeper providers show npm
keykeeper save --provider npm --from-clipboard --create --purpose "这个任务是做什么的"
keykeeper run -c npm -- <你的命令>--provider npm 会补上凭据 ID 和字段名。这些环境变量就是 npm 自家工具读的那个,不需要任何映射。
只有你能做的
Sign in to npm with 2FA
Create a granular access token
Choose packages/scopes, permissions, expiry and optional IP ranges
复制 key,然后在 KeyKeeper 的窗口里确认保存。
该选什么
Select only the packages or scopes needed. Prefer stage-only for reviewable automation, otherwise read-only or package-specific publish. Keep organization access at No access unless required.
Agent 被告知的是同一件事。它替你打开页面、说明该选什么;它从不替你登录、过 2FA 或付费。
KeyKeeper 检查什么
- 写入前: 值必须像一把 npm 的 key(以
npm_开头)。贴错了会在存入之前被拒绝,并告诉 Agent 原因——不含值。 - 保存后: KeyKeeper 自己发送
GET https://registry.npmjs.org/-/whoami,key 放在Authorization请求头里(reads the npm identity for this token)。Agent 收到的是「接受」「拒绝」或「联系不上」——从不是值。
轮换与过期
No universal expiry policy was confirmed for this credential type. Record the date shown by the provider, or leave it unknown. 在 www.npmjs.com 轮换或撤销。