Skip to content
AtomicReps

Claude Code · Cursor · Codex · any MCP client

Your agent wrote the code. You still have to know what it does.

It prints after the agent's answer. A letter answers it. Say not now and it goes quiet.

shopclaude

filter panel close animation is janky on staging, hangs then snaps. fix

Read(src/components/FilterPanel.css)

Read 61 lines

Grep(pattern: "max-height", path: src/components)

2 matches

Update(src/components/FilterPanel.css)

Updated 1 file, +11 -6

Bash(pnpm test src/components/__tests__/filter-panel.test.ts)

4 passed

Done. The panel now starts closing on the first frame.

Atomic Reps · CSS

A panel holds 4000px of content and closes with the rule below. What does the box you can see do during the 300ms?

.panel { max-height: 9999px; transition: max-height 300ms linear; }
.panel.is-closed { max-height: 0; }

From memory. Reply with a letter.

A Claude Code session, replayed. The last question is live; answer it here. In your terminal it lands the same way.

Atomic Reps is an MCP server for Claude Code, Cursor, Codex and any MCP client. After your agent finishes a task it prints one authored multiple-choice question about the code it just wrote; you answer with a letter, or ignore it and it goes quiet.

Two commands

npx atomicreps
npx atomicreps connect

The first prints a code you type at atomicreps.com/connect. The second adds it to Claude Code, Cursor or Codex. Every repo you open after that has it.

02Written by people, in advanceAuthored · Reviewed

Nothing here is written on the fly. Every question was built, checked and reviewed by an engineer before it could reach a terminal.

Each one looks easy and is obvious if you know the mechanism. You cannot look up what you did not know you misunderstood; the second of thought is the point.

How the questions are built
Never asked
How many values does justify-content accept?
Asked
A panel holds 4000px of content and closes with max-height going from 9999px to 0 over 300ms. What does the box you can see do?
03What it costs your agentMeasured this session

17 tokens in.
151 out.

On every model, the same.

Your token bill will not notice.

Your agent sends a topic, a few words about what it just touched, and prints the question it gets back word for word. Nothing is composed at request time, so the cheapest model carries it exactly like the newest. Measured on the session replayed above: 17 tokens in, about 151 out, 604 characters.

rep(topic: "css transitions, max-height")
⚛ Atomic Reps · CSS · 604 characters, about 151 tokens

04About the change in front of youDocker · SQL · React

The question is about the change you just shipped.

  • The edit

    Update(Dockerfile)
    COPY package.json moved above COPY .
    +2 -1

    The rep · Docker

    You moved COPY package.json above COPY . . Which change to the repo now still makes npm install run again?

  • The edit

    Update(db/migrations/0042_orders_idx.sql)
    CREATE INDEX ON orders (user_id)
    +1 -0

    The rep · SQL

    The query filters on user_id and orders by created_at. What does this index leave the planner still doing on every call?

  • The edit

    Update(src/hooks/useSearch.ts)
    AbortController in the effect cleanup
    +6 -1

    The rep · React

    The user types three characters in 200ms and three requests go out. After your change, which of them can still write to state?

05When you say noVerbatim

It never argues and never re-pitches.

You say "not now"
⚛ Muted for two hours.

"Stop for today" is a day. "Turn it off" stays off.

You ignore two in a row
⚛ Quiet for the rest of today.

It comes back when you answer one, not when a timer says so.

It arrives rarely
Reps sit a long stretch of work apart, and the day has a ceiling. You never finish a task and find a quiz waiting.
The network is slow
The rep is fetched on a hard deadline and dropped, silently, if it misses. No build ever waits on a question.
07ConnectClaude Code · Cursor · Codex · HTTP

Pick the door your editor already speaks.

Claude Code

claude mcp add --scope user atomicreps -- npx -y atomicreps mcp

User scope, so it is there in every repo you open. Running npx atomicreps connect writes the same line for you.

Cursor · ~/.cursor/mcp.json
{
  "mcpServers": {
    "atomicreps": {
      "command": "npx",
      "args": ["-y", "atomicreps", "mcp"]
    }
  }
}

Or skip the file: Add to Cursor

Codex

codex mcp add atomicreps -- npx -y atomicreps mcp
Any other MCP client
POST https://atomicreps.com/mcp
Authorization: Bearer <your token>

The token is minted on your account page and shown once. Revoke it there and the door closes the same second.

Run it in the repo you have open right now.

The next time your agent says Done, you will know what it did.