Recurse docs / 19

Tools costs and limits

A Tools run uses your Recurse wallet for preparation, API requests and execution. Eligible API access does not require a separate provider key or balance. Inspect each live endpoint before spending: its unit rate, request ceiling, eligibility and conditions can differ from another API.

What is charged

Published price = (settled provider cost × 1) + (execution compute cost basis × 4). Source preparation is a separately charged compute phase at 4×. These are the initial pricing rules; the trusted service and stored receipts determine the actual charge.

For example, if providers settle $0.012 and execution compute costs $0.003 before markup, the execution charge is $0.012 + $0.012 = $0.024. Add any separately charged preparation. This is an arithmetic example, not a provider quote. A unit price is not the price of a whole job.

The fixed zero bases in tools.yaml are author declarations. They do not waive preparation, provider or compute charges. A compute-only tool has no provider cost but still uses paid compute. Reusing a prepared version does not charge its original preparation again.

Agree an allowance

The user must approve a total cap before chargeable preparation. The CLI flag is --max-cost-micro-usd; 1,000,000 micro-USD is $1. The same authority applies through SDK/MCP. Check inspected versions and price ceilings before admission. A request needing more headroom must be reduced or returned to the user for authorization; never raise the cap silently.

Reservations reduce available balance while work is in progress. They are not final charges. Preparation, API and execution receipts record their own phases; do not sum a nested preparation receipt twice. A failed Python run can still have paid API requests. An uncertain provider outcome remains reserved/reconcilable until the trusted process settles it. A missing result or error HTTP status does not establish free work. Existing Modal/Nhost reconciliation remains in charge.

Existing Tools limits

LimitCurrent ceiling
Function input64 KiB finite JSON
API response and final result256 KiB JSON
One private execution300 seconds
API requests in one execution20 sequential calls
Declared endpoint IDs per function20 unique IDs
Standard source archive64 MiB
Stored result contentNormally 24 hours
Prepared private imageNormally seven days

An unresolved API request prevents another paid submission in that execution. Long-running jobs and large media still have to fit these limits. Follow the original asynchronous job and its owned resource IDs; do not create a duplicate paid job to recover a missing response.

See Results and recovery. These are Tools limits. The separate Agent costs and limits describe the existing hosted-agent workflow and must not be applied to recurse tools run.

Wallet and Rewards

Wallet shows available and reserved funds. Signed-in top-ups start at $5 and go through Stripe. A return from checkout is not proof of payment: only the signed confirmation credits the wallet. First-top-up matching follows the existing once-per-account promotion, up to $10. Historical smaller payments remain valid records.

Customer actions live in Rewards, separately from payments. Existing action rewards are $0.50 each, once per account on confirmed click; completion is trusted, not independently verified. New registrations include $1 starting credit. An existing account does not receive a fresh signup credit by signing in again.