mrkeyoor.com_
Tue 01 Sept 17:39 UTC
Automationevaluationupdated 27 Aug 2026

link-cli review

Link CLI gives software agents one-time payment credentials from a user's Link wallet, so an agent can complete a purchase without storing the user's real card details. It supports ordinary checkout forms, Stripe-hosted payment pages, and sellers using machine payment protocols, with the user approving a spend request before credentials are issued.

+29stars / 7d
Verdict

Our build finished in 7 seconds, and all 166 tests passed, which makes Link CLI unusually credible for a project still at version 0.14.0. Use it if you are building a US-focused purchasing agent and want approval-gated credentials without exposing a real card. Do not treat it as a complete commerce stack: browser control, merchant reliability, policy enforcement, receipts, and reconciliation remain your responsibility.

We ran it

Lab card: what happened when we ran link-cliScreenshot of link-cli (link.com/agents)
Install✓ · 26s426 packages · 336 MB
Build✓ · 7s
Tests✓ · 141s166 passed · 0 failed of 166 (vitest)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo183 files~22,060 lines of source · 0.9 MB · 3 CI workflows

Answers from our run

Does link-cli build from source?

Dependencies installed in 26 seconds (426 packages), and the build succeeded in 7 seconds. We cloned commit ac44abc into a clean Debian container with 3 CPUs and no project-specific setup.

Do link-cli's tests pass?

Yes: 166 of 166 passed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Does link-cli have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use link-cli?

Non-US Link users, because the current availability is limited to US accounts

What are the alternatives to link-cli?

Stripe Agent Toolkit, Browser Use, Stagehand. Our build finished in 7 seconds, and all 166 tests passed, which makes Link CLI unusually credible for a project still at version 0.

Setup4/5One-command install, but real use needs Link login and approval
Docs4/5Detailed flows, schemas, formats, security warnings, and examples
Community3/5718 stars, 14 open issues, and very recent repository activity
Maturity3/5Clean test run and active releases, but still version 0.14.0

Discussed on

  1. hnStripe link-CLI: Secure one-time-use payment credentials from a Link wallet6 points

Who it’s for

Teams building shopping or purchasing agents for US consumers
Developers who need approval-gated virtual cards for ordinary web checkouts
Agent builders using MCP or command-line tools with structured output
Stripe and Link integrators testing LPT or Shared Payment Token flows

Who it’s NOT for

Non-US Link users, because the current availability is limited to US accounts
Fully unattended purchasing systems that cannot involve a user approval step
Teams seeking a general payment processor, merchant gateway, or accounting system
Operators unwilling to protect an authenticated local session and sensitive card output

Setup reality

In our sandbox, installation succeeded in 26 seconds and pulled 426 packages using 336 MB; the build then succeeded in 7 seconds, and all 166 Vitest tests passed in 141 seconds. That is strong evidence that the source checkout is straightforward to validate on Node 22, although it is substantially heavier than the README's one-line global install suggests. Actual use still requires a US Link account, browser-based authentication, a funded payment method, and careful handling of the authenticated session and any unmasked credential file.

It turns a Link wallet into an approval gate

Link CLI tackles a specific problem: an agent may operate a checkout, but handing it a reusable card number creates a serious secret-handling risk. The tool asks the user to approve a spend request, then issues a one-time-use credential from the user's Link wallet. Its 3 paths are a virtual card for normal forms, a Link Pay Token for Stripe-hosted pages, and a Shared Payment Token for sellers using Machine Payment Protocols.

This is consumer-side payment authorization, not a merchant processor or complete shopping system. It does not handle product selection, browser navigation, tax, receipts, or support. Availability is limited to US Link accounts, which rules out global deployments today. With 718 stars and 14 open issues, it has visible interest but not enough evidence to claim broad adoption. Think of it as a guarded bridge between approved intent and payment execution.

What happened when we ran it

Our run used commit ac44abc in an unprivileged Debian container with Node 22, 3 CPUs, 8 GB of RAM, and no secrets. Installation succeeded in 26 seconds, installing 426 packages and consuming 336 MB. The build completed in 7 seconds. Vitest finished in 141 seconds with 166 passed and 0 failed. A clean checkout therefore installed, compiled, and tested without credentials or privileged setup.

The repository held 183 files, about 22,060 source lines, and a 0.9 MB checkout. We found 3 CI workflows, pnpm workspaces, no Dockerfile, and no top-level tests directory. The npm audit returned 0 known vulnerabilities at every severity. That is a clean snapshot, not a lasting guarantee, but it is reassuring for payment-related software. The 336 MB dependency footprint is the clearest cost hidden behind the README's one-line install.

Credential handling is the strongest design choice

A normal retrieval omits card details. Adding --include card reveals them, while --output-file writes the full card to a local file with 0600 permissions and prints only redacted fields. Existing files are protected unless --force is given. This lowers the chance that PAN and CVC values leak into agent transcripts or terminal logs, although callers must still protect and eventually remove the sensitive file.

Agent support is practical for version 0.14.0. Non-interactive commands default to compact toon output, while JSON, YAML, Markdown, and JSONL are available. --llms-full lists commands, and --schema exposes inputs. The CLI can run as an MCP server on 127.0.0.1:54321. Exposing it through --host 0.0.0.0 is risky because reachable clients can use the authenticated Link session, so production setups should keep it local or on an isolated network.

Approval fits supervised purchasing agents

A spend request can include merchant identity, context, amount, line items, totals, and a payment-method ID. With --request-approval, the CLI sends a push notification and polls until approval, denial, expiry, or cancellation. Polling accepts an interval and maximum attempts, giving agent workflows a bounded wait. The design makes consent explicit and gives the user useful purchase context before credentials exist.

Authentication uses a verification URL and short phrase. An inline polling mode can return the code and wait within 1 command, useful where an agent cannot manage a second process. auth upgrade requests a superset of current permissions while retaining the valid session until approval succeeds. Still, applications need their own maximum-spend rules, merchant allowlists, retry policy, and approval wording. Link CLI supplies a mechanism, not the organization's purchasing policy.

The limitations begin outside the CLI

The largest constraint is geographic. Users need a US Link account, an eligible saved payment method, and access to the approval experience. Virtual cards work beyond Link-enabled or Stripe merchants, according to the README, but payment still depends on each checkout accepting the credentials and the automation filling merchant-specific fields. Our 166-test run says nothing about real merchant acceptance, so teams need controlled end-to-end trials.

The HTTP MCP mode has no described authentication layer of its own. Loopback is sensible, but exposing port 54321 broadens access to the active session. The measured checkout also has no Dockerfile, so container deployment is not packaged as a primary route. Its 426 installed packages create a meaningful supply-chain surface despite an audit showing 0 known vulnerabilities. Pin versions, monitor advisories, isolate the process, and exclude unmasked outputs from logs and shared directories.

Recent work is healthy, maturity is provisional

The latest release, @stripe/link-cli@0.14.0, arrived on August 25, 2026, and the repository was pushed again on August 27, 2026. Alongside 14 open issues and 3 CI workflows, those dates indicate active development. The MIT license is permissive. Documentation covers authentication, spend requests, credential types, limits, step-ups, line items, metadata, environment variables, agent integration, development, and releases.

However, a 0.x version means interfaces may still change, and 718 stars show early attention rather than established operational history. The supplied community item is only a trending listing, with no useful account of support quality or production use. Teams should review issue response and upgrade behavior themselves. For payment automation, pinning version 0.14.0 and testing upgrades before rollout is a sensible baseline.

It belongs between policy and checkout execution

Place Link CLI after an agent selects a product and a policy layer validates merchant, amount, and intent, but before browser automation or a machine-payment client submits payment. Store the spend-request ID as workflow state, provide clear line items for the 1 approval step, and retrieve credentials only when execution is ready. Downstream systems should retain outcomes and receipts without keeping PAN or CVC values. Keep MCP local to the trusted runtime.

For supervised US purchases, this is a credible component with unusually careful credential-output controls and a clean result across all 166 tests on our box. For global use, unattended spending, merchant processing, or an entire shopping agent, it is insufficient alone. Adopt it as one guarded payment component, pin the pre-1.0 release, and build the surrounding policy, browser, monitoring, and reconciliation layers explicitly.

Alternatives

ProjectWhat it isPick it when
Stripe Agent ToolkitStripe's toolkit exposes payment and business operations to agent frameworks.Pick this instead when your agent needs to operate your Stripe account rather than spend from a consumer Link wallet.
Browser Use gh↗A browser automation framework that lets agents navigate and act on websites.Pick this instead when checkout navigation is the main problem and you already have a safe payment credential flow.
StagehandA browser automation library combining scripted control with agent-driven page actions.Pick this instead when you need broader, controllable browser automation around purchasing rather than credential issuance.

What people are saying

  1. [github-trending] stripe/link-cli

Sources

  1. stripe/link-cli on GitHub
  2. Link for agents

More automation reviews

rclone · lego · OpenCLI · web-access · Karabiner-Elements · WiiUDownloader · the whole board →