dhh-voice

dhh-voice is a skill for Claude Code from jpeslar1/john-peslar-ai-skills. It costs 289 tokens per session (4,101 once invoked), scanned A, original, MIT.

A writing guide based on David Heinemeier Hansson’s published style. It describes how to write strongly argued essays about software development, business, and technology.

In plain words
What is it for?
Use it for engineering-founder essays, build-in-public updates, and arguments about software tools, costs, or development practices.
Why use it?
It helps shape opinionated writing around evidence, clear claims, and direct disagreement. It is useful when a technical or founder update needs a firm point of view.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: positional $N argument.

Part of the voice-dna plugin — 79 skills shipped together

Good fit Use it for engineering-founder essays, build-in-public updates, and arguments about software tools, costs, or development practices.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/jpeslar1/john-peslar-ai-skills/dhh-voice
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add jpeslar1/john-peslar-ai-skills --skill dhh-voice
Clone the repo
git clone --depth 1 https://github.com/jpeslar1/john-peslar-ai-skills

Made for: Claude Code.

Or install voice-dna, the plugin that ships this one along with the rest of its 79 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for dhh-voice

README.md
[![agentmods](https://agentmods.dev/badge/skills/jpeslar1/john-peslar-ai-skills/dhh-voice/github.svg)](https://agentmods.dev/skills/jpeslar1/john-peslar-ai-skills/dhh-voice)
Your own site
<a href="https://agentmods.dev/skills/jpeslar1/john-peslar-ai-skills/dhh-voice"><img src="https://agentmods.dev/badge/skills/jpeslar1/john-peslar-ai-skills/dhh-voice/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for dhh-voice

Your own site · 80×15
<a href="https://agentmods.dev/skills/jpeslar1/john-peslar-ai-skills/dhh-voice"><img src="https://agentmods.dev/badge/skills/jpeslar1/john-peslar-ai-skills/dhh-voice.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 289 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 4,101 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00289 $0.04101
Opus 5.5 $0.00116 $0.01640
Sonnet 5.5 $0.00058 $0.00820
Haiku 4.5 $0.00029 $0.00410

Measured 17d ago against content hash 97e32b72227f, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

dhh-voice scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 17d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

dhh-voice/SKILL.md · 165 lines

How it starts

The opening of the file, as written. The whole thing — 165 lines — stays where its author put it; the contents beside it link to each section on GitHub.

DHH (David Heinemeier Hansson) Voice DNA

DHH is the polemicist of the 37signals house: the Rails creator who writes short, hot essays on HEY World that open on a receipt (90% to 1%, $1.5 million a year, half a million dollars of servers), state a thesis as if the argument were already over ("Rails is omakase." / "Paradise is not lost, the world is not ending"), run one metaphor to the final line, and close with a dare or a blessing. He swears, he says "Nay," he uses exclamation marks, and he argues against a strawman quoted in the opponent's own voice. Where Jason Fried lowers the temperature, DHH raises it, with the same conviction underneath. Ground every output in references/voice-corpus.md (verbatim excerpts) and references/source-map.md (sources and refresh notes).

Voice DNA

Cadence and rhythm

  • A 25-35 word setup sentence, then a 2-6 word punch: "Technological advancement has always rendered some jobs unnecessary. That is literally the progress!" / "Bzzzzzzzzt!! Wrong!"
  • Median sentence around 16 words with a wide spread; paragraphs are 2-5 sentences; the closing paragraph is one or two lines.
  • Opens cold on a fact or a thesis, no throat-clearing: "In the 18th century, 90% of Americans worked in agriculture to feed themselves and the nation. Today, it's around 1%."
  • Rhetorical questions in about a quarter of paragraphs, answered within a line: "Do you know how many insanely beefy servers you could purchase on a budget of half a million dollars per year?"
  • Spoken (Lex Fridman #474, documented ASR): the same verdict-first answers ("It's a disaster.", "100% that's true.") but longer chained sentences, a steelman then "Now, I don't buy that.", and casual profanity ("God damn it").
  • Native length: a 300-900 word HEY World post; the long-form essay (omakase, the monolith, the cloud exit) runs 1,500-2,500 words with the same rhythm; X posts are 2-4 sentences in the same voice.

Hook patterns

  1. The dated receipt - a number with a century or a year attached in sentence one: "In the 18th century, 90% of Americans worked in agriculture... Today, it's around 1%." Deploy as the first line of any progress, economics, or technology argument.
  2. The settled thesis - state the conclusion as already decided: "Rails is omakase." / "Paradise is not lost, the world is not ending, and most material metrics of humanity have never been better." Deploy as the opener of a contrarian post, before any evidence.
  3. The scene from my week - "Two weeks ago at Rails World, I told my fellow programmers that it's time to put down the pencils." Deploy to open a piece that reports a position the writer has already taken in public.
  4. The quoted strawman - give the opponent's line in their own voice, then flatten it: "'But my opinion is as valid as yours!'. No, really, it's not." Deploy mid-argument to clear the standard objection.
  5. The category error - "If you're stuck at 'AI is just another tool', you're making a category error." Deploy to reframe a debate by naming the wrong frame first.
  6. The inverted epigram - Orwell bent to the subject: "See, all programmers are equal, but some programmers are more equal than others." Deploy once per piece, to mock a gatekeeping consensus.

Read the full file on GitHub · 165 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 17d ago Changed · +1 lines 97e32b72227f
  2. 18d ago First seen · 164 lines · 289 tokens per session scan A f7dddf6a2751

Subscribe to this mod's changes

dhh-voice is a skill published in the GitHub repository jpeslar1/john-peslar-ai-skills (12 stars, last pushed 18d ago), licensed MIT. It adds 289 tokens to every session and 4,101 once invoked, about $0.0012 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-19.

Related

dhh-voice compared with skills from other repositories

dhh-voice next to 6 skills from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
dhh-voicejpeslar1/john-peslar-ai-skillsSkill1218d agoMITA289Claude Code
imagegenopenai/codexSkill133kyesterdayApache-2.0A113Codex
playwright-climicrosoft/playwrightSkill99kyesterdayApache-2.0A19Claude Code
local-ai-agentsmicrosoft/ai-agents-for-beginnersSkill79k4d agoMITA200Claude Code, Codex
systematic-debuggingobra/superpowersSkill313k3d agoMITA21Claude Code
next-cache-components-adoptionvercel/next.jsSkill143kyesterdayMITA95Claude Code
next-partial-prefetching-adoptionvercel/next.jsSkill143kyesterdayMITA103Claude Code