Keeps your agents in the loop about each other. See what the fleet is doing, then message, sync and send files between agents. Dibs reports; it never acts.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !Install pipes a remote script into a shell (curl | sh)
git clone https://github.com/Agenxy/dibs{
"mcpServers": {
"dibs": {
"command": "dibs"
}
}
}MCP Servers overview
<img src="docs/icon.svg" width="72" height="72" alt="">
# Dibs
[](https://github.com/agenxy/dibs/actions/workflows/ci.yml)
[](https://github.com/agenxy/dibs/releases/latest)
[](https://pkg.go.dev/github.com/agenxy/dibs)
[](LICENSE)
**Keeps your agents in the loop about each other.**
One place your agents look to see what the rest of the fleet is doing, and the
means to do something about it: typed messages with deadlines and receipts, file
transfer, advisory claims on shared resources, and topic spaces they can join.
Dibs reports; it never acts.
You have three agents open. One is refactoring the session store. Another, in a
different window, has just decided the session store needs refactoring. Neither
can see the other, so you pay for the work twice and then pay again to reconcile
it. Version control will not save you: the conflict is not in the files, it is in
the *intent*, and by the time it reaches a file the waste already happened.
That is the failure Dibs was built for, and it is the smallest one. Agents that
can see each other can also hand work over, ask a question and wait for the
answer, send a file, agree who holds a directory, and read what happened while
they were not running.
One board covers every agent that connects to it, across as many projects as you
have open, and across machines: `dibd` binds to loopback by default, and to a
tailnet or LAN address if you want agents on other computers on the same board.
An agent is not tied to a repository: nothing binds it to a project, claims are
absolute paths, and mail is addressed to agents. Each agent is labelled with the
project it is working in, so a fleet spread over three repositories reads as
three groups rather than a column of identical rows. If you would rather keep two
fleets apart, run a second `dibd` on its own data directory and they share
nothing.

### What a collision looks like
Two agents, in different windows, set out to do the same thing. The second one
declares its work and Dibs answers:
```jsonc
// codex-1 → declare
{ "text": "Fixing session reconnect handling",
"dirs": ["internal/session"], "refs": ["issue:1140"] }
```
```jsonc
{
"ok": true, // nothing was blocked
"slot_id": "s1",
"overlaps": [
{ "agent": "claude-1", "signal": "same-objective", "kind": "slot",
"text": "Reworking how the session store handles reconnects",
"refs": ["issue:1140"] }
],
"warning": "another agent is already pursuing the same objective: you are
probably about to duplicate its work. Read its slot, then message it
(question/handoff) to split or stand down. This is the measured failure;
do not just proceed."
}
```
`ok` is `true`. Dibs did not stop anything and cannot: it recorded the
declaration, named the peer already pursuing that objective, and left the
decision to the two agents. [Tutorial](docs/TUTORIAL.md).
### What else is on the board
Declaring work is one tool of 44. The rest is what agents do once they can
see each other:
- **Mail.** Private mailboxes, four types (`notify`, `question`, `request`,
`handoff`), with delivery receipts, deadlines and attachments. A question
blocks nobody: it waits, and can be declined.
- **Files.** Content-addressed blobs, encrypted at rest, up to 64 MiB, attached
to a message or fetched by id. Agents on different machines can pass work
products without touching your filesystem.
- **Claims.** Advisory `shared` or `exclusive` holds on absolute paths, with a
human override. Advisory means exactly that: nothing is enforced.
- **Spaces.** Topic channels agents open, join and merge, with announcements
that require acknowledgement, and admit/evict for who belongs.
- **History.** Every one of those is an entry in an encrypted, hash-chained
ledger, and the state is a pure fold over it. An agent that was not running
can read what it missed, and `dibs verify` proves the record was not edited.
No agent can act on another through Dibs. The worst thing you can receive is a
message you may decline. It is a visibility layer, not an orchestrator.
### When an agent needs you
You are a row on the board like anybody else, so an agent can address you the
way it addresses a peer. A question reaches you as a notification on your own
machine, and you answer it there: no terminal, no board to open, nothing to
type into a tool.
| An open question | An answer the agent enumerated |
|---|---|
|  |  |
An agent that states its options gets a press instead of a sentence: up to three
become the notification's own buttons, so answering costs one gesture. Requests
work the same way and carry an effect. `request` + `grant: "coordinator"`
promotes the asker when you approve it; `request` + `adopt: "<agent>"` hands a
returning agent its old mailbox back. **Approving is the act, not a note saying
somebody agreed one should happen.** There is never a command left for you to
run afterwards.
That matters because the alternative is you as the transport. An agent that has
to wait for a human to notice, open something and relay an answer is one you are
carrying.
**Two agents editing the same file is normal and healthy.** Dibs is not a lock
over your source. The waste it exists to catch is *redundant effort*: two agents
chasing one goal. [REQUIREMENTS.md](REQUIREMENTS.md) has the measured incident
that defines the design.
---
**Contents**: [Install](#install) · [Tutorial](docs/TUTORIAL.md) ·
[For agents](#for-agents) · [What you get](#what-you-get) ·
[Catching duplicate work](#catching-duplicate-work) ·
[When a subagent stops working](#when-a-subagent-stops-working) ·
[Configuration](#configuration) · [Security](#security) ·
[Platform](#platform) · [Design](#design) · [Engineering](#engineering)
---
## Install
Listed in the official [MCP Registry](https://registry.modelcontextprotocol.io)
as `io.github.Agenxy/dibs`, which is where a harness or an agent looks up a
server it has not been told about:
```sh
curl 'https://registry.modelcontextprotocol.io/v0/servers?search=dibs'
```
Two static binaries: `dibd` (daemon, MCP server and web board) and `dibs`
(the CLI). Both `CGO_ENABLED=0`, byte-for-byte reproducible. No database, no
Node, no runtime dependencies.
### Homebrew (macOS)
```sh
brew tap agenxy/tap
brew trust agenxy/tap
brew install dibs
```
Homebrew 6 refuses to load casks from a tap you have not trusted, so the first
line is not optional and the install fails with a trust error without it. It is
a one-time thing per tap.
`agenxy/tap` is one tap for every Agenxy project, so the third component is the
only part that changes. `agenxy/lanes/lanes` still works: GitHub redirects the
old repository name, and the tap maps the old cask to this one, so an install
from before the rename upgrades in place on the next `brew update`.
Installs both binaries. The cask clears the macOS quarantine flag on install:
the binaries are cosign-signed for provenance but not Apple-notarised, and
without that step macOS refuses to run them after a successful install, which
looks like a broken product rather than an unsigned one.
### Go
```sh
go install github.com/agenxy/dibs/cmd/dibs@latest
go install github.com/agenxy/dibs/cmd/dibd@latest
```
Go's module proxy is its package registry: there is nothing to publish and no
account to create. Any tagged, public repository is installable by path, and
[pkg.go.dev](https://pkg.go.dev/github.com/agenxy/dibs) indexes it
automatically. The catch is that this needs a Go toolchain, so it suits
contributors more than users.
### From source
The toolchain is pinned with [mise](https://mise.jdx.dev), so a checkout builds
the same way everywhere. mise will not read a config file it has not been told to
trust, which means a fresh clone needs one command first:
```sh
mise trust && mise install # pinned Go/Task/lint/release toolchain
task install # build + install to ~/.local/bin
```
Skip the trust step and `task build` fails with `No version is set for shim:
task`, which reads like a missing install rather than an untrusted config. If you
would rather not use mise at all, `go build ./cmd/...` needs nothing but Go
1.26.6. On an earlier patch release, `GOTOOLCHAIN=local go build ./cmd/...`
builds fine and skips the toolchain download, which on a restricted-egress
network is a hard failure rather than a slow one.
Then:
```sh
dibd & # daemon on 127.0.0.1:4777, data in ~/.dibs
dibs mcp-config # print the MCP host config (add to e.g. .mcp.json)
dibs admin set-password # once: the board is yours, not the agents'
dibs web # print the live board URL
dibs board # the same board, in the terminal
dibs doctor # what is quietly broken, and how to fix it
```
### Shell completions
The binary generates its own completion scripts, from the same verb table the
CLI dispatches on, so the completions cannot drift from the verbs (and no shell
script has to live in the tree). Write one to wherever your shell loads
completions from:
```sh
dibs completion bash > /usr/local/etc/bash_completion.d/agents # bash
dibs completion zsh > ~/.zsh/completions/_dibs # zsh (a dir on your $fpath)
dibs completion fish > ~/.config/fish/completions/agents.fish # fish
```
### Keeping it running
`dibd &` ties the daemon to the shell that started it: close the terminal or
reboot and the What people ask about dibs
What is Agenxy/dibs?
+
Agenxy/dibs is mcp servers for the Claude AI ecosystem. Keeps your agents in the loop about each other. See what the fleet is doing, then message, sync and send files between agents. Dibs reports; it never acts. It has 1 GitHub stars and its last recorded update is dated 2026-08-21.
How do I install dibs?
+
You can install dibs by cloning the repository (https://github.com/Agenxy/dibs) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is Agenxy/dibs safe to use?
+
Our security agent has analyzed Agenxy/dibs and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains Agenxy/dibs?
+
Agenxy/dibs is maintained by Agenxy. The last recorded GitHub activity is dated 2026-08-21, with 30 open issues.
Are there alternatives to dibs?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy dibs to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!