Manifesto
The em dash was mine before AI.
«—» is typography, not an AI watermark.
A sentence with an em dash, a curly quote, or a non-breaking space is not evidence that a language model wrote it. Publishers, typesetters, and copyeditors have set these marks — deliberately, and by locale-specific convention — since long before any language model existed. Reading them as an "AI tell" mistakes a craft that predates the technology for a fingerprint it left behind.
That misreading has a cost. When correct punctuation gets treated as suspicious, writers get pushed toward flatter, safer punctuation to avoid the accusation — the wrong incentive, aimed at the wrong target.
Polytypo exists because the craft underneath is mechanical, well documented, and worth automating correctly: quotes, dashes, ellipses, apostrophes, symbols, and no-break spaces, applied the way a locale's own style guide — Duden, Imprimerie nationale, Kotus, Chicago, Мильчин — actually specifies them, not the way one universal style would guess.
Not one universal style
Correct typography isn't an "AI style." It's several different, locale-specific ones.
Every card below runs the exact same input string through transform(). Only the
locale changes; quote style, dash style, and spacing all follow.
Input, unchanged
Full locale reference, citations, and how a locale gets added — Locales.
See it on your own text
Paste a paragraph. Watch what changes, and why.
The playground runs the real engine in your browser — what you type is never sent anywhere.
Already using polytypo? Add our badge
Two lines: a script tag and a span. No per-embed network call. Pick a language and a theme, then copy the code into your footer or credits. Embedding notes cover Content Security Policy. Sites with the badge are listed on Sites using polytypo.
<script async src="https://polytypo.dev/badge.js"></script>
<span data-polytypo-lang="en" data-polytypo-theme="light"></span>