annox

How a review goes

Whoever takes part, a person in their editor or an agent following along, works on the same plain files. Every action writes one event to .annox/, next to the document.

The annox review workflow: annotate, discuss, decide, and share. Every action writes one immutable event file to .annox/.

1. Annotate

Highlight a passage, comment on it, or suggest replacing it. Each note is anchored by its position and the quoted text. Drafts can stay local until you publish them. Anchoring (§3)

2. Discuss

Reply in a thread beside the text. When the document changes, each note finds its quote again, or is flagged as orphaned instead of guessing. Every edit to a note stays in its history, and each reader sees which threads others changed since they last looked. Data model (§2)

3. Decide

Resolve a comment, or reopen it. Accept a suggestion to apply the edit, or reject or withdraw it. An accepted edit is undone with a new suggestion that reverts it, so the record stays intact. Suggestions (§4)

4. Share

annox commit commits the new event files, and you push them like code. Or point the workspace at a hub, and events and cursors arrive as collaborators type. Sync (§7)

In your editor

Here it is in Neovim: replying to a comment, commenting on a selection, accepting a suggestion, and suggesting edits as you type.

annox in Neovim: replying to a comment, commenting on a selection, accepting a suggestion, and suggesting edits in suggestion mode

With an agent

Write @claude in a comment and save. With annox mcp --channel, the thread is pushed into a running Claude Code session, which answers with a reply or a suggested edit that appears in your editor. The agent has its own unread list, so it never answers itself. Any other agent can follow along with annox watch, which prints each thread as one JSON line.

# Register the server, then load it as a channel
claude mcp add annox -- annox mcp --author urn:agent:claude \
  --name Claude --channel --mention @claude
claude --dangerously-load-development-channels server:annox

Anyone who can add annotations to the workspace can address the agent, collaborators included, so only use it with people you trust with your session. More in the README