DanRWilloughby/snifftest

25 stars · Last commit 2026-09-18

A prose linter that sniffs out AI writing tells. Zero dependencies, countable rules plus one judgment model.

README preview

<p align="center">
  <img src="assets/nose/nose.gif" alt="A pencil sketch of a nose in profile, sniffing twice and then approving" width="200">
</p>

# Sniff Test

Does the draft pass the sniff test?

Sniff Test reads Markdown and plain text and checks it against your house
rules. It prints one line per flag with the file, the line, the rule that
tripped and how sure it is.

There are two kinds of rule. **Countable rules** are regular expressions.
Long dashes, a paragraph with three colons, a banned word, every sentence the
same length. They run on your machine, cost nothing and send nothing anywhere.
**Judgment rules** need something read rather than counted. A closing sentence
that only restates the paragraph, a claim hedged three times, a line that talks
the reader out of the offer. For those it sends one paragraph at a time to a
small hosted judgment model and gets back one probability per rule. It only
does that after you have said yes.

View full repository on GitHub →