Every finding cites the rule that fired.
teLLeM is an open-source linter for the fingerprints AI leaves in prose. Written in Rust, compiled to WebAssembly, running entirely in this tab. Nothing you paste leaves the page, and when the evidence is thin it says so instead of judging.
Paste anything. Watch it get read.
Three verbs on one engine. lint names the tells and cites the rule behind each one. fix rewrites them away deterministically, no model in the loop, so the same input always gives the same output. who attributes the text to a model family, or tells you it cannot. Your text stays in this tab.
The numbers, as measured.
The catalog uses four 2026 model families with about 300 samples each. Training and calibration are separated by prompt. The calibration set selects the confidence threshold and supplies the precision and coverage below. These figures still need confirmation on a separate, untouched test set.
The catalog is the deliverable.
Mining produces one row per feature with a column per model family, so habits read straight across. Here is how often each family reaches for the word honest, per thousand words of its own output. These bars are read out of the shipped catalog at build time, never typed into this page, so a re-mine cannot leave the site claiming numbers the catalog no longer holds.
Matched writing patterns do not establish who wrote a text.
Lint reports matched rules with a density band. It does not determine authorship. Fix applies the supported rewrites without a language model.
Attribution has the same discipline built in. A five-way classifier must pick one of five whatever you show it, which is why the first version named a model for 45% of genuine human writing. The catalog now carries a rejection class, and a text that ranks into it gets no match at any confidence.
Attribution compares writing patterns with the catalog. Its confidence applies to that comparison. Short passages or edited text can change the result. A model outside the catalog can still receive an incorrect match.