Hermes Agent Can Now Pay for Things - Stripe Link, MPP, and SaaS Provisioning

On June 15, Nous Research announced a Stripe partnership that gives Hermes Agent the ability to pay for goods, per-call APIs, and SaaS provisioning - all through optional skills with configurable safety limits. The announcement gathered 3,312 likes and 260 retweets in its first 24 hours.
The implementation is a single PR (#31343), 930 lines of additions across 8 files, zero core changes. No new model tools. No new environment variables. Three skills, installed optionally, each independently loadable.
The three skills
| Skill | Identifier | What it does | LOC |
|---|---|---|---|
| Stripe Link CLI | official/payments/stripe-link-cli |
One-time virtual cards, Shared Payment Tokens, merchant checkout | 184 |
| MPP Agent | official/payments/mpp-agent |
HTTP 402 per-request API payments via Machine Payments Protocol | 124 |
| Stripe Projects | official/payments/stripe-projects |
Provision SaaS (Neon, Vercel, Twilio), sync credentials, manage billing | 120 |
Install any of them with:
hermes skills install official/payments/stripe-link-cli
hermes skills install official/payments/mpp-agent
hermes skills install official/payments/stripe-projects
All three are gated to Linux and macOS. The Stripe Link CLI does not support Windows, and the payments cluster moves as a unit until that changes.
How Stripe Link works
The stripe-link-cli skill wraps @stripe/link-cli so Hermes can complete purchases using one-time virtual cards or Shared Payment Tokens (SPT). Every spend is gated by an in-app approval in the Link mobile or web app - the agent cannot self-approve.
The flow is straightforward. Hermes checks auth status with link-cli auth status, evaluates the merchant to decide between a card credential (web checkout) or shared_payment_token (HTTP 402), lists available payment methods, confirms the final total with the user in cents, then creates a spend request:
link-cli spend-request create \
--payment-method-id <pm_id> \
--merchant-name "example.com" \
--merchant-url "https://example.com" \
--context "purchasing API credits for data pipeline" \
--amount 500 \
--line-item "name:API credits,unit_amount:500,quantity:1" \
--total "type:total,display_text:Total,amount:500" \
--request-approval
The --request-approval flag pushes the spend to the Link app. The user approves or denies it. Hermes waits for the outcome and either completes the purchase or reports back.
HTTP 402: paying per API call
The mpp-agent skill handles the Machine Payments Protocol - servers that return HTTP 402 Payment Required with a www-authenticate header. Instead of treating a 402 as an error, Hermes can pay it and retry the request.
The skill supports five clients, from the lightweight mppx (smallest dependency surface, good for one-off paid calls) to Tempo Wallet (persistent spend controls, service discovery), Privy Agent CLI (multi-chain wallets), and AgentCash (300+ pre-priced APIs funded via USDC.e). The skill defaults to mppx for single calls and guides users to Tempo Wallet when they want ongoing spend governance.
The procedure is: probe the URL with curl -i, confirm the 402 challenge is valid, pay it with the appropriate client, then retry the original request with the returned credential.
SaaS provisioning via Stripe Projects
The stripe-projects skill wraps the Stripe Projects CLI plugin. From any project directory, Hermes can initialize a .projects/vault/vault.json encrypted credential store, discover available providers (stripe projects catalog), and add services (stripe projects add <provider>/<service>).
Supported providers include Neon (Postgres), Twilio (messaging), Vercel (hosting), and others. Credentials are synced directly into the project's .env file - Hermes can use them immediately without the user manually copying API keys.
Five safety invariants
The PR authors baked five hard invariants into every skill:
-
Card PANs and wallet keys never enter agent transcripts, logs, or memory. Skills use
link-cli ... --output-file /tmp/...jsonwith0600permissions and explicitly instruct the agent not tocatorread_filethe credential file. -
Spend approvals are not self-bypassable. The Link app approval, Tempo wallet approval, and Stripe Projects confirmation prompts all sit between the agent and real spend. No configuration flag, prompt override, or agent action can skip them.
-
Final totals are confirmed with the user before any spend request. Amounts are in cents, and misplaced decimals are called out as an explicit pitfall in the skill documentation.
-
Credential output files are cleaned up after one-time use.
-
US-only services are flagged once and not retried. The Stripe Link integration is US-only - the skill checks this upfront and stops rather than looping on auth failures.
Why skills, not tools
The Hermes Agent project has a design framework for deciding between new tools, CLI commands wrapped as skills, and plugins. The PR authors chose skills for the payments integration because every new core tool inflates the schema sent on every API call, and payments capabilities only matter to users who have installed and authenticated the underlying CLIs.
The skills approach adds zero bytes to the core tool schema. The skills are loaded on demand when their trigger phrases match - "buy X," "pay for X," "set up Neon," "provision a database." Phase 3 of this integration cluster may add check-fn-gated plugin tools if a structured tool surface proves necessary, but the skills-only path ships first to validate the approach end-to-end.
All three skills were authored by Teknium and are licensed under MIT.
[^1]: Nous Research. "In partnership with @stripe, Hermes Agent now supports a full suite of Stripe skills." X. June 15, 2026. [^2]: Teknium. "feat(skills): add optional payments skills (Stripe Link, MPP, Projects)." GitHub. June 15, 2026. [^3]: Stripe. "@stripe/link-cli." GitHub. [^4]: Machine Payments Protocol. "MPP Specification."