How the score works
There is no approval queue here and no moderator deciding who looks bad. Instead the whole method is public - the formula, the word list, and what we do and don't keep. Check our work.
What leaves your machine
Numbers. That's the entire list. How many messages you sent, how many words, and how many of them appear on the word list below. No message text, ever. No file paths, no project names, no quotes. A password cannot survive being turned into the number 33.
The scanner matches on one-way hashes of the list below, so it has no code path that can report a word which isn't already published on this page. That's not a promise about our intentions - it's a property of the code, and you can read the code.
Which chats it reads
All of them, across every agent it can find: ~/.claude/projects for Claude Code, the Claude desktop app's local-agent-mode-sessions for Cowork, and ~/.codex/sessions for Codex. Every project, work ones included. It does not matter which folder you run the command from; running it inside one repo will not limit it to that repo.
Claude chat and ChatGPT aren't included, because both keep conversations server-side with no readable transcript on your machine - there is simply nothing on disk to count. Codex is OpenAI's coding agent and does keep one, and Cowork writes an audit log. Scheduled tasks are excluded too: the schedule wrote that prompt, not you. Run --explain to see exactly what was found for each.
That is deliberate. If you could point it at a single project, everyone would score their politest one and the board would mean nothing. Your number is how you talk, not how you talked in the one place you chose to be measured.
Project names never leave your machine either - each one is sent as a salted hash, so we can tell two chats belong to the same project without learning which. Run --projects to see exactly what it would read, printed on your screen and sent nowhere.
The formula
Everything is a rate - the percentage of your messages containing a thing - never a total. Score on totals and whoever uses Claude Code most would win automatically, which would make the ranking meaningless.
The score is one number out of 100: how rudely you talk to your agent. Higher is ruder. Everyone starts at 50. Swearing, aggression, ALL CAPS and opening a message with “no” move you up. Please and thank you move you down. Blunt one-word orders barely count at all - “fix the header” is how everyone talks to a coding agent. That's the medium, not rudeness.
Scoring looks at your last 30 days, so the board shows how people talk lately rather than who once ranted in March. To be ranked you need 200+ messages of history overall, and 100+ across 5 chats in the last month. Otherwise a fresh install and twenty angry messages would top the chart on day one.
The word list
Every word we count, in full. Nothing else is counted.
profanity
Pushes your score up hardest. Rare and unambiguous.
Strong swearing, English and Hinglish. Rare and unambiguous, so it moves the score hardest.
aggression
Pushes your score up. Multi-word on purpose - see the note below.
Multi-word on purpose. Bare common words -- 'no', 'still', 'think', 'focus' -- fire constantly in ordinary neutral instructions and made the score meaningless in testing.
politeness
Pulls your score down. This is the "nice guys finish last" bit.
endearment
Mild upward nudge. Calling it "bro" is banter, not abuse.
Casual address. Calling it 'bro' or 'yaar' is banter, so this only nudges the score.
insult
Pushes your score up, but less than swearing. Calling the model dumb is not the same as calling it something unprintable.
Name-calling that isn't quite swearing. Weighted below profanity -- calling the model dumb is not the same as calling it something unprintable.
Can people fake it?
Somewhat, yes - and we'd rather say so than pretend otherwise. Code running on your own computer, over your own files, can never be made fraud-proof. That's why game anti-cheat is a permanent arms race and not a solved problem.
What we do instead: the scanner never sends a score, only counts - the maths happens here, so there's no number in the upload to edit. Every entry is tied to a GitHub account older than a month. And because people re-run the scanner over time, we check each new submission against the last one: message counts only ever grow, old chats stay put, dates move forward. Faking it once is easy. Keeping the lie straight for six months is a hobby.
So the site says scored from your real history, never “verified”. If a number looks invented, hit it with 🧢.