plainspoken

Reads Markdown and plain text rather than a schema, so it works on docs, READMEs, release notes, landing copy and CVs alike.

plainspoken

Fails the build when writing reads as machine-written. Catches AI phrases, vague tails and paired adjectives, and stays quiet on plain facts.

CInpm versioninstall sizetestsruntime depsLicense: MITNode >=18Claude Code
1,037 downloads 187/week v1.0.5 published 20 Sept 2026 MIT licence Node >=18 JavaScript
$ npm i -D @alokraj68/plainspoken
linterwritingproseai-detectionmarkdowncontent-quality

Most tools in this space fall into two camps. Word-list checkers flag leverage and stop there, which teaches you to write "utilise" instead. Catalogues tuned for essays flag everything, including facts.

That second failure is the interesting one. A published de-slop rule set of about 980 lines, run against a real corpus of technical writing, produced nine hits and eight were false positives. It read "ported from Java to C#" as a false range and "Australia, Europe and the US" as tricolon abuse. Both are just true things.

A checker that fires on facts trains you to ignore it, which is worse than no checker. So the rules were filtered the other way round: a pattern only ships if it fires on writing built to trip it and stays silent on writing that is merely factual. Both halves are asserted in the tests. Three of the rules come from sentences a real AI detector flagged, and became checks rather than notes.

The thing underneath is that detectors flag abstraction, not vocabulary. Managed 80+ Azure servers and the team of interns who kept them patched beats managed extensive cloud infrastructure - not because the words are plainer, but because only somebody who was there could have written it. When a sentence trips a rule, the fix is almost never a synonym.

What it catches

Using it

Run it on a directory

npx @alokraj68/plainspoken docs/

What a finding looks like

docs/architecture.md
  error   14  ai-phrase        "proven track record" has no defensible use
        We have a proven track record and are well-versed in scalable systems.
  error   14  adjective-pair   "scalable, secure" - two generic adjectives in a row
  error   31  vague-tail       trails off into a vague clause instead of landing on a result
        Built the reporting layer, enabling improved efficiency
  warn    22  ai-word          "leverage" - try: use, apply, draw on

1 file(s): 3 error(s), 1 warning(s)

Questions

Will it flag my ordinary technical writing?

That is the failure it was built to avoid. Every rule has to pass two tests before it ships: it fires on writing built to trip it, and it stays silent on writing that is merely factual. Both are asserted in the test suite.

Can I allow a word it warns about?

Yes. A config file takes an allow list, which is how a project keeps a word that is a product name rather than a tell - Realm is a mobile database, not a metaphor.

Is this an AI detector?

No. It looks for the specific patterns detectors react to, which are patterns of abstraction rather than of vocabulary. It tells you which sentence will read as machine-written and why, so you can name a system, a client or a number instead.

Also published