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_ENDPOINTReplace 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-valueReview 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 --persistWithout --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 --simulateThe 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-callbacksThe 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.