Paste text to spot AI writing markers: invisible characters, em dash habits, assistant phrasing and flat sentence rhythm, each explained. Free, in-browser.
Paste a passage and this tool highlights, in place, the specific features in it that appear more often in language-model output than in general human prose: the invisible characters, the unspaced em dashes, the “it’s worth noting” constructions, the delve-tapestry-testament vocabulary, and the unnaturally even sentence rhythm. Every highlight is clickable and every one tells you why it was flagged and what would legitimately produce it anyway.
What it does not do is give you a verdict. There is no “87% AI” number here, because no tool of this kind can produce one honestly, and pages that do are selling you a confidence they do not have. If you have arrived here trying to decide whether a student cheated or a contractor used ChatGPT, read the next section before you do anything else.
Three limits are structural, not fixable with a better model:
So the honest framing is: these are signals to look at, not evidence to act on. Used to audit your own draft before publishing, or to understand why a piece of text reads as machine-written, it is genuinely useful. Used against a person, it is not.
The analysis is a marker catalogue plus three whole-text statistics. Markers are pattern matches; each has a weight and a cap, so a single word repeated forty times cannot dominate the result. They fall into five categories:
| Category | Examples | Why it is a signal |
|---|---|---|
| Invisible characters | Zero-width spaces and joiners, non-breaking spaces | The highest-precision category — these have essentially no reason to appear in prose someone typed by hand |
| Typography | Unspaced em dash (word—word), spaced em dash, curly quotes, the
single-character ellipsis | Models emit typographic characters that most keyboards do not produce directly |
| Structure | Bulleted and numbered lists with bold lead-ins, emoji-decorated headings | The layout habits of the assistant register |
| Phrasing | “It’s worth noting”, “not just X, but Y”, “plays a crucial role”, “in today’s fast-paced landscape”, “in conclusion”, assistant pleasantries such as “I hope this helps!” | Formulaic constructions that models reach for far more than writers do |
| Vocabulary | delve, tapestry, testament, realm, underscore, pivotal, robust, seamless, leverage, myriad, plethora, meticulous, showcase, ever-evolving; plus sentence-initial connectives like Moreover, Furthermore, Additionally | Individually meaningless, measurably overrepresented in aggregate |
The three structural statistics are computed across the whole passage rather than counted as events:
Below 120 words, no score is produced at all. Individual matches are still highlighted so you can look at them, but the number is withheld, because ordinary human writing trips the same markers by chance at that length. Refusing to score short text is the single most important guard in the tool and the thing most consumer detectors get wrong.
Above the floor, the result is a bounded index out of 100, split into a marker component worth up to 60 and a structural component worth up to 40. Two design choices matter:
The result is presented as a band — few, some, many, heavy — with the arithmetic shown underneath, including when the structural component was reduced and why. It is not a probability. A 40 does not mean “40% AI”, and the interface says so on every result.
| Band | What it means |
|---|---|
| Few signals | About as many markers as ordinary human writing. Not evidence of human authorship — light editing removes most markers — just nothing to point at. |
| Some signals | Moderate density. Common in edited model output, and equally common in polished corporate and SEO writing by people. |
| Many signals | High density across several categories. Consistent with unedited or lightly edited model output — and with a lot of documentation. |
| Heavy signals | Dense markers spanning most categories. The pattern raw model output typically produces. Still not proof. |
The most defensible use of this tool is on your own writing. Every flagged span that has a sensible replacement is grouped, so one click fixes every occurrence of the same term at once: unspaced em dashes become commas, curly quotes become straight ones, zero-width characters are deleted outright, and overused vocabulary gets plain-language alternatives. There is an apply-all for the mechanical categories and a multi-step undo, and once you make an edit the score shows what it was before alongside what it is now, so you can see which changes actually moved it.
One category deliberately offers no fix: structure. There is no find-and-replace for flat sentence rhythm. Varying it means rewriting, and offering a mechanical substitution would just be teaching the tool to defeat its own strongest signal. If the structural signals are firing on your draft, the fix is to break up the long sentences and let a short one land on its own.
Some markers lean toward one model family — unspaced em dashes and reflexive qualifier openers toward Claude, emoji-decorated headings, assistant pleasantries and “landscape” clichés toward GPT. The tool reports a lean only when the family-specific evidence is both plentiful enough and lopsided enough to say anything, and it refuses far more often than it commits.
Treat any lean it does report as the weakest output on the page. Both families have converged heavily on the same register, and these attributions shift with every model revision — they are the part of the marker catalogue that ages fastest. It is a curiosity, not an identification.
The output that matters is not the number, it is the marked-up text. Hovering a highlight shows the marker’s name and the reason it exists; each marker also carries its own caveat explaining what innocently produces it. Invisible characters, which have no glyph, are rendered as a visible stand-in so you can actually see where they are — usually the single most useful thing on the page, because a zero-width space pasted into a CMS or a code block causes real problems entirely separate from where the text came from.
Read the flags, decide whether each one is genuinely odd or just the subject matter, and form your own view. That is the whole design. Everything runs in your browser — the text is never sent to a server — so you can paste an unpublished draft, a candidate’s cover letter or an internal document without it leaving your machine. Load the built-in example if you want to see what a heavily-flagged passage looks like before committing your own text.