{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}

Stripe Link Cli

通过 Stripe Link 做 agent 支付:银行卡、SPT、审批。

Skill 元数据

来源可选——使用 hermes skills install official/payments/stripe-link-cli 安装
路径optional-skills/payments/stripe-link-cli
版本0.1.0
作者Teknium (teknium1), Hermes Agent
许可证MIT
平台linux, macos
标签Payments, Stripe, Link, Checkout, MPP
相关 skillmpp-agent、stripe-projects

参考:完整 SKILL.md

INFO

以下是 Hermes 在触发此 skill 时加载的完整 skill 定义。这是 skill 激活时 agent 所看到的指令内容。

Stripe Link CLI Skill

封装 @stripe/link-cli,让 Hermes 能替用户使用一次性虚拟卡或共享支付令牌(SPT)完成购买。每笔消费都要在 Link 移动/Web 应用里通过应用内审批——Hermes 不能自己批准。

目前仅限美国(需要 Link 账户)。上游 CLI 不支持 Windows——本 skill 限定 [linux, macos]。

使用时机

触发短语:

  • "buy X"、"pay for X"、"make a purchase"、"complete checkout"
  • "get me a card"、"I need a payment method"
  • "log in to Link"、"connect my Link wallet"
  • 商户 API 返回 HTTP 402,且 www-authenticate: ... method="stripe"

如果用户想要一次付费 API 调用(HTTP 402,没有 checkout 表单),card 路径不对——改用本 skill 的 SPT,或交给 mpp-agent skill。

前提条件

  • PATH 上有 Node.js 20+(node --version)
  • 位于美国(需要 Link 账户)

Link 账户、支付方式和消费审批应用不需要在 Hermes 尝试付款之前就配好——CLI 会在首次运行时引导用户完成:

  • https://app.link.com 的 Link 账户——在首次 link-cli 认证时创建/关联
  • 至少一种支付方式——首次运行时在 https://app.link.com/wallet 添加
  • Link 移动/Web 应用——首次消费请求发出时打开它来审批

无需环境变量——认证状态由 CLI 存在它自己的配置目录下。

安装

全局安装一次:

npm install -g @stripe/link-cli

或通过 npx @stripe/link-cli 临时调用。下面的 skill 使用已安装的 link-cli 形式。

运行方式

所有命令通过 terminal 工具运行。CLI 自动检测非 TTY 调用者,默认输出紧凑的 toon 格式——对模型足够。如果某步需要结构化字段,传 --format json。

发现命令:link-cli --llms-full。调用前先查某命令的 schema:link-cli <command> --schema。

流程

1. 检查 / 建立认证

link-cli auth status

如果未认证,用一个清晰的客户端名登录(这个标签会显示在用户的 Link 应用里):

link-cli auth login --client-name "Hermes" --interval 5 --timeout 300

--interval/--timeout 形式内联轮询,这样 agent 不需要管理 _next 步骤。把验证 URL + 短语打印给用户,等待 CLI 返回。

在 auth status 确认登录之前,不要越过这一步。

2. 创建消费请求前先评估商户

决定凭据类型:

商户形态--credential-type
标准网页 checkout 表单 / Stripe Elementscard(默认)
返回 HTTP 402,www-authenticate 里带 method="stripe"shared_payment_token
返回 HTTP 402 但不带 method="stripe"不支持——停止

对于 402 响应,不要手动解码挑战。传原始头:

link-cli mpp decode --challenge '<full WWW-Authenticate header>'

这会校验挑战并提取网络 ID + 解码后的请求体。

3. 列出支付方式 + 配送地址

link-cli payment-methods list
link-cli shipping-address list

除非用户指定,否则用第一条。payment-methods list 里的 id 就是下一步的 --payment-method-id。

4. 创建消费请求

发出此命令前,与用户确认最终总额。金额单位是美分。

link-cli spend-request create \
  --payment-method-id <pm_id> \
  --merchant-name "<name>" \
  --merchant-url "<url>" \
  --context "<一句话:买的是什么、为什么>" \
  --amount <cents> \
  --line-item "name:<item>,unit_amount:<cents>,quantity:1" \
  --total "type:total,display_text:Total,amount:<cents>" \
  --request-approval

对于 MPP 商户,加 --credential-type shared_payment_token。

--request-approval 会 ping 用户的 Link 应用并轮询,直到他们批准或拒绝。CLI 在拒绝/超时时以非零退出码退出。

5. 取回凭据——安全地

不要把卡面信息打印到 stdout。 用 --output-file,让 PAN 永不进入 agent 对话记录或日志:

link-cli spend-request retrieve <lsrq_id> \
  --include card \
  --output-file ~/.hermes/cache/scratch/link-card.json \
  --format json

文件以 0600 权限写入;stdout 只显示脱敏字段(品牌、后四位、有效期)外加一个 card_output_file 路径。

6. 使用凭据

  • 网页 checkout:把文件路径交给用户,或传给一个浏览器驱动工具,让它直接从磁盘填表。永远不要 read_file 或 cat 把卡文件读进 agent 的推理上下文。

  • 对于 MPP 商户:

    link-cli mpp pay <merchant-url> \
      --spend-request-id <lsrq_id> \
      --method POST \
      --data '<json body>'
    

7. 清理

购买完成后立即删除卡文件:

rm -f ~/.hermes/cache/scratch/link-card.json

可选:改为作为 MCP 服务器运行

@stripe/link-cli --mcp 通过 stdio 把同样的命令暴露为 MCP 工具。要注册到 Hermes 原生 MCP:

hermes mcp add stripe-link --command "npx" --args "@stripe/link-cli --mcp"

然后 hermes mcp list 应显示 stripe-link。同样的审批规则适用——MCP 不绕过 Link 应用审批这一步。

常见陷阱

  • 仅限美国。 在美国以外,auth login 会失败。告诉用户,不要反复重试。
  • 卡 PAN 绝不能进入 agent 上下文。 每次都用 --output-file。如果你已经没用它取回,立刻 link-cli auth logout 还不够——卡是一次性的,但轮换卫生很重要。
  • --request-approval 会阻塞直到用户行动。 如果用户睡着了,CLI 会超时。提前打好招呼。
  • 多步 _next 命令。 有些命令返回必须执行才能继续的 _next.command。拿不准时,优先用内联轮询标志(--interval/--timeout)。
  • 非 TTY 模式下输出格式默认 toon。 对 prose 没问题,但如果下游步骤要解析某个字段,传 --format json。
  • 不要默认 card。 商户评估步骤(第 2 节)之所以存在,就是因为选错凭据类型会让购买静默失败或泄露超出需要的数据。

验证

link-cli --version && link-cli auth status

退出码 0 表示已安装且已登录。