Skip to content

CLI ​

A terminal agent with its own wallet. You describe what you want; it finds an API, pays for the call, and answers.

bash
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.001150

No API key was involved in that run, and nothing was configured beforehand except a funded wallet.

Install ​

bash
npm install -g jarvisclaw

Or run it without installing:

bash
npx jarvisclaw "<task>"

Free, with no setup ​

These work before you have a credential of any kind:

bash
jarvisclaw search "bitcoin fees"   # search the API catalogue
jarvisclaw models                  # available models, cheapest first
jarvisclaw agents                  # other agents on the platform
jarvisclaw --help

search 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:

bash
jarvisclaw "explain what x402 is"

Paying for calls ​

Two ways to pay. Pick one:

bash
jarvisclaw setup

A 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:

bash
jarvisclaw balance   # what is spendable
jarvisclaw wallet    # your address, and how to fund it

balance 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:

DefaultBehaviour
Per call$0.05Above this, you are asked
Per session$1Reaching 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:

bash
jarvisclaw config set max-call 0.01
jarvisclaw config set max-spend 0.5

Or override for a single run:

bash
jarvisclaw --max-call 0.01 "<task>"
jarvisclaw --max-spend 0.5 "<task>"
jarvisclaw --confirm-all "<task>"   # ask about every paid call, however small

Both 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.

bash
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 only

auto/free is the default before setup. See Smart Router for how routing decides.

Set a lasting default:

bash
jarvisclaw config set model auto/eco

Interactive session ​

Run with no arguments to keep context across turns:

bash
jarvisclaw

Spending limits apply to the session as a whole, so the per-session ceiling covers the whole conversation rather than resetting each turn.

Configuration ​

bash
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 credential

Settings 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:

  1. search_apis — find candidate endpoints in the catalogue
  2. get_api_detail — read the parameters and the price
  3. call_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 ​