Coordination layer for parallel coding agents: TTL file claims stored in the git common dir (visible across every worktree instantly), enforcement hooks that block colliding edits in Claude Code and at commit time, agent presence, handoff notes, and git-committed lessons searchable with BM25. Single static binary β no server, no database.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Call dibs on files. Run parallel coding agents without collisions.
dibs is a coordination layer for AI coding agents that share a repository: file claims with expiry, enforcement hooks, agent presence, handoff notes, and a git-native knowledge base. One static binary β no server, no database, no background processes.
Overview Β· Demo Β· How it works Β· Installation Β· Usage Β· Enforcement Β· Lessons Β· MCP server Β· Comparison Β· FAQ

Running several coding agents β Claude Code, Codex, Cline, Cursor β against one repository in parallel is now a common workflow, typically with one git worktree per agent. The sessions share no state: an agent cannot see what its peers are doing, and two agents that touch the same files produce silent overwrites and unmergeable diffs.
dibs provides the missing coordination primitives:
| Problem | What dibs does |
|---|---|
| Two agents edit the same file; last write wins. | Claims are checked before editing, and hooks can block colliding edits outright. |
| No visibility into other sessions. | dibs status lists every agent, claim, reason, and expiry. |
| A crashed agent leaves stale locks. | Claims are leases with a TTL. They expire on their own; there is nothing to clean up and no way to deadlock. |
| Handoffs between agents are ad hoc. | dibs note broadcasts a message to every agent on the repository, with per-agent read tracking. |
| Knowledge is lost between sessions. | Lessons are markdown files under .dibs/lessons/, committed with the repository and searched with BM25. |
The design rationale is covered in more depth in the introduction post: Why Parallel Coding Agents Need a Coordination Layer.
Two agents, one repository:
With the Claude Code hook installed, an edit that violates a claim is blocked before it happens, and the model is told why:
dibs relies on a property of git worktrees: every worktree of a repository
shares a single common directory (git rev-parse --git-common-dir). State
written there is visible to all worktrees immediately, without commits, and
never appears in git status.
--agent, then DIBS_AGENT, then a stable
name derived from the worktree path β so each worktree has a consistent
identity with zero configuration.dibs log).Prebuilt binaries for Linux, macOS, and Windows (amd64/arm64) are on the releases page. Building from source requires Go 1.25+; runtime requires git.
A multi-arch container image is published to GHCR β mount your repository
at /workspace:
The same image builds locally from the included Dockerfile (docker build -t dibs .).
| Command | Description |
|---|---|
dibs claim <pattern>... [--reason ...] [--ttl 30m] | Lease files or globs. Default TTL 30m, maximum 24h. |
dibs release [pattern]... [--all] | Release leases. Bare dibs release releases everything you hold. |
dibs renew [--ttl 30m] | Extend all of your leases. |
dibs check <path>... | Report whether paths are covered by another agent's lease. |
dibs status [--json] | Agents, claims, and unread note count. |
dibs note <message> | Broadcast a note to all agents on the repository. |
dibs notes | Read notes and mark them read. |
dibs log [-n 20] | Show recent journal events. |
dibs lesson add|list|show|search | Manage the lessons knowledge base. |
dibs mcp | Run the MCP server on stdio. |
dibs hook install|uninstall | Manage enforcement hooks. |
dibs whoami, dibs version | Identity and build information. |
Exit codes: 0 ok/free Β· 1 error Β· 2 denied or held by another agent.
All state-reading commands accept --json for scripting.
Protocol adherence that depends on a model remembering instructions degrades under context pressure. dibs therefore supports enforcement at two levels, both opt-in:
dibs hook install claude registers a PreToolUse
hook. When an agent attempts to edit a file covered by another agent's
claim, the tool call is blocked (exit code 2) and the model receives a
message naming the holder, their reason, and the expiry. Agents
consistently adjust course when given this context.dibs hook install pre-commit registers a git hook that
rejects commits touching files claimed by another agent.Hook installation is additive and idempotent: existing entries in
.claude/settings.json and existing git hooks are preserved, and
dibs hook uninstall claude removes exactly what was added. Both hooks
fail open β if dibs cannot run, editing and committing proceed normally.
Lessons capture what an agent learned so the next session does not rediscover it:
Lessons are markdown files with YAML frontmatter under .dibs/lessons/:
git pull; there is no per-machine database to synchronize.dibs mcp runs a stdio MCP server, so agents coordinate through typed
tools rather than shell commands. The server instructions and tool
descriptions encode the protocol (claim before editing, release when done,
leave notes, record lessons):
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/polymatx-dibs)<a href="https://allmcps.com/mcp/polymatx-dibs"><img src="https://allmcps.com/api/badge/polymatx-dibs?style=directory" alt="Dibs on AllMCPs" /></a>