Atomic Reps for VS Code

Why this exists
You approve more code than you write. Most of it is correct, and that is the
part that makes this hard: when the code works, nothing makes you understand
it, and nothing tells you that you haven't.
The gap turns up later and never at a good moment. In a review, where you
cannot say why the change is safe. In an incident, where the thing that is
down is the thing you shipped in March. In a question from someone junior
about a file with your name on it.
Reading the file again feels like understanding. Answering something about it
without the file open is the part that tells you the truth.
So this asks you. You build something and it lands. A question about that work
appears in the panel beside your terminal: four options, one key. You answer,
you see why, and it gets out of the way.
What it asks about
It asks about what you just touched, not a card from a deck someone else
shuffled. Which files changed is worked out on your own machine, from your own
repository.
The questions are written and reviewed before they reach you. None of them are
made up on the spot, which is the failure people expect from this kind of tool
and the one that wastes an afternoon.
They are meant to look obvious. The second of thought before you press a letter
is the whole product. Getting one wrong costs nothing and is where most of the
explanation lives.

When it asks
- A commit, whether you made it in the editor, in a terminal, or through an agent.
- A push.
- A test or build task that finished without errors.
- A terminal command matching the list in your settings, such as
pnpm test
or cargo build. This one needs your terminal's shell integration.
- Coming back to the editor after a break, ten minutes by default.
- A debug session ending, which is off by default.
- You asking, with
cmd+alt+r on a Mac or ctrl+alt+r elsewhere.
It never watches your typing and it never watches your saves. Saving happens in
the middle of a thought, which is the worst moment to ask anybody anything.
How often a rep may come is a setting, from off through to every time you
finish a task, with a daily cap and a minimum gap. Every moment above can be
switched off on its own.

Atomic Reps: How the moments land shows what it noticed and what you did
about it, as a table, so you can decide whether this suits you before you
commit to it. Nothing in that table leaves your machine.
The four screens
The panel has a strip across the top.
- Rep. The question, or the welcome when nothing is waiting.
- Me. Your summary, your skills with the accuracy behind each one, your last
reps, a twelve week grid of the days you practised, and your mutes.
- Settings. Pace, whether a rep asks how sure you were, which areas and
topics a rep may come from, how far the questions reach, and mutes. Each
control saves as you change it and the server says what it did.
- Doctor. What this machine believes: the server it talks to, when the next
rep is due, the last thing that failed, and a button that checks the server.

Where it shows up
- The panel. A tab beside the terminal. It never steals focus, and its tab
carries a badge while a question is waiting.
- The status bar. Your streak at rest, a bell and the topic while a question
waits, and the verdict for ten minutes after you answer.
- A notification. Only when the panel is closed, and by default only after a
commit or a push.
Answer opens the panel, Later keeps it quiet for half an
hour. Set atomicreps.toast to never and the status bar carries it alone.
Commands
| Command |
What it does |
Atomic Reps: Ask me one now |
A question about what you are working on. cmd+alt+r, or ctrl+alt+r. |
Atomic Reps: Ask me one about... |
Pick a topic and get one about that instead. |
Atomic Reps: Read one insight |
Something worth knowing, with nothing to answer. |
Atomic Reps: Open the waiting rep |
Bring the waiting question back up. |
Atomic Reps: How am I doing |
Your streak, skills, reps and mutes. |
Atomic Reps: Preferences |
Pace, topics, levels and mutes. |
Atomic Reps: Doctor |
What this machine believes, and a server check. |
Atomic Reps: How the moments land |
A table of what it noticed and what you did. |
Atomic Reps: Later |
Quiet for half an hour. The status bar keeps the question. |
Atomic Reps: Quiet for two hours |
Quiet everywhere, not just this editor. |
Atomic Reps: Answer on the web |
Open the waiting question in a browser. |
Atomic Reps: Connect this editor |
Sign in with a code. |
Atomic Reps: Sign out on this machine |
Forget the token and the reps held here. |
Editor settings
Pace, topics, levels and mutes belong to your account and live on the
Preferences screen. What the editor itself owns is here:
| Setting |
What it does |
atomicreps.toast |
When a notification is allowed: commits, always, never. |
atomicreps.sound |
A short sound with the verdict. |
atomicreps.moments.* |
Each moment on or off: commit, push, task, terminal, debug, return. |
atomicreps.moments.terminalCommands |
The commands that count as finished work, as regular expressions. |
atomicreps.moments.returnAfterMinutes |
How long a break has to be before coming back counts. |
atomicreps.channel |
Which server to talk to. Leave it on auto. |
Connect
Run Atomic Reps: Connect this editor. A browser tab opens, a short code is
already on your clipboard, you paste it and approve. Connecting sends this
computer's name, as the label for this editor, and nothing else about it.
That is the same sign in as npx atomicreps, and the same account: one login
serves the command line tool, the MCP server, the Claude Code hook and this
extension. A question served here is the same question you answer in Claude
Code, and the other way round.
Atomic Reps: Sign out on this machine removes the token and the reps this
machine remembers.
Your code and your data
No telemetry. Nothing is measured about how you use the editor and nothing is
sent anywhere for analytics.
Your source code is not uploaded. The extension reads which files changed,
the packages in your manifest and the file extensions involved, and turns them
into short topic keys such as react or migrations. Those keys are what the
server receives. The diff itself never leaves your machine.
The extension talks to atomicreps.com and to nothing else, over the same few
calls the command line tool makes: ask for a question, send an answer, change a
setting.
Your token is stored in ~/.config/atomicreps/config.json at mode 0600, inside
a directory at mode 0700, shared with the command line tool. The moments log
stays in the editor's own storage on this machine.
Privacy ·
Security ·
Data Processing Agreement ·
Terms
Cursor, Windsurf, VSCodium
The same package is published to Open VSX, which those editors read. Search for
Atomic Reps there, or install the .vsix by hand.
More
The extension's own page, with the panel you can try in the browser:
atomicreps.com/vscode.
Fonts
Satoshi and General Sans by Fontshare, under the Fontshare Free Font Licence.
JetBrains Mono by JetBrains, under the SIL Open Font Licence 1.1.