Skip to content
Thyme Docs

Test Tasks Locally

Local execution validates task logic without giving the CLI a signing key. Use the same intended account, chain, args, and representative state as your target executable.

Configure inputs

Set the project or task .env:

SIMULATE_ACCOUNT=0x1111111111111111111111111111111111111111
RPC_URL=https://YOUR_RPC_ENDPOINT

Replace both example values with your intended account and RPC URL. SIMULATE_ACCOUNT is always required; RPC is needed only when reading chain state or simulating calls. Task .env values override project defaults. Put required task secrets in these files without committing the actual values.

Edit functions/<task>/args.json to match the declared schema. Use decimal strings for large integers and valid addresses.

Run and inspect

thyme run update-value

Review logs, result, duration, memory, RPC stats, and produced storage. Try the normal path, a valid skip condition, missing secrets, and invalid args. A runtime validation error should occur before task logic sees invalid input.

CLI 0.10.0 has a known manifest-loading bug: an existing task permissions.json prevents local execution. Run these checks before saving the manifest, or temporarily move an existing manifest outside the task directory and restore it before upload. The upload and cloud enforcement paths remain separate. After this loader is fixed, local declaration mismatches are warnings; cloud execution rejects them.

Preserve state deliberately

thyme run update-value --persist

Without --persist, output state is not written to storage.json. Save a representative fixture before exploring different outcomes; local output is independent of cloud storage.

Simulate transactions

thyme run update-value --simulate

The CLI asks the RPC to evaluate the returned calls from your chosen account. It can fall back to per-call simulation, which does not guarantee the same behavior as a sequential batch. It does not reproduce deployment of the profile, module authorization, Lift policy, or gas funding. See the run reference for flags and limitations.

Exercise callbacks

thyme run update-value --simulate-callbacks

The interactive runner can invoke receipt callbacks with simulated success/failure payloads. This is useful for inspecting logs and storage behavior; it does not prove an on-chain outcome or production callback delivery.

Finally, upload and use cloud Simulate and a controlled real execution on the target deployment. The local/cloud comparison explains which guarantees each check provides.