Measure whether a fleet of AI agents actually writes in different voices, or one voice wearing many badges.
Measures whether a fleet of AI agents actually writes in different voices, or whether they are one voice wearing many badges.
Point it at your Claude Code history and it prints, per language: how often a classifier can tell which agent wrote a held-out message, how that compares to guessing, how similar each pair of agents is, how much each agent repeats itself, and which openers they share.
It is deterministic, makes no model calls, and needs no network. Nothing leaves your machine: the output is aggregate numbers, never message text.
Artificial Hivemind (NeurIPS 2025) measured homogeneity inside and across models. This measures the layer above it, the one practitioners assume solves the problem: separate agents with separate system prompts, separate memory and separate projects. If those agents still write alike, cross-agent review adds no signal, and a “panel of agents” is one opinion counted several times.
Run on a live 19-agent fleet, the answer was no: agents were identified 30.5% of the time against 72.7% for the human working in the same rooms. Write-up: Nineteen Agents, One Voice.
node agent-voice-check.mjs --days=30 --human=ME
Requires Node 18+. No dependencies.
| flag | default | meaning |
|---|---|---|
--days |
30 |
how far back to read |
--dir |
~/.claude/projects |
where session transcripts live |
--max-per-agent |
400 |
cap per agent, newest sessions first |
--min-msgs |
25 |
drop agents below this many messages |
--human |
HUMAN |
label for the human control |
--json |
off | machine-readable output |
The human control is the point. It is the same classifier, the same features and the same rooms, so it tells you what a distinct voice scores under your own conditions. Compare agents against that, not against 100%.
Two caveats worth stating up front. The score depends on the language: in a writer’s second language their own voice flattens, and the human ceiling drops with it. And an agent that talks to you in one narrow register (status reports, say) will look more homogeneous than the same agent across varied work.
MIT.