npx claudepluginhub signalcompose/cviWant just this skill?
Then install: npx claudepluginhub u/[userId]/[slug]
This skill should be used when the user asks about "[VOICE] tag", "voice notification", "TTS settings", "speech rate", "voice language", "text-to-speech", or mentions CVI configuration. Also use this skill when completing tasks to provide voice notification summaries.
This skill uses the workspace's default tool permissions.
Voice Integration Guide
This skill provides guidance on using CVI (Claude Voice Integration) for voice notifications in Claude Code.
MANDATORY: Task Completion Pattern
Every task completion MUST follow this exact pattern:
[detailed task explanation...]
<use Skill tool: skill="cvi:speak" args="2-3 sentences explaining what was done">
CRITICAL: Use Skill tool, NOT text
- ❌ Do NOT write
/cvi:speak xxxas text - ✅ Use Skill tool with
skill="cvi:speak"andargs="your message" - ❌ Do NOT use [VOICE] tag - it's deprecated
Why Skill tool only (no [VOICE] tag)?
- The Skill result (
Speaking: ...) serves as the visible summary - Single source of truth - no duplication or mismatch
- Skill tool
/cvi:speak: Triggers macOS notification + Glass sound + voice
If you forget to use Skill tool:
- ❌ Stop hook will BLOCK your stop request
- ❌ No voice notification will play
- ❌ User will not hear task completion
Language Configuration
The summary language is controlled by VOICE_LANG in ~/.cvi/config:
| VOICE_LANG | Summary Language |
|---|---|
ja | Japanese: args="タスクが完了しました。..." |
en | English: args="Task completed successfully..." |
Important: Always check ~/.cvi/config before calling /cvi:speak.
When to Use /cvi:speak
✅ Always use when:
- File editing/creation completed
- Test execution completed
- Command execution completed
- Research/investigation completed
- Error resolution completed
- Any task completion
❌ Exception (no notification needed):
- When asking user questions/confirmations
Configuration Commands
| Command | Purpose |
|---|---|
/cvi | Enable/disable voice notifications |
/cvi:speed | Adjust speech rate (wpm) |
/cvi:lang | Set [VOICE] tag language (ja/en) |
/cvi:voice | Select voice for each language |
/cvi:auto | Enable language auto-detection |
/cvi:check | Diagnose setup issues |
/cvi:practice | Toggle English practice mode |
/cvi:speak | Directly speak text (bypasses Stop hook timing) |
Best Practices
- Be clear and informative: 2-3 sentences covering what was done and the outcome
- Convey what was accomplished: Focus on results, not process
- Match language setting: Always follow VOICE_LANG
- Avoid technical jargon: Use clear, simple language
Examples
English mode (VOICE_LANG=en):
<use Skill tool: skill="cvi:speak" args="Updated 3 configuration files. All tests passing.">
Japanese mode (VOICE_LANG=ja):
<use Skill tool: skill="cvi:speak" args="設定ファイルを3つ更新しました。テストは全て成功しています。">
English Practice Mode
When ENGLISH_PRACTICE=on in ~/.cvi/config:
If user input contains non-ASCII characters (Japanese, etc.):
- Show English equivalent:
> "English instruction" - Prompt:
your turn - Wait for user to repeat in English
- Then execute the instruction
Important clarifications:
- This mode affects USER prompts only, not Claude's response language
- Claude responds in the language set by Claude Code's
languagesetting - If user's English is unclear, ask for clarification before acting
- When user asks "How do you say X in English?", answer the question
Voice Notification with /cvi:speak
For task completion, use the Skill tool to call /cvi:speak:
[detailed task explanation...]
<use Skill tool: skill="cvi:speak" args="2-3 sentence summary">
CRITICAL: Do NOT write /cvi:speak as text. You MUST use the Skill tool.
This approach:
- Single source of truth: No [VOICE] tag duplication
- Visible summary: The Skill result (
Speaking: ...) is shown to user - Uses CVI settings: Language, voice, and speed settings are respected
- Includes all notifications: macOS notification, Glass sound, and voice
Important: The Stop hook will BLOCK if /cvi:speak is not called via Skill tool.
What /cvi:speak Does
When you call /cvi:speak <message>:
- Displays macOS notification with the message
- Plays Glass sound (completion indicator)
- Reads the message aloud using configured voice settings
All three happen together, providing a complete notification experience.
Fallback Behavior
If /cvi:speak is not called, the Stop hook will block and remind you to call it. Always use the Skill tool for task completion notifications.
Similar Skills
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.