/faircopy
open source · part of Omni Aura

Clean Copy.

Your agent's copy harness.

faircopy loads your writing standards into Claude Code and other agents. It detects common agent habits and blocks completion until the copy meets your rules.

Run the Stop hook once. Every future generation improves.

Try it

Type or paste prose. Default and NLP rules run in your browser with no network call.

0 errors 0 warnings Click a highlight to inspect it.

Click a highlighted span to inspect it. Click an issue to jump back to the exact range.

Default rules. Full NLP pack.

Fast path

  • no-em-dash Rejects em dashes, with options for en dashes and double hyphens. tight, not bloated — direct
  • no-weasel-words Catches reinforcement adverbs like actually, truly, really, and literally. Shipping faircopy actually changes how you write.
  • no-rhetorical-scaffolding Flags X is Y, not Z constructions and Without X / With X setups. Without faircopy... With faircopy...

These rules began as personal feedback. faircopy turns them into enforceable checks that agents must satisfy.

NLP pack

  • no-filter-words Removes framing phrases like I think, basically, and in order to. I think the launch page was delayed.
  • no-passive-voice Warns when passive constructions hide the actor. The page was approved.
  • no-weak-modals Flags hedged modal claims like can help and might improve. It can help teams unlock outcomes.
  • no-stacked-adjectives Finds adjective piles before a noun so the copy keeps one earned descriptor. adaptive intelligent workflow engine
  • no-nominalized-phrases Warns on X of Y phrases that bury an action inside a noun. optimization of onboarding

Add @faircopy/rules-nlp when you want semantic checks in the browser or CLI. Version 1.4.0 adds weak modals, stacked adjectives, and nominalized phrases.

How it works

CLI and libraries

Install what you need. The core engine, default rules, NLP rules, and adapters install separately so your projects stay lean.

Framework adapters

@faircopy/astro, @faircopy/react, and @faircopy/solid parse JSX or Astro components, extract strings and prose attributes, and report exact locations with source maps.

Claude Code plugin

The Stop hook watches every turn. Lint errors halt the response and require the agent to revise its output. Agents learn your standards through repetition.

Browser NLP

The optional @faircopy/rules-nlp pack uses lightweight POS tagging to catch filter phrases, passive voice, weak modals, stacked adjectives, and nominalized phrases in both the CLI and the in-browser demo.

Custom rules welcome

Every built-in rule is a pure function that returns diagnostics. Add your own without touching plugin internals.

Built for the patterns agents repeat

Agents default to certain habits on landing pages. faircopy flags them immediately, from simple regex tells to NLP-backed semantic patterns, and demands cleaner alternatives. The result reads with more authority and requires less human editing.

Same idea as impeccable.style, applied to copy instead of frontend design systems.

Get started

npm install -D faircopy @faircopy/rules-nlp
npx faircopy init

Add the Claude Code plugin. Point it at your landing pages. The harness runs from that moment forward.

All packages live at version 1.4.0. Open source under MIT. Provenance verified. Regex rules stay fast. NLP rules stay optional.