cd /news/ai-tools/39-humanizer-for-anyone-under-40-who… · home › topics › ai-tools › article
[ARTICLE · art-154913] src=github.com ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

39-humanizer, for anyone under 40 who would rather not sound like a bot

A Claude plugin called 39-humanizer rewrites or writes prose so it reads as though one person chose every word for one reader, while preserving every number, identifier, citation, caveat and claim strength exactly as given. The plugin's README, written with the skill loaded, states that it treats vagueness — rounding numbers, dropping caveats, swapping exact terms for friendlier ones — as a bug, and draws its essay voice from a close reading of Shashi Tharoor's essays. The README's examples show the plugin converting a boilerplate Indian Railways paragraph, a vague commit message and an abstract sentence into tighter prose that keeps figures such as 23 million daily passengers and 68,000 kilometres of track.

read14 min views1 publishedOct 21, 2026
39-humanizer, for anyone under 40 who would rather not sound like a bot
Image: Michielbdejong (auto-discovered)

Note

Claude wrote this README with the 39-humanizer skill loaded, so the prose you are reading is itself a sample of the plugin's output. Present tense describes what the plugin does today, and future tense marks plans.

39-humanizer is a Claude plugin that rewrites or writes prose so it reads as though one person chose every word for one reader.

The easiest way to make text sound human is to make it vague: round the number, drop the caveat, swap the exact term for a friendlier one. 39-humanizer treats that as a bug (pattern 29 below). It keeps every number, identifier, citation, caveat, and claim strength exactly as given, so an engineer can hand it a design doc and a scientist an abstract and get back the same facts in better sentences. Everything else (essays, posts, emails, speeches) gets a voice of its own, drawn from a close reading of Shashi Tharoor's essays: plain by default, ornate only where a fact can bear the weight.

Thirty-nine is the last birthday at which a profile can still call you young without anyone checking. You are too old for the thirty-under-thirty lists and still eligible for the forty-under-forty ones, which is the industry's way of saying it has not given up on you yet.

The 39 in the name is that person, whatever the passport says: an engineer, scientist, or artist young enough to speak the next generation's language (and not too proud to ask what its newest word means), old enough to have outlived a few hype cycles, and still grinding anyway, shipping the build and rewriting the grant long after the launch party has ended. People like that are making things that deserve to be heard. They cannot afford to sound like a chatbot, because nobody reads AI text anymore. They skim it, hunting for the one sentence a person wrote.

If this README ever opens with "In today's fast-paced world", the plugin has turned forty.

An essay paragraph:

Indian Railways is not just a transportation network; it's the lifeline of the nation. Spanning over 68,000 kilometres of track and carrying more than 23 million passengers every day, it stands as a testament to India's enduring spirit of unity. From bustling metropolises to remote villages, it connects diverse communities, fosters economic growth, and showcases the rich tapestry of Indian culture. As India continues to modernize, the future of Indian Railways looks brighter than ever.

becomes

Every day, Indian Railways carries more than 23 million passengers over some 68,000 kilometres of track. Call it the nation's lifeline if you must, but the cliché undersells it: a lifeline carries one thing in one direction, and this network carries everyone, everywhere, and frequently all at once in the same compartment. It joins the metropolis to the village, and in doing so it does more for the economy, and for the idea of one country, than most of the speeches made about either. Whether modernisation will brighten its future is a question best put to a passenger on a platform at two in the morning, listening to the announcer explain, with exquisite courtesy, that the train is running late.

A commit message, written from a diff that wraps s3.put_object in three attempts with a random, growing delay and retries only on HTTP 503:

This commit enhances the upload logic to improve robustness and ensure a seamless user experience.

becomes

Retry S3 uploads on 503 with jittered backoff

Call put_object up to three times when S3 returns 503, sleeping a random, growing delay between attempts, so one throttled request does not fail the upload.

A sentence from an abstract:

This study delves into the multifaceted role of gut microbiota in depression by comparing 16S rRNA profiles of 120 patients and 118 matched controls, shedding light on novel therapeutic avenues.

becomes

We compared 16S rRNA profiles from 120 patients with depression and 118 matched controls to see whether their gut microbiota differ, a question that bears on possible treatments.

The 23 million passengers, the 503, the three attempts, and the 120 patients and 118 controls all survive. Only the packaging changes.

39-humanizer writes for human readers. It promises no verdict from any AI detector, and it never resorts to swapped characters, planted typos, or paraphrase churn, which damage the text and fool no careful reader.

The repository is its own plugin marketplace, so there is nothing to register with first. In a Claude Code session:

/plugin marketplace add OmShiv/39-humanizer
/plugin install 39-humanizer@39-humanizer

The first command clones this repository and reads its catalog, .claude-plugin/marketplace.json, and the second installs the plugin from it. From a shell, one command does both:

claude plugin install 39-humanizer --marketplace OmShiv/39-humanizer

Run /reload-plugins in any session that was already open. To update later, run claude plugin marketplace update 39-humanizer, then claude plugin update 39-humanizer@39-humanizer, and restart.

Download 39-humanizer.zip from the latest release and upload it as a skill in Claude's settings. Anthropic's guide to skills shows where. The checker runs there only when code execution is on, and the skill works without it. To build the ZIP yourself, run python3 scripts/build-zip.py, which writes dist/39-humanizer.zip.

Codex reads the same marketplace:

codex plugin marketplace add OmShiv/39-humanizer
codex plugin add 39-humanizer@39-humanizer

Then mention $39-humanizer in a prompt. This works with Codex CLI 0.163.0, checker included. To pick up a new release, refresh the marketplace with codex plugin marketplace upgrade 39-humanizer and run the add command again.

The skill follows the open Agent Skills format, which ChatGPT's skills also build on. It has not been tested in ChatGPT yet, and a report either way is welcome.

/39-humanizer:39-humanizer

[paste text]

Or ask in plain words:

Humanize this abstract: [text]
Rewrite the prose in docs/design.md so it reads less like AI.
Write a 600-word op-ed on why cities should fund libraries.
Review this PR description for AI tells, but don't rewrite it.

You get the final text first, then a note of at most five lines with only what you need to act on: a figure to confirm, a claim it changed and why, or a detail the text did not have. Ask it to "show the work" to see the draft and the remaining tells as well.

To keep your own voice, include two or three paragraphs of your writing. The sample overrides the default voice, dashes included.

39-humanizer builds on Humanizer by blader and on Wikipedia's Signs of AI writing. On top of their catalog of tells, it:

  • detects the register (general, technical, scientific, or mixed) and loads the rules for it, so you never pick a mode.
  • lists every number, unit, identifier, code span, equation, citation, statistical result, caveat, and hedge before editing, then checks that each one survived.
  • treats simplifying by deletion as a pattern to fix, because readability should come from structure, not from losing a caveat.
  • reads the diff when it writes a commit message or PR description, and states the real mechanism instead of "improves robustness".
  • applies five scientific patterns drawn from studies of LLM vocabulary in PubMed and arXiv abstracts and in peer reviews.
  • writes general prose in a voice built from the 49 essays judged human out of 59 read, with measured sentence rhythm and punctuation, and rules that keep ornament honest.
  • ships a checker that reports tells with line numbers and measures sentence-length variation, punctuation, and stock-word rates, using only the Python standard library.
  • writes from scratch as well as rewriting, and marks any fact it could not verify as [check: ...] instead of guessing.

A language model writes the most probable continuation for the widest range of readers, so it reaches for the safe word, the familiar shape, and an emphasis that would fit any subject. The evidence agrees that detectors respond to predictable wording, not to the subject. In a 2023 study, richer word choice cut false AI flags on non-native writers' essays from 61% to 12%. The LLM-era shift in biomedical abstracts is in style words, mostly verbs and adjectives. And once delve became a known tell, its use fell while other model-favored words kept rising, so structure matters more than any word list.

The skill works in five steps: read the situation (task, register, voice source, and the list of facts that must survive), mark the tells, draft, audit the draft against the original, and return. The evidence, with sources, is in references/detectors.md and references/scientific.md.

Register Typical text Voice
General Essays, op-eds, posts, speeches, letters, emails, bios The 39 voice, at full strength scaled to the genre
Technical Docs, READMEs, design docs, PRs, commits, comments, runbooks, postmortems Plain and exact
Scientific Papers, abstracts, theses, grants, peer reviews Claim first, hedged to the evidence
Mixed Popular science, engineering blogs, talks The voice for the story, the register's rules for every technical sentence

Patterns 1 to 5 justify an edit on one sighting. Patterns marked weak alone in the skill count only when other tells share the passage.

# Pattern Example Fix
1 Not X but Y "It's not a tooling problem. It's a culture problem." State the point. Keep a contrast only against a real belief
2 One-line closers and dramatic fragments "No more waiting. No more guessing. Just shipping." Cut it, or merge into one specific claim
3 Sayings that sound deep "Trust is the currency of every team." Replace with the specific claim
4 Staged run-ups "Here's the thing:" Cut the run-up
5 Answering an objection nobody raised "To be clear, I'm not saying..." Cut the defense
# Pattern Example Fix
6 Forced triads "empowers developers, accelerates delivery, and drives innovation" Use the number of items the meaning has
7 Uniform rhythm Four sentences of fifteen words each Let meaning set the length
8 Repeated sentence openings "She reviewed... She found... She restarted..." Merge or change the subject
9 Dashes and semicolons as all-purpose connectors A dash or a semicolon between every pair of clauses A period, a comma with and or but, or a colon
10 Signposting and stacked transitions "Additionally... Furthermore... It is important to note..." Let the logic connect, with but, so, or because
11 Stacked qualifiers "could potentially possibly" One hedge, where the evidence needs it
# Pattern Example Fix
12 Stock AI vocabulary "delves into the intricate interplay" The plain or the specific word
13 Generic wording where a specific word exists "Various factors played a significant role" Name the factors
14 Inflated significance "marking a pivotal moment" Keep the fact, drop the significance
15 Sales language "nestled in the heart of" Say what the thing is
16 Borrowed authority and vague association "Studies show..." Name the source and what it found
17 Avoiding is, are, and has "serves as... boasts..." "is... has"
# Pattern Example Fix
18 Bold labels and decorative bold " Performance: Performance improved" Remove the bold and write prose
19 Decorative headings and structure for its own sake "## 🚀 Getting Started With The API" Sentence case, no emoji, paragraphs for reasoning
20 Curly quotation marks Curly quotes in Markdown Match the target format
# Pattern Example Fix
21 Chatbot residue "Great question! ... I hope this helps!" Remove the wrapper
22 Knowledge-limit disclaimers and guesses "While specific details are limited..." State what the source shows
23 Writing about the document instead of its subject "The table below shows..." Describe the subject
# Pattern Example Fix
24 Re-explaining what the reader knows A reply that rebuilds the diagnosis before the decision Lead with the decision
# Pattern Example Fix
25 Marketing voice in engineering text "seamlessly integrates, blazing fast" Keep the measurable fact
26 Claims with no measurement "significantly improves performance" Give the number, or ask for it
27 Narrating code and changes "This PR introduces..." State the mechanism from the diff
28 Changing the term for one concept worker, node, executor for one thing One term, repeated
29 Flattened complexity Dropping a caveat to sound simpler Keep the hard part and add a gloss
30 Template sections with nothing in them "## Key Takeaways" Cut it, or fill it with real content
# Pattern Example Fix
31 Stock research phrasing "sheds light on, paves the way" Say what was done or found
32 Grand openings "In recent years, X has garnered significant attention" Start from the problem
33 "Significant" without a test "a significant improvement (61 to 68)" Use it only with the test, otherwise the number
34 Miscalibrated hedging "clearly demonstrates" from a survey Match the claim to the design, and say so
35 Generic limitations and future work "Further studies are needed" Name the limitation from the design
python3 skills/39-humanizer/scripts/check.py draft.md
python3 skills/39-humanizer/scripts/check.py - < draft.txt
python3 skills/39-humanizer/scripts/check.py draft.md --json

It skips front matter, fenced code, inline code, URLs, and link targets, and each hit names a pattern id from the skill. On a sample of Shashi Tharoor's essays, the ones judged human had a median sentence-length variation of 0.54 and 0.3 stock words per 1,000. The four judged AI-assisted had 0.41 and 5.3. A hit is a prompt to look, not a verdict.

The evals/ directory holds five cases: an essay paragraph, a commit message from a diff, a journal abstract, a design-doc paragraph that must keep its caveats, and a causal claim on cross-sectional data. claude plugin eval runs each case twice with the plugin and twice without, and graders score both. In the latest run (October 2026, Claude Opus 5.5):

Case With the plugin Without
Journal abstract 1.0 0.75
Commit message from a diff 1.0 1.0
Design doc that must keep its caveats 1.0 1.0
Causal claim on survey data 1.0 1.0
Essay paragraph 0.5 0.5

Plain Claude is already careful with facts, so the gain is modest and shows mostly on the abstract. Neither arm passes the essay case: the judge counts implied facts against a witty rewrite, and once the filler is gone there is little left to be witty about. Five cases are a smoke test, not a benchmark.

python3 scripts/validate.py   # package, numbering, word budgets, no dashes in prose
claude plugin validate .
claude plugin eval . --no-publish --allow-tools Skill Read 'Bash(python3:*)'
python3 scripts/build-zip.py

Keep the --allow-tools grant: without it, the eval sandbox denies the Skill tool, the runs that should use the plugin rewrite by hand instead, and the comparison measures plain Claude against itself. AGENTS.md has the rules for changing the skill. Issues and pull requests are welcome.

  • Humanizer by blader (MIT) and Wikipedia'sSigns of AI writing (WikiProject AI Cleanup) are the base for the general patterns.
  • Kobak et al. (Science Advances, 2025), Liang et al. (2024, two studies), Juzek and Ward (COLING 2025), and Geng and Trotta (Findings of ACL 2025) supply the scientific vocabulary evidence.
  • DetectGPT, Fast-DetectGPT, Binoculars, the Pangram report, Kirchenbauer et al., Weber-Wulff et al., Krishna et al., Sadasivan et al., and Liang et al. (Patterns, 2023) supply the detector evidence. Full citations are in references/detectors.md .
  • The 39 voice draws on Shashi Tharoor's essays at shashitharoor.in . It is a style in their spirit, not an imitation, and nothing it writes is presented as his. This project is not affiliated with or endorsed by Dr. Tharoor.

The research/ folder holds the reports behind the rules: the verified detector findings, the checks of the vocabulary studies and of detector internals, and the full analysis of 59 Tharoor essays. The skill does not load them.

MIT. See LICENSE.

── more in #ai-tools 4 stories · sorted by recency
── more on @39-humanizer 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/39-humanizer-for-any…] indexed:0 read:14min 2026-10-21 · —