Skip to content

achmdfzn/Ai-HHumanizer

Repository files navigation

Humanizer

Tools for taking the machine-shaped edges off AI-written text so it reads like a person wrote it.

This repository holds two related things that share one catalog of patterns:

  1. Humanizer Web — a small Next.js app that cleans up text right in your browser. No account, no API key, nothing leaves the page.
  2. The humanizer skill — a Markdown skill for Claude Code and OpenCode (AGENTS/SKILL.md) that drives an LLM through the same edits while you write.

Both lean on the same idea: large language models tend to reach for the same safe, statistically average phrasing, and that average has a recognizable texture. The patterns below name that texture so it can be removed.


Humanizer Web

Humanizer Web wraps the pattern catalog in a two-panel editor. You paste text on the left, press Humanize, and the cleaned version shows up on the right alongside a breakdown of what changed and a before/after "AI-tell" score.

Everything runs locally. The rewrite is a deterministic rules pass written in TypeScript, and the score is computed from the text itself. There is no server call, no key to manage, and your text never leaves the browser tab.

What it does

  • Rules engine (lib/humanizeRules.ts) — fixes the mechanical tells that don't need a language model to spot: em and en dashes, curly quotes, emojis, filler phrases, stacked hedging, overused AI vocabulary, copula avoidance ("serves as" → "is"), throat-clearing transitions, and chatbot pleasantries. It substitutes patterns; it does not reword sentences the way an LLM would.
  • Citation and formula protection — before any rule runs, the engine masks things you never want touched ((Smith, 2020), [12], $x^2$, \(...\), DOIs, URLs) and restores them afterward. Always on.
  • Academic mode — an optional toggle that leaves formal connectors ("Furthermore", "Moreover") and copula constructions in place, since scholarly prose uses them legitimately, while still stripping emojis, dashes, inflated vocabulary, filler, and chatbot artifacts.
  • AI-tell score (lib/detector.ts) — a 0–100 reading drawn from sentence-length variation (burstiness), uniformity, AI-vocabulary density, filler density, transition density, and punctuation tells. Shown before and after so you can see the cleanup land.
  • Word-level diff — additions and deletions highlighted inline so you can review every edit.
  • Bilingual UI — Indonesian (default) and English, toggled in the navbar.
  • Session history — the last five runs are kept in localStorage so you can reload or compare them.
  • Quality-of-life — character/word counters, .txt download, copy button, and dark mode.

What it is not

The AI-tell score is a writing-quality signal, not a detector prediction. It does not claim to tell you what GPTZero, Turnitin, or any other commercial detector will say, and Humanizer Web is not built to slip text past those tools. If your goal is to disguise AI authorship to pass off work as your own, this isn't the tool for that. It's here to make genuine writing read more naturally.

Requirements

  • Node.js 18.18 or newer (LTS recommended)

Setup

git clone https://github.com/achmdfzn/Ai-HHumanizer
cd Ai-HHumanizer
npm install

No environment variables are required.

Run locally

npm run dev      # dev server at http://localhost:3000
npm run build    # production build
npm start        # serve the production build

Deploy

Connect the repository to Vercel and deploy as-is. There's nothing to configure: the app is fully static with no server secrets.


The humanizer skill (Claude Code / OpenCode)

The same patterns are packaged as a skill so an agent can apply them while you draft. The skill itself is plain Markdown — AGENTS/SKILL.md — so installing it is just a matter of dropping that file where your tool looks for skills.

Install for Claude Code

Clone the upstream skill into Claude Code's skills directory:

mkdir -p ~/.claude/skills
git clone https://github.com/blader/humanizer.git ~/.claude/skills/humanizer

Already have this repo checked out? Copy the skill file across instead:

mkdir -p ~/.claude/skills/humanizer
cp AGENTS/SKILL.md ~/.claude/skills/humanizer/SKILL.md

Install for OpenCode

mkdir -p ~/.config/opencode/skills
git clone https://github.com/blader/humanizer.git ~/.config/opencode/skills/humanizer

Or copy the file manually:

mkdir -p ~/.config/opencode/skills/humanizer
cp AGENTS/SKILL.md ~/.config/opencode/skills/humanizer/SKILL.md

OpenCode also reads ~/.claude/skills/, so if you run both tools a single clone into ~/.claude/skills/humanizer/ covers you.

Usage

Invoke the skill and hand it your text:

/humanizer
[paste your text here]

Or just ask the model in plain language:

Please humanize this text: [your text]

Voice calibration

The skill can match your own style instead of producing generic "clean" prose. Give it a sample first:

/humanizer
Here's a sample of my writing for voice matching:
[2-3 paragraphs in your own words]

Now humanize this text:
[the AI text you want cleaned up]

It reads your sentence rhythm, word choices, and habits from the sample and applies them to the rewrite.


Where the patterns come from

The catalog is built on Wikipedia's "Signs of AI writing", the guide maintained by WikiProject AI Cleanup from thousands of observed cases of machine-generated text. The skill adds a final "does this still read as AI?" audit and a second cleanup pass to catch anything the first round missed.

The guide's core observation is worth keeping in mind:

"LLMs use statistical algorithms to guess what should come next. The result tends toward the most statistically likely result that applies to the widest variety of cases."

That average is what the patterns target.

The 30 patterns

Grouped by the kind of tell they describe, with a quick before/after for each.

Content

# Pattern Before After
1 Significance inflation "marking a pivotal moment in the evolution of..." "was established in 1989 to collect regional statistics"
2 Notability name-dropping "cited in NYT, BBC, FT, and The Hindu" "In a 2024 NYT interview, she argued..."
3 Superficial -ing analyses "symbolizing... reflecting... showcasing..." Remove, or expand with real sources
4 Promotional language "nestled within the breathtaking region" "is a town in the Gonder region"
5 Vague attributions "Experts believe it plays a crucial role" "according to a 2019 survey by..."
6 Formulaic challenges "Despite challenges... continues to thrive" Specific facts about the actual challenges

Language

# Pattern Before After
7 AI vocabulary "Actually... additionally... testament... landscape... showcasing" "also... remain common"
8 Copula avoidance "serves as... features... boasts" "is... has"
9 Negative parallelisms / tailing negations "It's not just X, it's Y", "..., no guessing" State the point directly
10 Rule of three "innovation, inspiration, and insights" Use a natural number of items
11 Synonym cycling "protagonist... main character... central figure... hero" "protagonist" (repeat when clearest)
12 False ranges "from the Big Bang to dark matter" List the topics directly
13 Passive voice / subjectless fragments "No configuration file needed" Name the actor when it adds clarity

Style

# Pattern Before After
14 Em/en dashes "institutions—not the people—yet this continues—" Cut them: periods, commas, colons, or parentheses
15 Boldface overuse "OKRs, KPIs, BMC" "OKRs, KPIs, BMC"
16 Inline-header lists "Performance: Performance improved" Rewrite as prose
17 Title Case Headings "Strategic Negotiations And Partnerships" "Strategic negotiations and partnerships"
18 Emojis "🚀 Launch Phase: 💡 Key Insight:" Remove them
19 Curly quotes said “the project” said "the project"

Communication

# Pattern Before After
20 Chatbot artifacts "I hope this helps! Let me know if..." Remove entirely
21 Cutoff disclaimers "While details are limited in available sources..." Find sources or remove
22 Sycophantic tone "Great question! You're absolutely right!" Answer directly

Filler and hedging

# Pattern Before After
23 Filler phrases "In order to", "Due to the fact that" "To", "Because"
24 Excessive hedging "could potentially possibly" "may"
25 Generic conclusions "The future looks bright" Specific plans or facts
26 Hyphenated word pairs "cross-functional, data-driven, client-facing" Drop hyphens on common word pairs
27 Persuasive authority tropes "At its core, what matters is..." State the point directly
28 Signposting announcements "Let's dive in", "Here's what you need to know" Start with the content
29 Fragmented headers "## Performance" + "Speed matters." Let the heading carry the weight
30 Diff-anchored writing "This function was added to replace..." Describe what it does, not what changed

The web app's rules engine handles the mechanical subset of these (14, 18, 19, 23, 24, 7, 8, 20, 22, and the transition cleanup). Patterns that need real judgment — significance inflation, the rule of three, voice calibration — are the skill's job, not the regex pass's.

A worked example

Before — unmistakably AI:

Great question! Here is an essay on this topic. I hope this helps!

AI-assisted coding serves as an enduring testament to the transformative potential of large language models, marking a pivotal moment in the evolution of software development. In today's rapidly evolving technological landscape, these groundbreaking tools—nestled at the intersection of research and practice—are reshaping how engineers ideate, iterate, and deliver, underscoring their vital role in modern workflows.

At its core, the value proposition is clear: streamlining processes, enhancing collaboration, and fostering alignment. It's not just about autocomplete; it's about unlocking creativity at scale, ensuring that organizations can remain agile while delivering seamless, intuitive, and powerful experiences to users. The tool serves as a catalyst. The assistant functions as a partner. The system stands as a foundation for innovation.

Industry observers have noted that adoption has accelerated from hobbyist experiments to enterprise-wide rollouts, from solo developers to cross-functional teams. The technology has been featured in The New York Times, Wired, and The Verge. Additionally, the ability to generate documentation, tests, and refactors showcases how AI can contribute to better outcomes, highlighting the intricate interplay between automation and human judgment.

  • 💡 Speed: Code generation is significantly faster, reducing friction and empowering developers.
  • 🚀 Quality: Output quality has been enhanced through improved training, contributing to higher standards.
  • Adoption: Usage continues to grow, reflecting broader industry trends.

While specific details are limited based on available information, it could potentially be argued that these tools might have some positive effect. Despite challenges typical of emerging technologies—including hallucinations, bias, and accountability—the ecosystem continues to thrive. In order to fully realize this potential, teams must align with best practices.

In conclusion, the future looks bright. Exciting times lie ahead as we continue this journey toward excellence. Let me know if you'd like me to expand on any section!

After — humanized:

AI coding assistants can speed up the boring parts of the job. They're great at boilerplate: config files and the little glue code you don't want to write. They can also help you sketch a test, but you still have to read it.

The dangerous part is how confident the suggestions look. I've accepted code that compiled and passed lint, then found out later it missed the point because I'd stopped paying attention.

If you treat it like autocomplete and review every line, it's useful. If you use it to skip the thinking, it'll help you ship bugs faster.

The only real backstop is tests. Without them you're judging vibes.

Credits

The web app borrows ideas (not code, all reimplemented) from a handful of MIT-licensed projects:

  • The local AI-tell score in lib/detector.ts draws its metrics approach from rudra496/StealthHumanizer (MIT) and the burstiness/uniformity/vocabulary/punctuation signal scoring from harshaneel/humanize (MIT).
  • The expanded AI-vocabulary map in lib/humanizeRules.ts adapts the word list from lynote-ai/humanize-text (MIT, postprocess.py), reworked to be deterministic. Its em-dash "rhythm" step was deliberately left out, since merging sentences with an em dash is exactly the tell pattern 14 removes.
  • The pattern catalog itself follows AGENTS/SKILL.md and Wikipedia's "Signs of AI writing." Rule sets from gabelul/slopbuster (MIT) and Aboudjem/humanizer-skill (MIT) informed which mechanical tells were worth covering.

Detector-evasion features from the projects surveyed (claims about beating specific checkers, "undetectable" modes) were intentionally not adopted.

References

Version history

  • 2.7.0 — Added pattern #30 (diff-anchored writing); turned em/en dashes into a hard cut rather than an "overuse" flag; widened #21 to cover speculative gap-filling ("maintains a low profile"). 30 patterns total.
  • 2.6.0 — Cleanup pass: merged the duplicated workflow sections, scoped the personality guidance to writing where voice matters, dropped the model-fingerprinting subsection, and trimmed the worked example. Pattern count unchanged at 29.
  • 2.5.1 — Added the passive-voice / subjectless-fragment rule, bringing the total to 29.
  • 2.5.0 — Added patterns for persuasive framing, signposting, and fragmented headers; extended negative parallelisms to tailing negations; tightened the em-dash wording.
  • 2.4.0 — Added voice calibration: match the user's own style from a sample.
  • 2.3.0 — Added pattern #25, hyphenated word-pair overuse.
  • 2.2.0 — Added the final "obviously AI generated" audit and a second-pass rewrite.
  • 2.1.1 — Fixed the pattern #18 (now #19) example: curly vs straight quotes.
  • 2.1.0 — Added before/after examples for all 24 patterns.
  • 2.0.0 — Full rewrite based on the raw Wikipedia article.
  • 1.0.0 — Initial release.

License

MIT