blader

    blader/humanizer

    #215 this week

    Agent skill that removes signs of AI-generated writing from text

    llm
    agent-skills
    ai-writing
    claude-code
    codex
    cursor
    Python
    MIT
    36.8K stars
    3.3K forks
    36.8K GitHub watchers
    Updated 8/20/2026
    View on GitHub

    Backblaze Generative Media Hackathon

    Build the next generation of AI media apps with Genblaze, stored on Backblaze B2. $10,000 in prizes.

    Enter the hackathon

    Loading star history...

    Use Cases & Benefits

    • Removes signs of AI-generated writing from text to make it sound more natural and human.
    • Ensures rewrites never fabricate facts, preserving original content accuracy while eliminating AI writing artifacts.
    • Use for refining AI-generated marketing copy to sound authentic and engaging to human readers.
    • Use for improving documentation prose by removing formulaic or promotional AI writing patterns.
    • Use for matching and applying a user's personal writing style to AI text for consistent voice calibration.

    About humanizer

    Humanizer

    skills.sh installs

    A portable agent skill that removes signs of AI-generated writing from text, making it sound more natural and human. It is plain Markdown, so it can run in any harness that supports skill-style instructions.

    Installation

    Skills CLI

    Install globally with the cross-agent skills CLI so Humanizer is available in every project:

    npx skills add blader/humanizer --global
    

    Update an existing install:

    npx skills update humanizer --global
    

    To install globally into every supported agent harness:

    npx skills add blader/humanizer --global --agent '*'
    

    To target one configured harness, pass its agent name:

    npx skills add blader/humanizer --global --agent <agent-name>
    

    Omit --global for a project-local install that can be committed and shared with collaborators. Start a new agent session or reload skills after installation.

    Claude Code plugin

    Claude Code users can also install Humanizer as a plugin:

    /plugin marketplace add blader/humanizer
    /plugin install humanizer@humanizer
    

    The skill is then invoked as /humanizer:humanizer.

    Manual

    Any agent harness can use the skill directly because the runtime artifact is SKILL.md. Install it wherever your harness expects skill directories, or copy SKILL.md into an existing skill folder.

    For example:

    git clone https://github.com/blader/humanizer.git /path/to/your/skills/humanizer
    

    Or, if you already have this repo cloned:

    mkdir -p /path/to/your/skills/humanizer
    cp SKILL.md /path/to/your/skills/humanizer/
    

    Usage

    Invoke the skill however your agent harness exposes installed skills. Common forms include a slash command or a direct request:

    /humanizer
    
    [paste your text here]
    
    Please humanize this text: [your text]
    

    Point it at a file and the skill rewrites it in place:

    Humanize the prose in docs/launch-post.md
    

    Voice Calibration

    To match your personal writing style, provide a sample of your own writing:

    /humanizer
    
    Here's a sample of my writing for voice matching:
    [paste 2-3 paragraphs of your own writing]
    
    Now humanize this text:
    [paste AI text to humanize]
    

    The skill will analyze your sentence rhythm, word choices, and quirks, then apply them to the rewrite instead of producing generic "clean" output.

    Overview

    Based on Wikipedia's "Signs of AI writing" guide, maintained by WikiProject AI Cleanup. This comprehensive guide comes from observations of thousands of instances of AI-generated text.

    The skill also includes a final "obviously AI generated" audit pass and a second rewrite, to catch lingering AI-isms in the first draft.

    Rewrites follow a no-fabrication rule: they never add facts, names, dates, or citations that aren't in the source text. Specificity has to come from the source or the author, not from the rewrite.

    Key Insight from Wikipedia

    "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."

    33 Patterns Detected (with Before/After Examples)

    Content Patterns

    #PatternBeforeAfter
    1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989 as part of a wider decentralization"
    2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; keep only sourced context
    3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove, or keep only what the source supports
    4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
    5Vague attributions"Experts believe it plays a crucial role"Name a real source or cut the claim
    6Formulaic challenges"Despite challenges... continues to thrive"Keep the sourced facts; cut the boosterism

    Language Patterns

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

    Style Patterns

    #PatternBeforeAfter
    14Em/en dashes"institutions—not the people—yet this continues—"Cut them: periods, commas, colons, or parentheses
    15Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
    16Inline-header lists"Performance: Performance improved"Convert to prose
    17Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
    18Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
    19Curly quotessaid “the project”said "the project"
    26Hyphenated word pairs“cross-functional, data-driven, client-facing”Drop hyphens on common word pairs
    27Persuasive authority tropes"At its core, what matters is..."State the point directly
    28Signposting announcements"Let's dive in", "Here's what you need to know"Start with the content
    29Fragmented headers"## Performance" + "Speed matters."Let the heading do the work
    30Diff-anchored writing"This function was added to replace..."Describe what it does, not what changed
    31Manufactured punchlines / staccato drama"It had no preference. No prior. No nostalgia."Use varied sentence lengths and concrete claims
    32Aphorism formulas"Symmetry is the language of trust"Replace the formula with the actual claim
    33Conversational rhetorical openers"Honestly? It depends..."Remove the fake-candid setup

    Communication Patterns

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

    Filler and Hedging

    #PatternBeforeAfter
    23Filler phrases"In order to", "Due to the fact that""To", "Because"
    24Excessive hedging"could potentially possibly""may"
    25Generic conclusions"The future looks bright"Specific plans or facts

    Full Example

    (Illustration note: the rewrite below adds specifics, like the month and the neighborhoods, that stand in for details the author would supply. In a real session those come from the user; the skill asks rather than invents.)

    Before (AI-sounding):

    I recently spent five unforgettable days in Lisbon, and let me tell you — this city completely stole my heart. From the moment I arrived, I knew I was somewhere truly special.

    Nestled along the banks of the Tagus River, Lisbon stands as a vibrant testament to Portugal's enduring spirit, where rich history and modern energy intertwine at every turn. Yes, the famous hills are challenging — my legs certainly felt it! — but every climb rewards you with breathtaking, panoramic views that make it all worthwhile.

    No trip would be complete without riding the iconic Tram 28, winding through the city's most historic neighborhoods. And the food? Simply divine. The original pastéis de nata at Pastéis de Belém are a beloved national treasure, and savoring one still warm was a moment I will never forget.

    But what truly makes Lisbon special isn't just the sights — it's the feeling. Wander a few steps off the main squares and you'll discover a quieter, more authentic side: sun-drenched alleys, charming tiled facades, and friendly locals going about their daily lives, inviting you to slow down and savor every moment.

    Of course, the must-see São Jorge Castle offers stunning views over the rooftops below. The queues can be long, but the experience is absolutely worth it for any history buff or curious traveler.

    Would I go back? Absolutely. Lisbon isn't just a place to visit — it's a place to fall in love with, again and again. If you're dreaming of your next getaway, this is one destination that promises memories to last a lifetime. ✨

    After (Humanized):

    I spent five days in Lisbon last October and still have mixed feelings about it. Beautiful, yes. Also harder on the knees than anyone warned me.

    The hills are the whole story and somehow never make the brochures. My hotel was up in Alfama, which photographs beautifully and translates, in practice, to climbing what felt like a six-story staircase every time I wanted coffee. By the second day my calves had opinions. I started planning each walk around which way was downhill, which is a strange way to see a city but probably an honest one.

    Everyone says to ride Tram 28, so I did, wedged against a stranger's backpack for forty minutes while three tour groups filmed the same corner. I would walk the route next time, or go before breakfast. The custard tarts, though, earn the fuss. I had one at a plain little place in Graça, still warm, and for about thirty seconds I understood why people build trips around pastry.

    What I did not expect was how quiet the city gets away from the main squares. Two blocks uphill from any plaza it turns into laundry lines, chipped tile, open windows, and old men watching football with the sound turned up. That is the Lisbon I keep thinking about, not the castle.

    The castle is fine. The view is great, the queue is long, and I spent more time shuffling toward the entrance than looking at anything once I got inside. If I had only two days, I would trade it for an afternoon of getting lost.

    I would go back, but in spring and with better shoes. Lisbon does not bend over backward to make things easy for you. I think I liked that, even when my legs disagreed.

    References

    Version History

    • 2.9.1 - Improved distribution and portability: removed nonportable frontmatter and tool preapprovals, made global installation the documented default, added package validation, and removed the duplicated long-form example from the runtime prompt. No change to the 33 patterns.
    • 2.9.0 - Added a no-fabrication rule: rewrites may not invent facts, names, dates, or citations not present in the source, and every example that modeled invented specifics was re-cut to use only source information (fixes #187). Replaced paragraph-count parity with an information-over-shape rule, made a user's voice sample outrank the em dash ban, and added invocation modes (pasted text / file / embedded). No change to the 33 patterns.
    • 2.8.3 - Moved the skill version from the unsupported top-level frontmatter key to metadata.version for Agent Skills and Claude compatibility. No change to the 33 patterns.
    • 2.8.2 - Replaced the full before/after example with a first-person Lisbon trip recap. The after now keeps the same topic, perspective, and rough length as the before while removing the AI tells without becoming clipped or slogan-like. No change to the 33 patterns.
    • 2.8.1 - Added cross-agent installation docs, optional Claude Code plugin packaging, and a compact secondhand-text false-positive guard. No change to the 33 patterns.
    • 2.8.0 - Added style/cadence patterns #31-33 for manufactured punchlines, aphorism formulas, and conversational rhetorical openers; expanded #20 to catch offer-to-continue chatbot closers. 33 patterns total.
    • 2.7.0 - Added pattern #30 (diff-anchored writing); made em/en dashes a hard cut rather than "overuse"; expanded #21 to cover speculative gap-filling ("maintains a low profile"). 30 patterns total.
    • 2.6.0 - Cleanup pass: consolidated the duplicated workflow sections, gated the personality guidance to content where voice is wanted, removed the model-fingerprinting subsection, and condensed the worked example. No change to the 29 patterns.
    • 2.5.1 - Added a passive-voice / subjectless-fragment rule, raising the total to 29 patterns
    • 2.5.0 - Added patterns for persuasive framing, signposting, and fragmented headers; expanded negative parallelisms to cover tailing negations; tightened wording around em dash overuse; fixed frontmatter wording to use "filler phrases"
    • 2.4.0 - Added voice calibration: match the user's personal writing style from samples
    • 2.3.0 - Added pattern #25: hyphenated word pair overuse
    • 2.2.0 - Added a final "obviously AI generated" audit + second-pass rewrite prompts
    • 2.1.1 - Fixed pattern #18 example (curly quotes vs straight quotes)
    • 2.1.0 - Added before/after examples for all 24 patterns
    • 2.0.0 - Complete rewrite based on raw Wikipedia article content
    • 1.0.0 - Initial release

    License

    MIT

    Discover Repositories

    Search across tracked repositories by name or description