link-cli 是 Stripe 推出的 Link 代理钱包命令行工具,用于让 AI 智能体代表用户安全地完成支付。其核心思路是:智能体不接触用户的真实卡信息,而是通过 Link 钱包获取一次性支付凭证,从而在用户授权的前提下完成购买。
用途 link-cli 面向需要让智能体代为付款的场景。它使用 OAuth 2.0 设备授权授予流程(RFC 8628),无需浏览器、无需 localhost 回调、也无需 API 令牌。凭证保存在本地 ~/.config/link-cli-nodejs/config.json。
安装与运行 该工具通过 npx -y @stripe/link-cli 运行,无需预先安装。仓库地址为 https://github.com/stripe/link-cli。
认证流程 所有依赖认证的命令遵循同一模式:运行命令后,若未认证,会返回 verification_url 和 phrase;将 URL 呈现给用户,请其在 Link 应用中批准;随后立即轮询直到认证完成,不要等待用户回复后再轮询。
登录:npx -y @stripe/link-cli auth login --format json,返回 verification_url、phrase 和 _next.command。 轮询认证:可使用登录响应中的 _next.command,或运行 npx -y @stripe/link-cli auth status --interval 5 --max-attempts 60 --format json,当 authenticated 为 true 时退出。 检查状态:npx -y @stripe/link-cli auth status --format json,返回 authenticated、credentials_path,若待处理则返回当前 verification_url 和 phrase。 登出:npx -y @stripe/link-cli auth logout --format json。
支付方式 列出支付方式:npx -y @stripe/link-cli payment-methods list --format json,返回已保存支付方式的 id、type(CARD)、name、is_default 以及 card_details(brand、last4、exp_month、exp_year)。
消费请求 核心流程为:创建消费请求 → 用户在 Link 应用中批准 → 智能体收到一次性凭证。
创建消费请求:npx -y @stripe/link-cli spend-request create,需提供 --payment-method-id、--merchant-name、--merchant-url、--amount(以分为单位,最大 50000,即 500.00 美元)、--currency(三位 ISO 代码,默认 usd)、--context(至少 100 字符,描述购买内容与理由)。可选参数包括 --credential-type shared_payment_token(用于 MPP/HTTP 402 流程,省略商户名与 URL)、--test(测试模式,生成测试卡 4242 4242 4242 4242)、--line-item 和 --total(均可重复)。返回 approval_url 和 _next.command。 轮询批准:npx -y @stripe/link-cli spend-request retrieve <spend-request-id> --interval 2 --max-attempts 150 --format json,当状态为 approved、denied 或 expired 时退出;若超时仍为 pending,则以非零退出并返回 POLLING_TIMEOUT。 揭示卡详情:npx -y @stripe/link-cli spend-request retrieve <spend-request-id> --include card --format json,批准后返回 card 对象,包含 number、cvc、brand、exp_month、exp_year、billing_address 和 valid_until。该卡为一次性使用,过期时间为 valid_until。 更新消费请求:npx -y @stripe/link-cli spend-request update <spend-request-id> --merchant-url "https://example.com/new-url" --format json。 单独请求批准:若创建时省略了 --request-approval,可运行 npx -y @stripe/link-cli spend-request request-approval <spend-request-id> --format json。
机器支付协议(MPP) 对于支持 MPP/HTTP 402 的商户,可跳过结账表单。
解码 MPP 挑战:npx -y @stripe/link-cli mpp decode --challenge '<WWW-Authenticate header value>' --format json,提取 SPT 消费请求所需的 network_id。 通过 MPP 支付:npx -y @stripe/link-cli mpp pay "https://api.example.com/resource" --spend-request-id "<approved-spend-request-id>" --method GET --format json。消费请求必须已批准且 credential_type 为 shared_payment_token。令牌为一次性使用,若支付失败需创建新的消费请求。选项包括 --method(GET/POST/PUT/DELETE/PATCH)、--data '<json>'、--header "Key: value"(可重复)。
引导式设置 交互式引导:npx -y @stripe/link-cli onboard,引导完成认证、支付方式检查、应用下载二维码和演示流程,需要 TTY,不适合无头或智能体驱动使用。 运行演示:npx -y @stripe/link-cli demo --only-card --format json,仅测试模式,可用 --only-card 或 --only-spt 运行单一流程,需要 TTY。
MCP 服务器模式 npx -y @stripe/link-cli --mcp 可将 link-cli 作为本地 MCP 服务器运行,供兼容 MCP 的客户端使用。
环境变量 NO_UPDATE_NOTIFIER=1:抑制版本更新检查(用于 CI/自动化)。 LINK_API_BASE_URL:覆盖 API 基础 URL。 LINK_AUTH_BASE_URL:覆盖认证基础 URL。
使用准则 始终使用 --format json,默认的 toon 格式面向人类 TTY 消费,JSON 才便于机器解析。登录与轮询之间不要等待用户,调用 auth login 后立即呈现 URL 并开始轮询 auth status;消费请求同理,创建后呈现 approval_url 并立即轮询。演示时使用测试模式,在 spend-request create 上加 --test 以避免真实扣款。context 为必填且至少 100 字符,用户批准时会阅读该内容,需清楚描述购买内容与理由。虚拟卡为一次性使用且有效期较短(通常约 1 小时),批准后应立即使用。凭证跨会话持久化在 ~/.config/link-cli-nodejs/config.json,假设用户已登录前应先检查认证状态。注意响应中的 _next 字段,许多命令会返回 _next.command 给出确切的轮询命令。金额以分为单位,100 即 1.00 美元,50000 即 500.00 美元(上限)。demo 和 onboard 需要 TTY,在无头沙箱环境中无法工作。无需 API 令牌或连接器,link-cli 自行管理 OAuth 设备流程并在本地存储凭证。
适用场景与限制 适用于让智能体代表用户完成在线购买、生成一次性虚拟卡、通过 MPP/HTTP 402 进行机器支付等场景。限制包括:消费请求金额上限为 50000 分(500 美元);虚拟卡一次性且有效期短;context 至少 100 字符;demo 与 onboard 需要 TTY;MPP 支付令牌一次性使用,失败需重新创建请求。