Coordinate your agents in two API calls
Before an agent starts a job, it asks Cascade for it — a claim. Exactly one agent gets the job (a grant); any other is told to wait or do something else (a hold). When it is done, it hands the job back — a release. Every answer comes back signed, so anyone can check later who did what and why. Any model, any language with HTTP, no LLM tokens spent deciding. During the beta, keys run in the sandbox scope, which is 100% the same as production: same API, same coordination, same signing key. Make one below, run a claim, and race a second agent for the same job.
Your key tells Cascade the calls are yours and limits what your agents may claim. Beta keys are sandbox-scoped, and the sandbox is the same service as production — rotate any time.
Once the key above works, start from a program that already looks like your problem: two agents reach for the same cell — any named thing they might both want, like a task, file, charging bay or airspace block — exactly one is granted it, and the run comes back signed.
Warehouse · humanoids · drones · robotaxi · energy · orbital · AI agents · games. Each is a single file that runs on Node 18+ with built-in fetch — nothing to install, and the same file runs against a local server or the live API by changing one env var.
Prefer a package to copying code? Each one reads your key from CASCADE_API_KEY.
claude mcp add --env CASCADE_API_KEY=csc_... --transport stdio cascade -- npx -y cascade-coordination-mcp
pip install cascade-coordinate
npm i @cascade_dynamics/coordinate
npx cascade-verify bundle.json --key <published key>
Usage is the count of signed entries in your chain — the linked, tamper-evident log of every grant and hold — not a number we assert. Recompute it from a bundle and it matches to the decision.
curl -X POST https://api-beta.cascadedynamics.ai/v1/claim \
-H "Authorization: Bearer …" \
-H "Content-Type: application/json" \
-d '{ "cell": "orchard/row-G14",
"agent": "survey-drone-07",
"ttl_ms": 2000 }'