I'm not a developer. Is this for me?
Yes, if you build with more than one AI coding tool on the same project. You can ask Claude Code to install it. After that the tools follow the ritual themselves; your only job is to give each tool a name.
What does "calling dibs" mean here?
Before a tool touches a file, it writes its name, the files and what it plans to do on a shared board. If another tool already holds those files, the claim is refused before any edit happens. That is the whole idea: say what you are about to do, and check what others are doing, before you do it.
Where does the board live?
In your own repository, as one text file called ledger.jsonl on a separate branch named agents/ledger. There is no server and no account. Anyone with access to the repo can read it with git, and it never mixes with your code.
Do I have to type these commands myself?
No. The tools run them. The installer adds an AGENTS.md that spells out the ritual, and Antigravity, Codex, Gemini CLI and Copilot read that file on their own. Claude Code reads it through one line in CLAUDE.md, and the installer writes its name into Claude Code's settings. For another tool you run ncl whoami --set antigravity once in that tool's clone.
Why one clone per tool?
Two tools in one folder share one checkout and one branch, so neither can work on its own branch and each sees the other's half-finished edits. Clone the repo once per tool, open each clone in its tool, and let the board on your remote do the coordinating.
What if a tool ignores the board and edits anyway?
Three checks catch it. An edit hook in Claude Code asks before any write to a path outside a claim the tool holds, naming the holder. A git pre-commit hook checks every staged file from any tool or terminal. A pull-request check refuses a merge whose changed paths are not covered by a claim marked done. Every hook starts in warn mode; ncl enforce deny makes them refuse instead of ask. In Claude Code's auto permission mode an ask already counts as a deny, so warn mode stops an unclaimed edit there and the agent claims and retries.
What if a tool crashes in the middle of a task?
Every claim carries a time limit, four hours by default, and any update to the task restarts the clock. When it lapses the paths are free again. ncl status shows the expiry time while a claim is active, and lists expired claims for a day afterwards so the next tool knows to ask before reusing the paths. A claim can be given a longer or shorter limit when it is made, with --ttl.
Two tools claim the same file at the same moment. Who wins?
Git does. Each claim is a commit pushed to the ledger branch, and two pushes cannot both be first. The second one is rejected, the script fetches the newer board, checks overlap again, and refuses cleanly. No server decides anything.
Does it slow the tools down?
Each step of the ritual is one fetch and one push to your own remote, a second or two. The hooks read a local copy of the board refreshed at most every two minutes, so an edit never waits on the network, and offline they use the last copy and say so.
What if a hook is wrong?
It asks; it does not stop you, until you choose deny. ncl enforce warn relaxes deny and ncl enforce off silences everything. ncl report shows what the hooks decided and why, ncl doctor checks the setup in plain words, and ncl uninstall removes the tool and keeps your AGENTS.md, ownership file and the board. It never edits your source files.
Does it replace never-again?
No. They are siblings with the same install pattern and the same site. never-again stops one tool repeating a mistake; never-collide stops several tools overwriting each other. Most repos that need one need both, and they share the git hook.
What leaves my machine?
Nothing on its own. The board is pushed to your own remote. The installer asks once per machine whether to count you anonymously, and Enter skips it. ncl feedback shows the exact payload and sends only on a yes. ncl upgrade asks GitHub for the newest release when you run it. There is no account and no background call.
Why is the command called ncl and not nc?
nc is netcat, a network utility on every Unix machine. Shadowing it would break things quietly. Three letters, no collision.
Is it really free?
MIT licensed, no paid tier, nothing hosted to pay for later.