AgentCollision AgentCollision Docs

Frequently asked questions

Common questions from people installing or evaluating AgentCollision. If something isn't covered here, open an issue on GitHub.

Basics

Do I need this if I'm the only developer on my project?

Yes, if you use multiple AI coding sessions in parallel. One Claude Code chat won't collide with itself, but two Claude Code windows, or Claude Code plus Cursor, absolutely will. Those sessions don't know about each other, and when both write to auth.ts within a few seconds, the second write wins silently. AgentCollision prevents that.

If you only ever run one AI tool at a time, you don't strictly need this. But it costs nothing, and the moment you spin up a second session, you're protected.

Does it slow down my edits?

No. The PreToolUse hook talks to a local daemon over a Unix socket and gets a sub-millisecond response. You won't notice the overhead.

On Windows it's slightly higher (~3ms) because named pipes are slower than Unix sockets, but still imperceptible.

What's a "lease"?

A lease is a short-lived reservation on a part of your codebase. Before any AI tool edits a file, it asks the daemon "can I have a lease on src/auth/login.ts?" If no one else holds it, the daemon grants a 30-minute lease. If someone does, the request is blocked with the current holder's ID and expiry time. The lease releases automatically when the tool finishes, or when the TTL expires (safety net for crashed sessions).

What happens if two agents try to edit the same file at the same time?

First one wins. The daemon grants the lease to whichever request arrives first. The second request gets a synchronous denial with a descriptive message, so the AI tool can back off, try a different file, or wait.

Pricing

How much does it cost?

Individual use is free forever. Install the CLI, run the daemon locally, use it with any AI tool. No account, no server calls, no telemetry (opt-in only). Apache 2.0 licensed.

Teams are free up to a small limit, then paid. The hosted coordinator that syncs lease state across team machines runs on Cloudflare and costs real money at scale. Small teams stay within the free tier.

What do I get for the paid tier?

Cross-machine coordination: Alice on her laptop and Bob on his can see each other's leases and avoid conflicts across machines. Plus:

  • Hosted dashboard at dashboard.agentcollision.com accessible from any browser
  • Team-wide coordination policy (admins set lease TTL, cooldown, etc.)
  • Audit log of team actions
  • User accounts with roles (admin / member)

Privacy & Security

Does Anthropic (or anyone) see my code?

No. AgentCollision doesn't read or transmit file contents. Only metadata (which file, for how long, by which session) flows anywhere — and even that is HMAC-hashed before leaving your machine.

Does the coordinator see my file paths?

No, not in plaintext. Every file path is hashed with HMAC-SHA256 using a team-specific key before being sent. The coordinator stores and returns h:a3f9b2c1d4e5, never src/auth/login.ts.

If you want to see real file names in the hosted dashboard, the daemon can optionally push AES-256-GCM-encrypted display hints. Only browsers with the team's HMAC key can decrypt them. The coordinator still only stores ciphertext.

What if I don't trust the hosted coordinator at all?

Run a self-hosted one. The coordinator is a Cloudflare Worker plus a D1 database. The full source code is in the public repo. Deploy your own for $0/month and point your team's daemons at it.

Tool compatibility

Which AI coding tools does it work with?

Anything with a PreToolUse-style hook. Out of the box:

  • Claude Code (first-class support)
  • Cursor (via hook adapter)
  • Cline (via hook adapter)
  • Windsurf (via hook adapter)
  • Aider (via hook adapter)
  • Claude Desktop and any MCP-compatible tool

Everyone calls ac init once, it auto-detects what's installed, and wires up each tool.

Does it work on Windows?

Yes. Install via the PowerShell script or build from source. The daemon uses named pipes instead of Unix sockets but otherwise functions identically.

Teams

How do I add a teammate?

An admin runs ac team invite to generate a 6-character invite code. Share it however you like (Slack, email, in person). Teammates run ac team join CODE on their machine. That's it — they're in.

Invites can be rotated with ac team revoke-invites followed by a fresh ac team invite.

What's the difference between admin and member?

Admins can:

  • Change team name
  • Invite new members and revoke invites
  • Promote/demote members
  • Remove members
  • Edit the team's coordination policy (lease TTL, cooldown, orphan threshold)
  • Delete the team

Members can view the dashboard, see who else is on the team, and rename themselves. That's it.

What is "coordination policy" and why should it be team-wide?

Three settings control how the daemon behaves: how long leases last by default, how long after a release before another agent can grab a lease, and how long without a heartbeat before a lease is considered abandoned. If Alice uses cooldown=5s and Bob uses cooldown=60s, they'll make different decisions about when it's safe to edit. The team settings feature lets an admin set one value for the whole team and every daemon respects it.

Troubleshooting

The hook isn't firing when Claude Code edits a file.

Run ac doctor. It'll diagnose and usually offer a one-line fix. Common issues:

  • Hook wasn't installed (run ac init)
  • Claude Code was running when you installed it (restart Claude Code)
  • Daemon isn't running (run ac daemon)

A lease is stuck in "held" state and won't release.

The holder crashed. Wait for the lease TTL (default 30 minutes) or force-release from the local dashboard. Enable allow_revoke in settings if you want to use the dashboard's Release button.

How do I uninstall it?

ac uninstall-hooks
brew uninstall agentcollision
rm -rf ~/.agentcollision

That removes the hooks from all AI tools, uninstalls the binary, and deletes local state.

What if the hosted coordinator goes down?

Your local daemon keeps working. Each machine falls back to local-only coordination. Team sync resumes automatically when the coordinator comes back.

Still stuck?

Open an issue on GitHub and include: