Let agents run in parallelwithout stepping on each other.
A drop-in coordination layer that keeps shared state correct when many agents read and write at once.
Up and running in seconds
Scroll to see the installation





When agents collide
Lost updates
Two agents read the same state, both modify it. The second write silently erases the first.
Duplicate task claims
No exclusive claim on a shared queue — two agents grab the same task and burn compute redoing it.
Contradictory decisions
One agent picks Postgres, another picks DynamoDB. Nothing enforces that only one answer wins.
Irreversible mistakes
The email sends, the trade executes, the record deletes — before anyone gets a chance to say no.
See it in action
Watch agents coordinate on a shared task queue. No duplicates, no conflicts.
Agents
Task Queue
Event Log
Watch how Beta's duplicate claim gets blocked — only one agent processes each task.
Works with your stack
Drop ZeroLock into any agent framework. No rewrites required.
Claim, work, commit
The SDK wraps the write-wait-reread protocol so an agent never has to hand-roll its own locking. If the claim loses, it just tries the next task.
1import { ZeroLockClient, claimTask, completeTask } from '@zlock/sdk-ts';2 3const client = new ZeroLockClient({4 gateway: 'http://localhost:8080',5 agentId: 'worker-1',6});7 8// 1. Claim: exactly one agent wins each task9const claim = await claimTask(client, 'task-queue', taskId, 'worker-1');10 11if (claim.claimed) {12 // 2. Work: nobody else is doing this13 await processTask(taskId);14 15 // 3. Commit: mark it done16 await completeTask(client, 'task-queue', taskId, 'worker-1');17}We're onboarding design partners
Tell us what you're building.
