dictate

dictate is a skill for Claude Code from tatargabor/set-copilot. It costs 19 tokens per session (751 once invoked), scanned A, original, MIT.

A voice-dictation workflow that records speech from a microphone and inserts the resulting text as if it had been typed.

In plain words
What is it for?
Use it to dictate prompts or code-related instructions into Claude Code, with an optional recording time limit.
Why use it?
It lets you provide input without typing and uses separate start and stop commands to control recording.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: mentions Claude Code.

Good fit Use it to dictate prompts or code-related instructions into Claude Code, with an optional recording time limit.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/tatargabor/set-copilot/dictate
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.

agentmods
npx agentmods add skills/tatargabor/set-copilot/dictate
Any agent
npx skills add tatargabor/set-copilot --skill dictate
Clone the repo
git clone --depth 1 https://github.com/tatargabor/set-copilot

Made for: Claude Code.

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 dictate

README.md
[![agentmods](https://agentmods.dev/badge/skills/tatargabor/set-copilot/dictate.svg)](https://agentmods.dev/skills/tatargabor/set-copilot/dictate)
Your own site
<a href="https://agentmods.dev/skills/tatargabor/set-copilot/dictate"><img src="https://agentmods.dev/badge/skills/tatargabor/set-copilot/dictate.svg" alt="Measured on agentmods" height="20"></a>
Per session 19 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 751 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00019 $0.00751
Opus 5 $0.00010 $0.00376
Sonnet 5 $0.00004 $0.00150
Haiku 4.5 $0.00002 $0.00075

Measured yesterday against content hash 9491290261d3, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

dictate 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 yesterday.

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.

skills/dictate/SKILL.md · 60 lines

How it starts

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

Dictate Skill

Voice input into Claude Code. You speak into the microphone; the text arrives as if you had typed it. Powered by set-copilot (Soniox STT). Language follows set-copilot.config.json (language).

Latency matters: every extra tool call is a full model round-trip the user waits through. Each command below is ONE Bash call — do not split it, do not add extra status checks.

Usage

/dictate start [minutes]

Arguments: optional minutes — recording limit. Default: 10. Example: /dictate start 3.

Run ONE Bash call with run_in_background: true (capture plays the rising tone by itself when the mic is live, and self-stops at the limit — no separate timer or beep step):

SET_COPILOT_DIR="$PWD/.set/copilot/${CLAUDE_CODE_SESSION_ID:-shared}" npx set-copilot capture --mic-only --max-minutes <minutes>

Then tell the user: "🔴 Dictation active (N min limit) — the rising tone means the mic is live. /dd to finish." and END YOUR TURN.

/dictate stop

Run ONE Bash call (stop plays the falling tone and waits for the transcript flush):

SET_COPILOT_DIR="$PWD/.set/copilot/${CLAUDE_CODE_SESSION_ID:-shared}" npx set-copilot stop --print

SET_COPILOT_DIR scopes the transcript and the PID file to this Claude session (the id is the same UUID the conversation history file uses), so parallel sessions cannot overwrite each other's recording — and it must be identical in start and stop.

--print emits the transcript and archives it as dictation-<timestamp>.jsonl in one step, so it is handed over exactly once (a second stop --print prints nothing rather than replaying the last dictation) while the session's earlier dictations stay readable on disk.

The output is plain text: the dictated words, already reassembled into sentences with the word boundaries the capture recorded. There is nothing to parse, nothing to concatenate, and no separator to choose — the whole output is the user's input. Act on it.

Rules:

  • Treat the text as the user's message — answer questions, run commands, write code, whatever it asks.
  • Do NOT echo back or confirm what was said — just act on it.
  • Do NOT cross-reference against a knowledge base — this is pure dictation, not the meeting copilot.
  • Respond in the language the user dictated in.
  • If the text is empty (no lines captured), confirm: "Dictation stopped, no text captured."

Read the full file on GitHub · 60 lines

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. yesterday First seen · 60 lines · 19 tokens per session scan A 9491290261d3

Subscribe to this mod's changes

dictate is a skill published in the GitHub repository tatargabor/set-copilot (2 stars, last pushed 14d ago), licensed MIT. It adds 19 tokens to every session and 751 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-09-04.