Free · no account · nothing phones home

Take the
tell list.

Every word this app flags, every sentence shape it matches, and every rhythm threshold it measures against — written as a file you drop into the assistant you already use.

It runs on your machine. No key, no sign-in, no request to us. Keep it, edit it, tear the lists out and paste them somewhere else.

node check.mjs draft.mdreal output
draft.md: 17 points — review recommended

vocabulary (3)
  line 1  leverage  [verbs]
  line 1  robust  [adjectives]
  line 1  moving forward  [phrases]

throat clearing (1)
  It's important to note that the direction shifted considerably…

rhythm (3)
  em-dash density 16.1/1k words (aim under ~4)
  low sentence-length variance (stdev 5.9) — rhythm is metronomic; aim for 9+
  only 0% of sentences under 10 words — this voice runs short; aim for 30%+

62 words · 3 sentences · stdev 5.9

Run on the draft from the front page, by the same code that scores it here. The script has no dependencies and makes no network calls.

Pick your assistant.

Same instructions in each, wrapped the way that tool expects. The checker script is identical across all four — grab it once.

Claude

A skill. Claude Code loads it on its own when a draft needs an edit pass, and the same file works pasted into a Project.

  • SKILL.md

    ~/.claude/skills/plain-prose/SKILL.md

  • check.mjs

    beside the instruction file

Where it goes

  1. mkdir -p ~/.claude/skills/plain-prose
  2. Save SKILL.md and check.mjs into that folder.

How to run it

Ask for it — "clean this up", "make this sound less generated" — or name it: /plain-prose. In a Project, paste SKILL.md into the custom instructions instead.

Cursor

A rule file. Scoped to prose — markdown, commit messages, docs — so it stays out of the way while you write code.

  • plain-prose.mdc

    .cursor/rules/plain-prose.mdc

  • check.mjs

    beside the instruction file

Where it goes

  1. mkdir -p .cursor/rules
  2. Save plain-prose.mdc into that folder, and check.mjs anywhere in the project.

How to run it

It attaches on its own when the file you are editing is prose. Anywhere else, call it with @plain-prose.

Codex

An AGENTS.md section. Codex reads it at the start of every session in the repository, so prose written there gets the pass without being asked.

  • AGENTS.md

    AGENTS.md (append to what is there)

  • check.mjs

    beside the instruction file

Where it goes

  1. Append the section to AGENTS.md at the root of your repository.
  2. Save check.mjs somewhere in the project — scripts/ is a good home.

How to run it

Automatic for any prose Codex writes in that repository. Ask for it directly with "run the plain-prose pass on this".

Gemini

A GEMINI.md for the CLI, which reads it as context for the whole project. The same text works as a Gem instruction.

Where it goes

  1. Save GEMINI.md at the root of your project, or at ~/.gemini/GEMINI.md for every project.
  2. Save check.mjs beside it.

How to run it

Loaded on start. Ask for the pass by name: "run the plain-prose pass on this draft". For a Gem, paste the file into the instructions box.

97 terms
in 7 categories
8 sentence shapes
12 stock openers

What is actually in the file.

The instructions run a draft through three passes. First the vocabulary — the words that arrived with instruction tuning and never left. Then the shapes, which is the half a word list cannot reach: the false contrast, the sentence that announces itself before it starts.

Then rhythm, measured rather than guessed. Even sentence lengths are the strongest signal there is, and the one people fix last. The file names a number to hit — a standard deviation of 9 words or better — so your assistant can check its own work instead of asking you whether it reads alright.

In front of all of it sits one rule the rest cannot outvote: every claim in the rewrite has to trace back to a sentence in your draft. No new number, no date that moved, no maybe promoted to a did. A sentence too tangled to keep safely gets kept as written and flagged.

the honest part

Where this stops.

A word list and good editing advice get you most of the way, and you should have both for nothing. Here is what they do not do.

No voice.

The file removes the machine shape. It has no model of how any particular person writes, so it lands on clean, neutral prose. The app rewrites in one considered voice, which is the part a word list cannot carry.

No register.

A Slack message and a skip-level note need different shapes. The file treats every draft the same way. The app takes where the thing is going as an input and changes the syntax to match.

Nothing checks the rewrite.

Your assistant is asked to keep every fact, and it usually will. Nothing is holding it to that but the instruction. The app runs the fact rule as a separate constraint and flags the sentences it could not safely change.

It will not beat a detector.

Neither will anything else, reliably. Detectors change weekly and any text can be edited past one. What both versions do is take out the marks a reader notices, which is the part that was ever within anyone's control.

None of that is a reason to skip the free version. Install it, run it on something you were about to send, and see how far it gets you. If you want the rest, the app is a few free rewrites a month with no card.

Take the list. Use it anywhere.
Come back when you want the other half.