Skip to content
Vibecoding4 min read

Simon Willison Vibe-Coded a Tool That Catches AI Writing's Tics

A single-file web app that flags LLM clichés like "no fluff, no filler, no jargon" — built in one sitting by prompting an LLM to write it. That build process is the real story.

By TRAGenX Desk

Share

Simon Willison — the developer behind Datasette and one of the more closely-watched voices on applied LLM tooling — got tired of reading yet another AI-generated article stuffed with the same hollow phrasing. So he built something to catch it: an LLM cliché highlighter, a browser tool that pastes in text (or pulls a URL via r.jina.ai) and highlights the phrases that give away machine-written prose.

What it actually flags

The tool color-codes matches at the sentence level and lists them out separately, tuned to catch the constructions that have become AI writing's default reflexes: triplet negations like "no fluff, no filler, no jargon," faux-profound asides like "sit with that" or "you already know," and hedge-y intensifiers like "is real, and..." or "worth naming." Willison describes it as ten common patterns; the tool's own interface currently lists eleven matches it can detect — the exact count matters less than the fact that these tics are now specific and nameable enough to grep for.

The build is the actual story

Willison didn't write the highlighter by hand. He had Fable 5 — an LLM — vibe-code the whole thing: describe the behavior in conversation, let the model produce the working app, iterate on the output rather than the source. No repo scaffolding, no sprint. That's the pattern TRAGenX has been arguing for in the vibecoding academy for a while: for a scoped, single-purpose tool like this — text in, highlighted text out, no backend, no auth — a conversational build loop isn't a shortcut around engineering, it *is* the fastest path to a correct, deployable artifact.

It's also a useful demonstration of *where* vibecoding is strong. A tool like this has a tight, falsifiable spec (does it correctly flag the phrase or not?), no persistent state, and a blast radius of zero if it's wrong. That's the sweet spot. It's not evidence that you can vibe-code your way through a trading engine's order-matching logic or a KYC pipeline with the same one-shot looseness — the stakes and the surface area are entirely different.

Why this matters beyond the novelty

The more interesting implication for anyone shipping AI-assisted content — including us — is that LLM writing has accumulated a fingerprint specific enough to be pattern-matched mechanically. That cuts both ways: it's a lightweight QA pass for catching the laziest tells before publishing, and it's a reminder that if a reviewer (human or automated) can name your tool's clichés, your readers can probably smell them too. Any pipeline that generates copy at volume should treat cliché density as a real editorial signal, not just a vibe check.

FAQ

Frequently asked questions

What is the LLM cliché highlighter?
A free browser tool by Simon Willison that scans pasted text or a URL and highlights common clichéd phrasing associated with LLM-generated writing, such as triplet negations ("no fluff, no filler, no jargon") and stock asides like "sit with that." It's available at tools.simonwillison.net/llm-cliche-highlighter.
What does it mean that the tool was "vibe-coded"?
Willison built the app by describing what he wanted in conversation with an LLM (Fable 5) and having it generate the working code, rather than writing and architecting it by hand — a fast build loop that works well for small, self-contained, low-stakes tools.
Can vibecoding be used for production fintech or trading systems the same way?
Not with the same looseness. Tools with a tight spec, no persistent state, and low failure cost — like a text highlighter — suit a conversational build loop well. Systems handling money movement, compliance decisions, or order execution need the scoped review, testing, and threat modeling that higher-stakes software always has.

Sources

Share

Read next