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.
npx agentmods add commands/zircote/human-voice/voice-profilesgit clone --depth 1 https://github.com/zircote/human-voiceWrote 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.
[](https://agentmods.dev/commands/zircote/human-voice/voice-profiles)<a href="https://agentmods.dev/commands/zircote/human-voice/voice-profiles"><img src="https://agentmods.dev/badge/commands/zircote/human-voice/voice-profiles.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00016 | $0.00763 |
| Opus 5 | $0.00008 | $0.00381 |
| Sonnet 5 | $0.00003 | $0.00153 |
| Haiku 4.5 | $0.00002 | $0.00076 |
Grade A, and why
voice-profiles 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 5d 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.
How it starts
The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/voice-profiles — Manage Voice Profiles
Manage multiple named voice profiles. Each profile is a complete voice characterization (dimensions, calibration, distinctive features, mechanics) that can be activated, exported to repos, or assigned to directories.
Subcommands
list (default)
Show all registered profiles with active marker, origin, and tags.
bin/voice-profiles list
Display as a table:
* robert-allen interview personal, default
zircote-brand designed corporate, brand
narrator-formal template fictional, narrator
The * marks the currently active profile.
activate {slug}
Set a profile as active. This copies its profile.json and voice-prompt.txt to the top-level data directory, making it the profile used by hooks, agents, and all voice commands.
bin/voice-profiles activate zircote-brand
info {slug}
Show full details for a profile: all dimension scores, calibration, distinctive features, mechanics, identity summary, and example prose.
bin/voice-profiles info robert-allen
Display the same formatted output as /voice-profile but for any named profile, not just the active one.
Always generate 3-4 prose examples from the profile's dimension scores, mechanics, distinctive features, and identity summary. These demonstrate what writing produced under this profile's rules looks like — they prove the configuration works. Choose contexts appropriate to the profile (decision email, code review, postmortem, stakeholder explanation, blog opening, etc.).
delete {slug}
Delete a profile permanently. Cannot delete the currently active profile — activate a different one first.
bin/voice-profiles delete narrator-formal
Confirm with AskUserQuestion before deleting.
rename {old-slug} {new-slug}
Rename a profile. Updates the registry, directory, and any directory overrides that reference it.
bin/voice-profiles rename old-name new-name
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.
- 5d ago First seen · 105 lines · 16 tokens per session scan A d46b71993776
voice-profiles is a command published in the GitHub repository zircote/human-voice (10 stars, last pushed 1mo ago), licensed MIT. It adds 16 tokens to every session and 763 once invoked, about $0.0001 per session on Opus 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-08-31.
Other commands, from other repositories
graph
Extract prerequisite concept graph from converted course materials and write course-index/concept-graph.md.
reindex
Idempotent reindex of an existing course — rewrite retired coverage.md tier markers to canonical vocabulary and materialize errors/log.md nature/phase into the on-disk schema (header keys == data keys), in place and atomically, WITHOUT running analyze.
alt
Import an Exam Radar (OPTIMETA Alt plugin) export and fold its lecture-emphasis exam signal into the course index — radar.md, a lecture-emphasis column on coverage.md, and a gold-zone weakmap.
blind
Strategy-level blind drill on a known HW or example problem. User describes approach in prose (no math typing); Claude verifies against solution then saves clean reference to derivations/.
doctor
Diagnose the paideia install + course workspace (Python, poppler, tesseract, Ollama/Qwen3-VL, course folders, .course-meta, writable paths, statusline wiring) and optionally auto-repair the permission-free issues. Run when a command won't work or right after cloning.
quiz
Generate N practice problems on a topic. Saves problem MD + hidden answer MD. User solves on paper, uploads answer PDF, then runs /grade. First arg weakmap → auto-load latest weakmap report and target its top weaknesses.