about
Show the plugin source — name, version, and repo URL. Works from CLI or messaging. Triggers on /about, /version, /agent:about, /agent:version, "qué versión",…
Voice — text-to-speech and transcription. Triggers on /agent:voice, /agent:voice status, /agent:voice setup, /agent:voice test, "configurar voz", "prueba voz", "voice setup", "speak this", "read this aloud", "transcribe audio".
$ npx -y skills add crisandrews/ClawCode --skill voice --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/voiceContext preview
The summary Claude sees to decide when to auto-load this skill.
Voice — text-to-speech and transcription. Triggers on /agent:voice, /agent:voice status, /agent:voice setup, /agent:voice test, "configurar voz", "prueba voz", "voice setup", "speak this", "read this aloud", "transcribe audio".
name: voice description: Voice — text-to-speech and transcription. Triggers on /agent:voice, /agent:voice status, /agent:voice setup, /agent:voice test, "configurar voz", "prueba voz", "voice setup", "speak this", "read this aloud", "transcribe audio". user-invocable: true argument-hint: status|setup|test
Set up and test the agent's voice backends. Voice is OPTIONAL — off by default. See `docs/voice.md` for the full reference including channel-plugin precedence.
| User says | Action | |---|---| | `/agent:voice` (no arg) or `/agent:voice status` | Call `voice_status` and print the card | | `/agent:voice setup` | Guided setup (see flow below) | | `/agent:voice test` | Call `voice_speak({ text: "Hola, soy <name>. Esta es una prueba.", ... })` using the user's language, report the path |
The agent invokes `voice_speak` / `voice_transcribe` directly when it needs to produce or consume audio during regular conversation. This skill is only for setup and diagnostics.
1. **Call `voice_status({ format: "json" })`** to see current state. 2. **If no TTS backend is available**, suggest in order of preference:
3. **If sag is installed but `ELEVENLABS_API_KEY` is missing**, instruct: *"Get a key from https://elevenlabs.io. Add `export ELEVENLABS_API_KEY=sk_...` to your shell rc. Restart the agent."* 4. **If the user also wants STT**, same logic: recommend `whisper-cli` (brew install whisper-cpp, offline, free) or OpenAI Whisper API (same OPENAI_API_KEY). 5. **Enable voice** in config:
6. **If the `sag` skill is in an OpenClaw workspace** (`~/.openclaw/workspace*/skills/sag/`), offer: *"I see you have the `sag` skill in an OpenClaw workspace. Want me to install it into this agent? Run `/agent:skill install <that path>`."* 7. **Mention WhatsApp precedence** if the WhatsApp plugin is configured:
1. Call `voice_status` to confirm voice is enabled AND a backend is available. If not, redirect to setup. 2. Call `voice_speak({ text: "<greeting in user's language>" })`. 3. Print the result: *"Generated at `/tmp/...` using backend X. Play it or attach it in a messaging channel."* 4. If the user is on a messaging channel that supports media, use the channel's own reply/send tool with the path (e.g. `MEDIA:/tmp/...` or a dedicated `send_media` tool).
Never put API keys in `agent-config.json`. They are SECRETS and the config file may end up in a git repo. Use environment variables:
export ELEVENLABS_API_KEY=sk_... export OPENAI_API_KEY=sk-...
Add them to `~/.zshrc` / `~/.bashrc` / `~/.config/fish/config.fish` for persistence.
Non-secret settings (default backend, voice ID, output dir) go in `agent-config.json`.
A channel plugin that already transcribes audio (like the WhatsApp plugin with `audio on`) is authoritative for THAT channel. Do not call `voice_transcribe` on an audio file that arrived through such a plugin — you'd just be re-doing work the plugin already did, and you'd end up with two different transcriptions.
`voice_transcribe` is for:
Persistent agents for Claude Code as a plugin, not a harness. Memory, personality, messaging across WhatsApp, Telegram, and Discord, plus a service mode for 24/7 runs. Imports from OpenClaw.
Show the plugin source — name, version, and repo URL. Works from CLI or messaging. Triggers on /about, /version, /agent:about, /agent:version, "qué versión",…
Show messaging channel status (WhatsApp, Telegram, Discord, iMessage, Slack, Fakechat) and the launch command to load them. Triggers on /agent:channels,…
Flush important session context to daily log (manual memory flush). Does NOT invoke native /compact. Triggers on /compact, /agent:compact, /flush, "guarda…
Create a new agent in the current directory with personality files and bootstrap ritual. Triggers on /agent:create, "crear agente", "nuevo agente", "new…
Manage scheduled reminders (crons) — list, add, delete, pause, resume, reconcile, or import from OpenClaw. Triggers on /agent:crons, /agent:reminders; listing…
Run diagnostic checks on the agent workspace. Triggers on /agent:doctor, "diagnóstico", "diagnostico", "doctor", "health check", "agent health", "checkup",…