Skip to content

Comparison

Eugene Tartakovsky edited this page May 17, 2026 · 1 revision

Comparison

How slopless differs from other prose linters.

slopless proselint write-good alex vale textlint defaults
Language Node/TS Python JS JS Go Node
Deterministic yes yes yes yes yes yes
LLM calls no no no no no no
Targets AI slop yes no no no no no
Custom config required no no no no yes depends
Output textlint JSON terminal text terminal text terminal text configurable textlint JSON
Rules 50+ ~30 ~10 ~30 depends on config varies

proselint

The closest philosophical sibling. Python, regex-driven, narrow rules with named provenance. Excellent for general prose hygiene (clichés, jargon, hedging, redundancies).

Where it stops short for AI-era prose: it predates the LLM-output era and has no rules specifically targeting LLM artifacts (response wrappers, knowledge-cutoff disclaimers, summative closers, hedge-stacked openers, demonstrative emphasis, semantic thinness, narrative slop, tortured academic paraphrases). It also lives in Python, which adds a runtime to a Node toolchain.

Use proselint for traditional prose hygiene. Use slopless when the input is shaped by or by people steeped in LLM output.

write-good

JavaScript, narrow rule set: passive voice, weasel words, lexical illusions, "so" openers. Useful but small. No AI-era coverage.

Use write-good if you want a 10-rule tool that runs in 50ms. Use slopless when you need depth.

alex

JavaScript, inclusive-language focus. Catches gendered, ableist, and culturally insensitive phrasings. Different purpose entirely.

Run alex AND slopless. They don't overlap.

vale

Go binary, very configurable, style-guide-as-code. The right tool when an organization has a published style guide it wants to enforce mechanically.

Where it diverges: vale's value is in the configuration you write. Out of the box it does very little. Slopless is the opposite - opinionated defaults, low configuration.

Use vale for brand style enforcement. Use slopless for pattern-level slop detection. They compose well.

textlint default presets

The textlint-rule-* ecosystem contains many small presets and rules: preset-japanese, rule-no-todo, rule-write-good wrapper, rule-spellcheck-tech-word, etc. Coverage is fragmentary; you assemble a config from dozens of packages, each with its own version cadence.

Slopless is shipped as a single preset that already wraps the orthography + metric rules and is opinionated about how they fit together. You install one thing and run one command. Direct textlint use is still supported if you want to mix slopless rules with other presets.

What slopless does that none of the alternatives do

  • Rules targeting LLM output patterns explicitly (llm-vocabulary, llm-openers, llm-disclaimer, response-wrapper).
  • Rules targeting narrative slop (body-action density, perception-verb density, narrative clichés) for generated fiction.
  • Rules targeting tortured academic phrases used by AI-paraphrased papers.
  • Rule families designed as a taxonomy, not a flat list, so new rules find their home or force a taxonomy expansion.
  • Inline textlint-disable block comments with package-namespaced rule IDs (slopless/<rule-name>).

Clone this wiki locally