Remotehost Docs
Remotehost Claims

Remotehost Claims

Run many agents on one repo with zero conflicts

Remotehost Claims is RemoteHost's coordination layer for repos that more than one agent works on at a time. Agents call dibs on the paths they are about to touch, and work that would overlap a live claim is refused before it starts rather than discovered at merge time. It runs on your own machine, free, with no account.

It is not a sync tool. Nothing is replicated or merged for you. Two invariants do all the work:

  • No two actors ever hold overlapping write-claims at the same time.
  • No change that violates a live claim can land on a protected branch.

Every agent is covered, whether or not it knows claims exist. Agents wired in through MCP or hooks are stopped before they edit. Everything else, including a human typing git commit, is stopped at the commit.

Install

npm i -g @remotehostai/claims

Then, in a repo:

claims init
claims integrate

init creates .claims/ with the repo policy, the task registry, and the audit log, installs the pre-commit and pre-push hooks, and gitignores the runtime state. integrate registers the stdio MCP server with every agent runtime it finds on the machine (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI) and adds lifecycle hooks where the runtime supports them.

Claim, work, release

claims task create "Move billing to Stripe Checkout"
claims checkout AG-001
claims claim "apps/api/src/billing/**" "packages/db/src/billing.ts"

A claim is a declared, arbitrated intent to write a set of paths on a branch, with a lease. The arbiter grants claims in a total order. If the paths overlap another actor's live write-claim the command exits 3 and names the actor holding them, with a suggested wait or rebase.

claims status       # active tasks, claims, lease remaining, stale branches
claims conflicts    # predicted conflicts across branches: paths, files, hunks, stale bases
claims context      # the live landscape, written to .claims/CONTEXT.md for agents to read
claims release      # drop this actor's claims (leases also expire on their own)

Paths listed under shared_paths in the repo policy can be claimed by several actors at once, with a warning. Everything else is exclusive.

The land gate

The hooks init installs are the enforcement for agents that never call claims at all. The pre-commit hook refuses a commit that touches paths under someone else's live claim, and the pre-push hook refuses a push to a protected branch that would violate one. Both exit 3, so a runtime that reads exit codes can back off and re-plan.

One machine, then many

On one machine the arbiter is a lock-backed local process, so a single laptop is deterministic with zero setup and no network. Coordinating across machines means a shared arbiter, and that runs on RemoteHost. Cross-machine coordination is not yet available.

The protocol

The records, invariants, and arbitration semantics are published as the Repo Claim Protocol, so any runtime or editor can implement an arbiter or a client and check it against the same conformance suite the local and hosted arbiters run. The wire format between the CLI and the hosted arbiter is not part of the protocol.

The protocol is deliberately agent-agnostic: granting and enforcement depend only on Git and the filesystem, never on a vendor-specific signal. It composes with, and does not overlap, the protocols agents already speak. MCP gives an agent tools, the Agent Client Protocol gives an editor an agent, and Remotehost Claims gives a group of agents a shared repo they cannot break.

Exit codes

CodeMeaning
0Success
1Generic error
2Usage error
3Denied: a claim or a land was refused
4Not initialized: no .claims/ in this repo

On this page