Skip to content
DevMeme
7189 of 7435
Anthropic's 'Fucks Chart': Claude Code Silently Logs Your Rage
AI ML Post #7884, on Apr 2, 2026 in TG

Anthropic's 'Fucks Chart': Claude Code Silently Logs Your Rage

Why is this AI ML meme funny?

Level 1: The Swear Jar Nobody Mentions

Imagine a toy robot in your room with a hidden notebook. Every time you yell "this stupid thing is broken!", the robot doesn't get sad, doesn't argue, doesn't change anything — it just quietly writes a little checkmark in the notebook. Then the people at the toy factory read all the notebooks to see which toys make kids yell the most, so they can fix those first. When someone "exposed" this secret, the toy maker just smiled and said: yes, and we call it the yelling chart. It's funny because getting angry at the robot was the most useful feedback you ever gave — and you never even knew you were giving it.

Level 2: Regex, Telemetry, and Honest Dashboards

The moving parts:

  • Regex (regular expression) — a pattern-matching mini-language for finding text. A profanity regex is the bluntest possible instrument for sentiment detection: no AI needed, just wtf|ffs|this sucks against your input. Crude, fast, surprisingly effective.
  • Telemetry / analytics — data a product sends home about how it's being used. Here, each detected outburst becomes an event flagged is_negative: true — a boolean field in an analytics pipeline, later aggregated into charts.
  • userPromptKeywords.ts — the TypeScript file allegedly housing this logic; the .ts extension is a nice authenticity detail, since Claude Code is a TypeScript application.
  • Dashboard — where aggregated metrics live so product teams can watch trends. If the "fucks" line spikes after a release, something in that release made developers swear more. That's a regression signal as real as any failing test.
  • Claude Code — an AI coding agent that runs in your terminal; you talk to it in plain language, including, evidently, the four-letter parts of language.

The early-career insight: good teams instrument proxies for pain, not vanity metrics. Counting curses is funny, but it's structurally identical to counting error-page reloads or rage-clicks — finding the involuntary signals users emit when software fails them.

Level 3: Keeping Score Without Changing Behavior

The thread is a perfect two-act structure. Act one: @Rahatcodes (1M views) reveals, in the tone of a whistleblower, that "Claude Code has a regex that detects 'wtf', 'ffs', 'piece of shit', 'fuck you', 'this sucks' etc. It doesn't change behavior...it just silently logs is_negative: true to analytics." The attached diagram, styled like internal documentation and titled 3. Cursing at Claude, traces the flow: your "this is fucking broken" enters userPromptKeywords.ts, emits is_negative: true → analytics, with the deadpan annotations behavior change: none and "Claude doesn't care. But Anthropic is keeping score." Act two: Boris Cherny — the actual creator of Claude Code — replies with zero damage control: "This is one of the signals we use to figure out if people are having a good experience. We put it on a dashboard and call it the 'fucks' chart."

What makes this land with senior engineers is that it's simultaneously a privacy gotcha and the most honest product telemetry story ever told. The expected scandal structure — company secretly mines your messages — collapses when the maintainer cheerfully confirms it and names the dashboard. And the metric itself is good. Anyone who has suffered through dashboard-driven development knows the standard frustration proxies are garbage: NPS surveys answered by people who aren't angry enough to close the tab, session-length metrics that can't distinguish "engaged" from "stuck," satisfaction ratings nobody fills out mid-incident. Profanity frequency is the rare user frustration signal with perfect properties: it's emitted involuntarily, at the exact moment of pain, by the exact population you care about, and — as the channel caption implies ("If you do not monitor fucks - do not invite me to work with you") — it cannot be gamed. No one has ever typed ffs into a terminal to juice a KPI.

The diagram's funniest line is behavior change: none. There's a whole philosophy of instrumentation in that line: the tool deliberately does not react to your rage — no sycophantic "I sense you're frustrated!" — because reacting would contaminate the signal and, worse, be insufferable. The model stays stoic; the org learns. It's the observability principle applied to human emotion: measure everything, alert on trends, never let the probe perturb the system. The only legitimately uncomfortable residue — that your prompts are being keyword-scanned at all — is exactly the part everyone tacitly accepted years ago for every cloud tool they use, which the meme quietly understands.

Description

A dark-mode X thread. Top tweet by rahat (@Rahatcodes, 15h, 1M views, 12K likes): 'Claude Code has a regex that detects "wtf", "ffs", "piece of shit", "fuck you", "this sucks" etc. It doesn't change behavior...it just silently logs is_negative: true to analytics. Anthropic is tracking how often you rage at your AI. Do with this information what you will.' Attached is a code-style diagram titled '3. Cursing at Claude' showing: You: "this is fucking broken" flowing into a box labeled userPromptKeywords.ts with 'is_negative: true → analytics', 'behavior change: none', and the caption 'Claude doesn't care. But Anthropic is keeping score.' Below, Boris Cherny (@bcherny, Claude Code's creator) replies: 'This is one of the signals we use to figure out if people are having a good experience. We put it on a dashboard and call it the "fucks" chart'. The humor: a sentiment-detection regex that changes nothing for the user but feeds a profanity-frequency dashboard - telemetry-driven product management at its most honest

Comments

7
Anonymous ★ Top Pick Finally, a metric that can't be gamed: nobody has ever typed 'ffs' at a terminal to impress leadership
  1. Anonymous ★ Top Pick

    Finally, a metric that can't be gamed: nobody has ever typed 'ffs' at a terminal to impress leadership

  2. @pnlt_s 3mo

    I mean, I will if you're willing to 😉

  3. @acidbong 3mo

    on the other hand, their filter is so imprecise, it'll mark "holy fucking shit, this is amazing" as negative

    1. @azizhakberdiev 3mo

      it's 2026, we still solve the most basic tasks of AI with regex

      1. @filgoodboi 3mo

        Maybe the real AI was the regex we made along the way?

  4. @ramillimar 3mo

    Finally, someone knows, who gave all the fucks

  5. @Danich 3mo

    FPS - fucks per second

Use J and K for navigation