AgentSpend
ReviewAudited by ClawScan on May 10, 2026.
Overview
AgentSpend appears purpose-built for paid API calls, but it gives an agent spending authority and relies on an unpinned, provenance-light npm workflow.
Install only if you intentionally want your agent to make paid external API requests. Verify the npm package/source, pin the version if possible, set a strict weekly budget and domain allowlist, and require user confirmation plus --max-cost for every payment.
Findings (4)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
A future or different npm package version could run with payment authority, even if the reviewed files look clean.
The default workflow executes an unversioned npm package through npx. Combined with the registry's unknown source/homepage and no install spec, this makes it less clear that the code reviewed here is the exact code that will run.
1. `npx agentspend search "<task>"` 3. `npx agentspend pay <endpoint> --method ... --header ... --body ... --max-cost ...`
Use only a verified package source, pin the reviewed version explicitly, and prefer a registry install spec/source URL that matches the reviewed package.
If enabled, the agent can make paid requests within the configured budget and allowlist.
The skill intentionally connects a payment method and stores an API credential for later use, which is core to its purpose but financially sensitive.
Opens a URL to add a credit card and set a weekly spending limit. Saves credentials to `~/.agentspend/credentials.json`.
Set a low weekly budget, use a strict domain allowlist, revoke credentials when not needed, and review charges regularly.
A mistaken or overly broad agent action could spend money or send unintended request data to a paid endpoint.
The pay command can call arbitrary URLs with arbitrary methods, headers, and bodies; max-cost is available but not required by the CLI.
.command("pay")
.argument("<url>", "URL to call")
.option("--body <body>", "Request body (JSON or text)")
.option("--header <header>", "Header in key:value form" ...)
.option("--max-cost <usd>", "Maximum acceptable charge in USDRequire explicit user approval before every paid request, run check first, and always use --max-cost.
Any secrets or sensitive user data placed in headers or bodies may be visible to the payment gateway as part of the request flow.
Paid request payloads, including target URL, headers, and body, are sent through AgentSpend Cloud before reaching the target service.
const API_URL = "https://api.agentspend.co";
pay(apiKey: string, payload: PayRequest): Promise<PayResponse> {
return this.request<PayResponse>("/pay", {
method: "POST",
body: JSON.stringify(payload)Do not pass passwords, cookies, private tokens, or sensitive documents through this tool unless the user explicitly trusts AgentSpend and the target service.
