Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Plain-speak is a small readability linter that scores selected signals of plain writing and points to lines that may need attention. It can help you revise a draft that feels generic or overworked, but its score is not an AI-authorship verdict: it does not establish who wrote a passage.

Builder Hao Li describes the tool in a recent DEV Community post. The feature list, setup steps, and sample score below are his descriptions, not independently audited results.

What plain-speak checks

Li describes four checks that contribute to a plainness score:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Long sentences: sentences longer than 25 words.
  • Selected buzzwords: about 45 built-in terms or phrases the author calls “AI-tells,” including “delve,” “robust,” “furthermore,” and “in today’s fast-paced.”
  • Reading ease: a Flesch-style readability signal folded into the total score.
  • Hedge density: how often hedging language appears.

These checks can surface patterns to review. They do not prove that a passage was written by AI, and a flagged word may be appropriate in context. The tool is best understood as a style prompt, not an authorship detector or an objective measure of writing quality.

How to run the check

Li’s post gives this command-line workflow for checking a draft saved as draft.txt:

git clone https://github.com/hahahahahahahahah6/plain-speak
cd plain-speak
python3 plain_speak.py check draft.txt

The author describes plain-speak as a single file that uses only Python’s standard library and supports Python 3.9 or later. The repository’s current state and compatibility were not independently verified, so treat those as project details reported in the post.

Use JSON output or a CI threshold

According to Li, the command accepts --json for machine-readable output and --fail-under 80 to use a score threshold as a CI gate for generated documentation. A threshold can make results easier to enforce consistently, but it also turns the tool’s heuristic score into a pass/fail rule. Review whether that rule suits your documents before adopting it.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What the example score does—and does not—show

The post shows sample output scoring an example draft 45/100, labeled “slop.” That run reports 3 sentences, 80 words, a reading-ease score of 30.7, 2 long sentences, 24 buzzwords, and 2 hedges. These figures illustrate the output for that example; they are not an external statistic, controlled evaluation, or evidence that the score predicts how readers will judge a draft.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

A revision loop for writers and agents

Li also describes a workflow involving a repository SKILL.md agent skill with a reading-level ladder—“ELI5 / engineer / one-liner.” In that account, the CLI flags issues, the skill rewrites the text, and the draft is checked again. The useful principle is to treat flagged lines as candidates for editing: keep technical terms and hedges when they convey needed meaning, and rewrite only when the result becomes clearer and more natural.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.