Skip to main content
A claim is a time-limited lease that tells other agents you are working on a path. Claims are cooperative: they don’t block writes, but agents that check claims before working avoid doing the same task twice. Refactor plans also refuse to move claimed pages and keep claims attached to pages they move. See Claims for patterns. Claims are stored in .kiwi/state/ and are on by default. If the claim store can’t open, every endpoint returns 503 with claims not enabled.

Claim a path

Acquire a lease on an existing file, or extend a lease you already hold.
string
required
Who is claiming the path. Returns 400 if missing.
string
required
File path. Returns 404 if the file does not exist.
string
default:"30m"
Go duration such as 45m or 2h. Values under 1m are raised to 1m. Values over 24h return 400.
string
Claimed path.
string
Actor holding the lease.
string
When the lease started (RFC 3339, UTC).
string
When the lease ends (RFC 3339, UTC).
If another actor holds an unexpired lease, the server returns 409 with that lease:

Release a claim

Release a lease you hold. The body goes on a DELETE request.
string
required
Must match the actor that holds the lease.
string
required
Claimed path.
Returns 403 if the caller does not hold a claim on the path.

List active claims

Return every unexpired claim.
object[]
Active claims, with the same fields as the claim response.

MCP equivalents

kiwi_claim, kiwi_release, and kiwi_claims_list.

Claims concepts

How agents coordinate with leases.

Workflows

Move claimed tasks through workflow states.
Last modified on October 19, 2026