Overview
Active chats
Leases
Files
.agentcollision/ directory, and acquires a lease on that specific file. Different files never conflict.
Events
Team
Help & reference
A brief reservation on a part of your codebase. When an AI chat is about to edit a file, AgentCollision checks if any other chat is currently editing in the same area. If yes, the edit is blocked (preventing a collision). If no, the reservation is granted and the edit proceeds. Reservations last only as long as the edit — typically under a second — then automatically release. A chat with "21 edits" simply means it made 21 file changes, not that it held 21 reservations simultaneously.
Each file in your repo is an independent lease. Two chats editing different files run in parallel; two chats editing the same file serialize. No configuration needed.
A single Claude Code session (or Cline, Windsurf, Cursor -- any tool that's wired up to AgentCollision's hook). Each session has a unique agent_id the daemon uses to track who holds what.
Claude Code's PreToolUse mechanism. Before any Edit/Write/Bash tool call fires, Claude Code calls AgentCollision. AgentCollision decides allow or deny. The hook is installed via ac install-hooks.
Reservations only exist during the instant a file is being written. Between edits — while the AI is thinking, reading code, or waiting for you — nothing is reserved. If Edits coordinated is non-zero, AgentCollision is working. Your chats just aren't writing at this exact moment.
Settings
~/.agentcollision/team.toml as hmac_key_b64. Or run ac team dashboard to auto-fill.Zero-knowledge coordination. The coordinator never sees your file paths. Resources are HMAC-hashed on your machine before transmission.
Client-side decryption. Display hints are AES-256-GCM encrypted by the daemon. Only browsers with the team HMAC key can decrypt them. The key never leaves your browser.
Session storage. Your team token and HMAC key are stored in localStorage (persists across sessions). Sign out to clear them.
Daemon settings are configured per-machine via the local dashboard at localhost:7777/ui/settings. Each team member controls their own daemon.
- Lease TTL
- Cooldown duration
- Orphan detection threshold
- Log level, auto-start, telemetry
- Git context injection
- Worktree allocation & cleanup
- Track reads, allow revoke