How Humanizer Supports Voice Matching: A Complete Technical Guide

Humanizer supports voice matching by analyzing a user-provided writing sample to extract rhythm, stylistic cues, and punctuation preferences, then applying those patterns to rewrite AI-generated text while overriding default rule-based constraints.

The blader/humanizer repository provides a skill-based agent that transforms robotic AI output into natural human prose. One of its most powerful features is Humanizer voice matching, which allows the tool to mimic the cadence, vocabulary, and punctuation habits of a specific writer by processing a short sample of their existing work.

How Voice Matching Works in Humanizer

The voice matching system operates through a three-stage pipeline defined in the project's SKILL.md file. According to the source code, the agent parses the "Voice" block (lines 40-45) at runtime to establish a temporary context that guides all subsequent rewrite operations.

User-Provided Writing Samples

The process begins when you supply a 2-3 paragraph sample of your own writing. As documented in README.md (lines 50-64), Humanizer reads this sample before processing the target text. The system infers sentence length distributions, preferred word choices, punctuation styles, opening patterns, and transition habits directly from this input.

Voice Profile Construction

Once ingested, the sample undergoes pre-processing described in SKILL.md (lines 40-45). The agent extracts rhythmic and stylistic cues, building a voice profile that captures the writer's unique cadence—including specific quirks like the use of em-dashes or sentence fragments. This profile temporarily overrides the default pattern-based rules stored in the agent's context.

Pattern Rule Integration

The voice profile dynamically modifies how pattern rules are applied. For instance, SKILL.md (lines 61-63) contains a rule that normally suppresses dashes; however, when the voice profile indicates the writer uses dashes frequently, this rule is automatically relaxed. The rewrite engine consults the temporary context before applying any stylistic constraints, ensuring the output mirrors the sample's punctuation habits rather than enforcing generic defaults.

Voice Matching Architecture and Implementation

Understanding the internal implementation requires examining three key files that define the behavior of the Humanizer agent.

The SKILL.md Voice Block

The core logic resides in SKILL.md at the ### Voice section (line 40). This block functions as a pre-processing directive: the agent extracts the sample, constructs the voice profile, and stores it in temporary context before any rewrite operations begin. Subsequent checks for "Forced triads" or "Dashes as the universal connector" consult this context to determine whether to apply or skip specific transformations.

Context-Aware Pattern Checking

The architecture treats voice matching as a context layer that sits between the input parser and the rewrite engine. When processing text, the pattern checker (lines 61-63) first queries the temporary context. If the voice profile indicates the user prefers dashes, the dash-removal rule is bypassed even though it would normally execute. This allows the system to respect user preferences while maintaining its base style guidelines defined in AGENTS.md.

Practical Examples of Humanizer Voice Matching

You can invoke voice matching through multiple interfaces depending on your workflow.

Interactive Chat Mode

The simplest method uses the standard chat interface documented in README.md (lines 50-64):

/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‑generated text to humanize ]

CLI Installation and Invocation

First install the skill globally:

npx skills add blader/humanizer --global

Then invoke the interactive mode:

humanizer

When prompted, paste your personal writing sample first, followed by the AI-generated content. The tool will generate a rewrite that follows your established rhythm and punctuation patterns.

File-Based Processing

For batch operations on existing documents:

humanizer docs/guide.md

In this mode, Humanizer reads the target file, then prompts you for a voice sample before executing the rewrite. This preserves your existing content's factual accuracy while overlaying your personal stylistic fingerprint.

Summary

  • Humanizer voice matching analyzes user-provided writing samples to extract cadence, vocabulary, and punctuation preferences.
  • The system builds a temporary voice profile from the sample, overriding default rules like dash suppression found in SKILL.md (lines 61-63).
  • The "Voice" block in SKILL.md (lines 40-45) establishes a pre-processing pipeline that stores stylistic cues in temporary context.
  • Pattern rules consult this context before execution, allowing user preferences to take precedence over generic style guidelines from AGENTS.md.
  • You can activate voice matching through interactive chat, direct CLI invocation, or file-mode processing.

Frequently Asked Questions

What file contains the voice matching logic in Humanizer?

The voice matching implementation resides primarily in SKILL.md at lines 40-45, where the ### Voice block defines how the agent extracts rhythm and stylistic cues from user samples. The integration logic that consults this voice profile appears at lines 61-63, which modifies how punctuation rules like dash handling are applied.

How does Humanizer handle conflicting style rules when voice matching is active?

When voice matching is active, the temporary voice profile built from your sample takes precedence over default pattern rules. As implemented in SKILL.md, the pattern checker consults the voice context before applying transformations; if your sample uses dashes or specific sentence structures, the agent relaxes conflicting rules like the dash-removal directive (lines 61-63) to preserve your preferred style.

Can I use voice matching with files in Humanizer?

Yes, Humanizer supports file-based voice matching. When you run humanizer docs/guide.md, the system reads the target file and then prompts you to provide a writing sample. It constructs the voice profile from your input and applies it to the file content, rewriting the text to match your cadence while preserving the original factual content.

Where does Humanizer store the default style guidelines?

Default style guidelines that apply when no voice sample is provided are documented in AGENTS.md. This file contains rules such as "Use common words and active voice" that serve as fallbacks. When you provide a writing sample for voice matching, these defaults are overridden by the temporary voice profile constructed during the pre-processing phase.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →