/voice-notes
Handle a voice note or audio attachment the hermit cannot read, and set up transcription when the operator wants it. Activates when a channel message carries an audio attachment (Telegram voice message, Discord voice-message.ogg), or on "can you understand voice notes",
Claude Code
$ npx -y skills add gtapps/hermitd --skill voice-notes --agent claude-code
Codex
$ npx skills add gtapps/hermitd --skill voice-notes -a codex -y
Cursor
$ npx skills add gtapps/hermitd --skill voice-notes -a cursor -y
Gemini CLI
$ npx skills add gtapps/hermitd --skill voice-notes -a gemini-cli -y
GitHub Copilot
$ npx skills add gtapps/hermitd --skill voice-notes -a github-copilot -y
OpenCode
$ npx skills add gtapps/hermitd --skill voice-notes -a opencode -y
Windsurf
$ npx skills add gtapps/hermitd --skill voice-notes -a windsurf -y
SKILL.md
voice-notes.SKILL.mdname: voice-notes
description: Transcribe and respond to voice notes. Activates when any channel message carries an audio attachment, or when asked to transcribe an inbound voice message.
Voice Notes
Voice-note transcription and transcript echoes are on by default. Handle the audio as the sender's message, and reply through the same channel's reply tool. Never include local file paths or shell commands in channel replies.
1. Download the attachment with that channel's own download tool. Keep it under that enabled channel's state directory. 2. Run the command below using the inbound tag's channel key, chat id and message id. Use Bash `timeout: 600000` and quote all argument values as shell arguments.
.hermit/bin/hermitd-run transcribe --file '<downloaded audio>' --channel '<channel key>' --chat '<chat id>' --message-id '<message id>'
3. Read the single JSON result and reply through that channel's reply tool:
- `ok`: act on `transcript` as that sender's message. Quote it first only if `echo` is `failed` or `unsupported`; otherwise the script already echoed it or the operator turned echoes off.
- `empty`: do not guess. Ask the sender to resend or type the message.
- `unavailable`: give one neutral line saying you could not transcribe the voice message, with no setup advice.
- `disabled`: acknowledge the voice note without guessing its content.
If argument validation returns an error, correct the invocation using the attachment and the inbound tag. Keep diagnostic paths and commands out of the chat.
Read more
name: voice-notes description: Transcribe and respond to voice notes. Activates when any channel message carries an audio attachment, or when asked to transcribe an inbound voice message.
Voice Notes
Voice-note transcription and transcript echoes are on by default. Handle the audio as the sender's message, and reply through the same channel's reply tool. Never include local file paths or shell commands in channel replies.
1. Download the attachment with that channel's own download tool. Keep it under that enabled channel's state directory. 2. Run the command below using the inbound tag's channel key, chat id and message id. Use Bash `timeout: 600000` and quote all argument values as shell arguments.
.hermit/bin/hermitd-run transcribe --file '<downloaded audio>' --channel '<channel key>' --chat '<chat id>' --message-id '<message id>'
3. Read the single JSON result and reply through that channel's reply tool:
- `ok`: act on `transcript` as that sender's message. Quote it first only if `echo` is `failed` or `unsupported`; otherwise the script already echoed it or the operator turned echoes off.
- `empty`: do not guess. Ask the sender to resend or type the message.
- `unavailable`: give one neutral line saying you could not transcribe the voice message, with no setup advice.
- `disabled`: acknowledge the voice note without guessing its content.
If argument validation returns an error, correct the invocation using the attachment and the inbound tag. Keep diagnostic paths and commands out of the chat.
Run an always-on Claude Code agent on your own machine, for you or your team. Start sessions from your chat in any project it can reach, on the model and effort you choose, and steer them through the agent or take over in the Claude app or CLI.
Other skills on hermitd.
More skills from other plugins.
browser-use
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…
Questions about voice-notes.
- Which coding agents can use voice-notes?
- voice-notes installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

