Skip to content

Repository files navigation

humanizer. AI writing humanizer and detector. Reads like a person wrote it. 55 patterns, 5 voices, zero setup, and nothing leaves your machine.

License: MIT CI status 55 AI writing patterns GitHub stars

English · 简体中文 · 日本語 · Español · Français

Humanizer is a free, open-source AI writing humanizer and detector.

What it does · Install · Use it · Works in your editor · Learn more

claude plugin marketplace add Aboudjem/10x
claude plugin install humanizer@10x

What it does

AI writing has a fingerprint. Sentences all run about the same length, the same safe words keep coming back, and filler like "in today's landscape" pads the gaps. Humanizer names 55 of those habits, finds the ones in your text, and rewrites it in a voice you pick. The CLI scores the text 0 to 100 from four measurable signals, not from a count of the 55.

Two words worth a gloss. Burstiness is how much your sentence lengths vary, and an AI tell is one of those giveaway habits.

Sentence-length chart. The AI line is flat and uniform. The human line runs from 3 to 31 words. Humanizer restores the variation.

Install

In Claude Code, through the 10x marketplace:

claude plugin marketplace add Aboudjem/10x
claude plugin install humanizer@10x

In 70+ other agents, one line. The skills CLI links the skill into the directory your agent reads, or copies it with --copy:

npx skills add Aboudjem/humanizer-skill
Install without the installer (curl, or a per-editor path)

Project-scoped, so it travels with your repo:

mkdir -p .claude/skills/humanizer && curl -sL https://raw.githubusercontent.com/Aboudjem/humanizer-skill/main/skills/humanizer/SKILL.md -o .claude/skills/humanizer/SKILL.md

Swap the folder for another editor: .cursor/skills/, .github/skills/ for Copilot, .codex/skills/, .gemini/skills/, .windsurf/skills/, .continue/skills/. Use ~/.claude/skills/ for a global install. Full paths per agent are in docs/editors.md.

Use it

1. Score something you already wrote. This scans, it does not change the file:

node cli/index.js score examples/blog-post/before.md
examples/blog-post/before.md
Score: 46/100  (Mixed)
  Signal breakdown (points out of 100):
    lexical     40.0   weight 0.4   vocabTellDensity 0.0818
    repetition  6.0    weight 0.14  trigramRepetition 0.077
    burstiness  0.0    weight 0.28  burstiness 0.798
    diversity   0.0    weight 0.18  mattr 0.866
  words:                        391
  sentences:                    11
  mean sentence length:         35.55
  ... plus 9 more metric lines

Lower is more human. The breakdown says which signal cost the points, so you know what to fix first.

2. Rewrite it in a voice. In your editor, call the skill on your own draft:

/humanizer --file draft.md --voice technical

Before: This comprehensive guide delves into the intricacies of our authentication system.

After: This guide explains how our authentication system works.

The rewrite cuts the tells. It never adds a fact the source did not have.

3. Check the rewrite kept the facts. A rewrite that quietly drops a number is the real risk:

node cli/index.js compare --before examples/blog-post/before.md \
  --after examples/blog-post/after.md --check-facts

It exits 1 and names anything lost: a number, a percentage, a URL, a date, a version, or an acronym.

What you get

  • A 0 to 100 AI-tell score with a five-band verdict, from Pristine to Pure AI smell.
  • A per-signal breakdown from the score command, so a bad number points at a specific cause.
  • A rewrite in one of five voices: casual, professional, technical, warm, blunt.
  • A fact check that fails a rewrite which lost a number, percentage, URL, date, version, or acronym.
  • An exit code for CI, and a pre-commit hook that scores only the files you staged.
All 55 patterns, by category
IDs Category Examples
P1-P8 Content Significance inflation, promotional language, AI vocabulary ("delve", "leverage")
P9-P18 Language and style Negative parallelisms, em dash overuse, structured-list syndrome
P19-P21 Communication Chatbot artifacts, knowledge-cutoff disclaimers, sycophantic tone
P22-P30 Filler and hedging Filler phrases, generic conclusions, uniform sentence length
P31-P43 Emerging Elegant variation, placeholder text, chatbot markup leaks, infomercial hooks
P44-P55 Craft and forensic False agency, aphorism formulas, unicode obfuscation, leftover hedge debris

Every pattern has a write-up and its trigger list in SKILL.md. In references/patterns.md, 34 of the 55 also carry a before/after pair, one per pattern that benefits from one. The core catalog (P1-P30) draws on Wikipedia: Signs of AI writing (CC BY-SA).

Works in your editor

Works in Claude Code, Cursor, Codex, Copilot, Gemini CLI, and 70+ other agents through npx skills add.

Agent One-line install
Claude Code claude plugin install humanizer@10x
Any of 70+ agents npx skills add Aboudjem/humanizer-skill
One named agent (Cursor, Codex, Copilot, Gemini CLI, OpenCode, Zed) add -a <agent> to that line
Everything else the table in docs/editors.md

The skill is Markdown, so it runs on whatever model your editor points at.

Good to know

Important

Nothing leaves your machine. The skill is one Markdown file your editor reads locally, and the optional metrics CLI is plain Node with no dependencies and no network calls. No telemetry, no account, no API key.

  • Writing better is the goal, not beating a detector. Clean prose skips the lazy habits detectors look for, so fixing the writing sorts the detection out on its own.
  • False positives happen. Detectors misfire on non-native English writing (Liang et al.), and low sentence-length variation is a habit some people simply have. A false-positive guard protects lived detail and deliberate imperfection.
  • The number is a stand-in, not a verdict. It is reproducible, which is what makes it a usable gate, but it reads signals rather than meaning. 64 tests pin its behaviour.

Learn more

Built by Adam Boudjemaa · MIT License · No telemetry, no data collection

Releases

Packages

Contributors

Languages