CLI
A terminal agent with its own wallet. You describe what you want; it finds an API, pays for the call, and answers.
npx jarvisclaw "what are Bitcoin network fees right now?"… thinking
paying $0.001150 — Btc Fees (federation/3675) GET
calling Btc Fees…
Fastest (next block): 5 sat/vB
Half hour: 4 sat/vB
Hour: 3 sat/vB
Economy: 2 sat/vB
Mempool: 86,076 transactions waiting.
used: search_apis → get_api_detail → call_api
spent: $0.001150No API key was involved in that run, and nothing was configured beforehand except a funded wallet.
Install
npm install -g jarvisclawOr run it without installing:
npx jarvisclaw "<task>"Free, with no setup
These work before you have a credential of any kind:
jarvisclaw search "bitcoin fees" # search the API catalogue
jarvisclaw models # available models, cheapest first
jarvisclaw agents # other agents on the platform
jarvisclaw --helpsearch matches by meaning, not just by substring — "bitcoin fees" finds the Bitcoin fee endpoint even though no listing contains that exact phrase.
Chat also works with no credential, on free models only:
jarvisclaw "explain what x402 is"Paying for calls
Two ways to pay. Pick one:
jarvisclaw setupA wallet (the default) generates a local key and prints an address. Send USDC on Base to that address and it can spend. Gas is covered by the gateway — you only need USDC.
An API key from the dashboard bills your account balance instead. Use this if you already have one.
Either way:
jarvisclaw balance # what is spendable
jarvisclaw wallet # your address, and how to fund itbalance reads the chain, not an internal ledger. It is the real constraint on what the agent can spend.
Spending limits
Two ceilings, both on by default:
| Default | Behaviour | |
|---|---|---|
| Per call | $0.05 | Above this, you are asked |
| Per session | $1 | Reaching this stops the run |
The per-session limit refuses rather than prompting. If a run needs more than you allowed, the right answer is to raise the limit deliberately, not to approve it under pressure mid-task.
Calls under the threshold go through without a prompt but are always printed, so you see every payment even when you were not asked about it. At a tenth of a cent per call, confirming each one would mean six prompts for one task — and a user clicking through six prompts has stopped reading them.
Change the defaults:
jarvisclaw config set max-call 0.01
jarvisclaw config set max-spend 0.5Or override for a single run:
jarvisclaw --max-call 0.01 "<task>"
jarvisclaw --max-spend 0.5 "<task>"
jarvisclaw --confirm-all "<task>" # ask about every paid call, however smallBoth are enforced by the CLI, so they are your stated intent rather than a gateway rule. The hard limit is always the wallet balance: it holds only what you sent it, which caps the worst case before the agent starts.
Choosing a model
By default auto picks per request, reading the prompt first.
jarvisclaw -m anthropic/claude-sonnet-4.6 "<task>"
jarvisclaw -m auto/eco "<task>" # cheapest paid models
jarvisclaw -m auto/premium "<task>" # strongest, highest cost
jarvisclaw -m auto/free "<task>" # free models onlyauto/free is the default before setup. See Smart Router for how routing decides.
Set a lasting default:
jarvisclaw config set model auto/ecoInteractive session
Run with no arguments to keep context across turns:
jarvisclawSpending limits apply to the session as a whole, so the per-session ceiling covers the whole conversation rather than resetting each turn.
Configuration
jarvisclaw config # what is in effect, and where it came from
jarvisclaw config set <key> <value> # model, max-call, max-spend
jarvisclaw logout # remove the stored credentialSettings live in ~/.jarvisclaw/config.json; a generated wallet key lives beside it in ~/.jarvisclaw/wallet.json with owner-only permissions. Neither is ever transmitted anywhere except as a signature on a payment you are making.
Point at a different gateway with --base-url, or pass a credential for one invocation only with --api-key / --wallet-key.
What it does under the hood
For a task that needs live data, the agent runs three steps and tells you which ones it used:
search_apis— find candidate endpoints in the catalogueget_api_detail— read the parameters and the pricecall_api— pay and call
Steps 1 and 2 are free. Only step 3 costs anything, and it is the step the spending limits govern.
See also
- Quick Start — using the API directly, with a key
- Agent Payments (x402) — the payment protocol the wallet path uses
- Billing & Limits — how account-level billing works
- Python & Go SDK — building this into your own program instead