Calling a paid endpoint used to mean writing a Node script: import the x402 SDK, wire a signer, wrap fetch, then POST. The new CLI does all of that behind one command.

npx @agentutility/cli wallet create
# fund the printed address with USDC on Base, then:
npx @agentutility/cli call cve cve_id=CVE-2021-44228

wallet create writes a key to ~/.agentutility/wallet.json with owner-only permissions and prints the address to fund. No ETH needed. Payments settle through gasless transferWithAuthorization. If you already keep a key in X402_PRIVATE_KEY, the CLI uses that instead and never touches disk.

search greps the 799-endpoint catalog by keyword and shows prices. price <slug> prints what a call costs and which inputs it takes. call <slug> key=value checks the price, signs the payment, and prints the JSON response on stdout, so it pipes straight into jq.

Spending is capped, and the cap is enforced in the payment client itself. A call settles under the quoted registry price or it doesn't settle. Anything over $0.25 asks for --yes, endpoints the registry can't price need an explicit --max-price, and the client refuses challenges for the wrong network, the wrong asset, or a non-EIP-3009 transfer method before anything gets signed. Every settled call prints the amount and transaction hash to stderr.

The Claude Code skill now teaches the CLI flow first, with the raw SDK script kept as the in-process fallback. Package source ships in the repo under packages/cli, MIT, same as the MCP servers.