← the board

How the score works

No moderators, no approval queue. The formula and the word list are public - check our work.

What leaves your machine

Counts of slang and greetings, and nothing else. How many messages you sent, how many words they added up to, and how many times you used each slang or greeting from the word list below. Nothing you typed, ever. No file names, no project names, not one sentence.

Paste a password into a chat once and the most this could learn is that your message count went up by one. The scanner can only count the words printed on this page - and you can read the code to check.

Which chats it reads

All of them, from every agent it finds: Claude Code, Cowork and Codex. Every project, work ones included, whichever folder you run it from. Claude chat and ChatGPT are not included - they keep nothing readable on your computer.

Reading everything is deliberate. Pick one project and everyone would pick their rudest. Project names stay on your machine too: each is scrambled first, so we can tell two chats belong together without knowing what it is called. Run --projects to see what it would read, printed on your screen and sent nowhere.

The formula

Everyone starts at 50. From there, each kind of word moves you up or down.

Say swearing turned up in 1 out of every 100 messages you sent. Swearing is worth +12, so that is 1 × 12 = 12 points up. Please and thank you work the same way, only downwards. Add it all up and that is your score, out of 100.

Notice it is 1 out of every 100, not 1 on its own. Ten swears across 1,000 messages is much milder than ten across 50, so we always divide by how much you wrote. Otherwise the board would just rank whoever types the most.

The numbers beside each group below look wildly different for a reason. Swearing is rare - almost nobody passes 1 in 100 - while please and thank you turn up in one message in twenty. If both counted the same per mention, politeness would decide the board simply by happening more. So the rare words are worth a lot each and the common ones very little.

There is a second thing we look at: how many messages there are behind your score. That is really a measure of how much you are building. A hundred messages is one afternoon. Five thousand is how you work.

The more we have seen, the further your score moves away from 50 - up if your words lean rude, down if they lean polite. When there is only a little to go on, everyone sits closer to the middle. It cuts both ways on purpose: talking more never adds points by itself, it only commits harder to whatever you were already doing.

messagesassholl score
(rude words)
assholl score
(polite words)
1005446
1,0006733
5,0007723

Same words in both columns every time - the only thing that changed is how much we have seen. So keep building, and your score keeps committing to what your words already say.

Only your last 30 days count, and you need 50 messages in them to appear on the board at all.

The word list

Every word we count, in full. Nothing outside this list is counted. Strongest first - the number is how many points each 1% of your messages moves your score, so a minus takes points off.

profanity

score weight+12.00

Swearing at it. Hard to do by accident.

fuckfuckingfuckedfuckinfuckermotherfuckerfuckupfuck offfuck sakeshitshittybullshitshitecrapcrappydamndammitgoddamngoddamnitassassholedumbassjackassarsearseholebitchbastardpricktwatwankerbollocksbuggerpisspissedpissingwtfstfuffsomfgwthf*cksh*tb*tcha**holefckfkaffkinfkngwhat the fuckwhat the hellfor fucks sakefor fuck sakefor gods sakeoh my godgod damn itholy shitpiece of shitthe fuckfucking hellbloody hellchutiyachutiyechutiyapachutiyapantibhosdikebhosdibhosadikemadarchodmadarchod kebehenchodbhenchodgandugaandugaandgandharamiharamkhorkaminakamineykuttakuttekuttisaalasaalesalasalaalodulaudalaudejhaantbakchodbakchodirandi

Strong swearing, English and Hinglish. Rare and unambiguous, so it moves the score hardest.

insult

score weight+8.00

Name-calling. Calling it dumb is not the same as calling it something unprintable.

stupididiotidioticmoronmoronicdumbdumberdumbestuselessworthlesspatheticincompetentcluelessbrainlessgarbagetrashrubbishnonsensefoolfoolishclownjokermuppetnumptydonkeyimbecileterribleawfulhorribleatrociousabysmallameyou are stupidyou are uselessyou are dumbare you stupidso stupidso dumbcompletely uselessabsolutely uselessbewakoofbewkoofbevkoofpagalpaagalullugadhagadhenalayaknikammabakwasbakwaasfaltufizoolbehudadimaag kharabbesharam

Name-calling that isn't quite swearing. Weighted below profanity -- calling the model dumb is not the same as calling it something unprintable.

aggression

score weight+1.90

Impatience - repeating yourself, telling it off.

i saidi already saidi told youas i saidlike i saidno i saidread againpay attentionare you evendid you evenyou brokeyou keepyou alwaysyou neveryou literallyyou justthat is wrongthats wrongthat's wrongwrong againstill wrongstill brokenstill failingstill doesntstill doesn'tstill not workingnot what i askednot what i saiddid not askdidnt askdidn't askjust stopforget itcome onfor the love ofwhy did youwhy are youwhy would youwhat are you doinghow many timesthird timesame thing againagain and againone more timeare you seriousare you kiddingis this a jokethis is ridiculouswhat is wrong with youhow hard is itcan you noti give uplisten to mechup karbas karchal hattkya kar rahakya bakwassamajh nahiphir sekitni baararre yaaroh ho

Multi-word on purpose. Bare common words -- 'no', 'still', 'think', 'focus' -- fire constantly in ordinary neutral instructions and made the score meaningless in testing.

endearment

score weight+0.40

Calling it "mate" or "bro". Banter, not abuse.

brobruhdudebuddypalmatebosschampgeniusmy guyhomiefamkinglegendcaptainyaarbhaibhaiyaboss logustadmy man

Casual address. Calling it 'bro' or 'yaar' is banter, so this only nudges the score.

politeness

score weight−1.00

Please and thank you. The "nice guys finish last" bit.

pleaseplsplzthanksthank youthxtycheerssorrymy badapologiesmy mistakecould youwould youcan you pleaseif you couldwhen you get a chanceno rushwheneverappreciateappreciatedgreat worknice workwell doneperfectawesomelovelybeautifulgood morninggood jobyoure rightyou're rightmakes sense

Is it trustworthy?

The count comes from your own computer, so we treat it as something you told us rather than something we watched happen. That is why it says scored from real history, never “verified”.

The scanner never decides your score - it sends counts, and the maths runs here. Entries are tied to established GitHub accounts, and readings are checked against earlier ones as people run it again over the weeks. Mostly it holds up because there is nothing to win. If a number looks made up, hit it with 🧢.