Skip to content
Back to skills

1228 Patterns Fe9f2c1a

ASecurity

When performing actions that don't require user confirmation, use `wait_for_response=False` to speak while simultaneously executing other tools. This creates natural, flowing conversations.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
developmentpythonapi

Works with

  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 1228-patterns_fe9f2c1a --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 1228 Patterns Fe9f2c1a?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 1228 Patterns Fe9f2c1a
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-1228-patterns-fe9f2c1a/badge)](https://www.skillsdirectory.com/skills/tools-only-1228-patterns-fe9f2c1a)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Voicemode Conversation Patterns

## Parallel Operations Pattern (RECOMMENDED)

When performing actions that don't require user confirmation, use `wait_for_response=False` to speak while simultaneously executing other tools. This creates natural, flowing conversations.

### Pattern
```python
converse("Status update", wait_for_response=False)
# Immediately run other tools in parallel
```

The speech plays while your actions execute simultaneously.

### Benefits
- No dead air during operations
- User knows what's happening
- More natural conversation flow
- Better user experience

## Parallel Pattern Examples

### Search narration
```python
converse("Searching for that file", wait_for_response=False)
# Immediately execute:
Grep(pattern="function_name", output_mode="files_with_matches")
```

### Processing update
```python
converse("Analyzing the screenshot", wait_for_response=False)
# Immediately execute:
Read(file_path="/path/to/screenshot.png")
```

### Creation status
```python
converse("Creating that document now", wait_for_response=False)
# Immediately execute:
Write(file_path="/path/to/file.md", content="...")
```

### Quick confirmation
```python
converse("Done! The file is saved", wait_for_response=False)
# No wait needed for simple confirmations
```

## When to Use Parallel Pattern

✅ **Use parallel pattern for:**
- File operations (reading, writing, searching)
- Data processing (analysis, computation)
- Status updates during long operations
- Confirmations that don't need response

❌ **Don't use parallel pattern for:**
- Questions requiring answers
- Confirmations needing user approval
- Error messages needing acknowledgment
- End of conversation farewells (unless doing cleanup)

## Emotional Speech Pattern

Use OpenAI's `gpt-4o-mini-tts` model with `tts_instructions` for emotional context.

### Excitement
```python
converse(
    "We did it!",
    tts_model="gpt-4o-mini-tts",
    tts_instructions="Sound extremely excited and celebratory"
)
```

### Sadness
```python
converse(
    "I'm sorry for your loss",
    tts_model="gpt-4o-mini-tts",
    tts_instructions="Sound gentle and sympathetic"
)
```

### Urgency
```python
converse(
    "Watch out!",
    tts_model="gpt-4o-mini-tts",
    tts_instructions="Sound urgent and concerned"
)
```

### Humor
```python
converse(
    "That's hilarious!",
    tts_model="gpt-4o-mini-tts",
    tts_instructions="Sound amused and playful"
)
```

**Note:** Emotional speech uses OpenAI API and incurs costs (~$0.02/minute)

## Speed Control Pattern

Adjust speech rate for different contexts.

### Normal speed (default)
```python
converse("This is normal speed")
```

### Faster speech (quick updates)
```python
converse("This is faster speech", speed=1.5)
```

### Double speed (very rapid)
```python
converse("This is double speed", speed=2.0)
```

### Slower speech (emphasis/clarity)
```python
converse("This is slower speech", speed=0.8)
```

**Note:** Works with both OpenAI and Kokoro providers

## VAD Aggressiveness Pattern

Adjust Voice Activity Detection based on environment.

### Quiet room - capture all speech
```python
converse("Let's have a conversation", vad_aggressiveness=0)
```

### Normal home/office (default)
```python
converse("Tell me about your day")  # Uses default (2)
```

### Noisy cafe/outdoors
```python
converse("Can you hear me?", vad_aggressiveness=3)
```

### Balanced for most cases
```python
converse("How are you?", vad_aggressiveness=2)
```

**Remember:**
- Lower values (0-1) = more permissive, may detect non-speech
- Higher values (2-3) = more strict, may miss soft speech

## Skip TTS Pattern

Use text-only mode for faster development iterations.

### Fast iteration mode
```python
converse("Processing your request", skip_tts=True)  # Text only
```

### Important announcement (always voice)
```python
converse("Warning: System will restart", skip_tts=False)
```

### Quick confirmation
```python
converse("Done!", skip_tts=True, wait_for_response=False)
```

### Follow user preference (default)
```python
converse("Hello")  # Uses VOICEMODE_SKIP_TTS setting
```

## Multi-step Conversation Pattern

Handle complex multi-turn conversations.

### Ask follow-up questions
```python
# First question
response1 = converse("What would you like to do?")

# Process response and ask follow-up
if "edit" in response1.lower():
    response2 = converse("Which file should I edit?")
    # Continue based on response2
```

### Confirm before action
```python
converse("I'll delete all temporary files. Is that okay?")
# Wait for confirmation before proceeding
```

### Provide progress updates
```python
converse("Starting backup process", wait_for_response=False)
# Do first part
converse("50% complete", wait_for_response=False)
# Do second part
converse("Backup complete!", wait_for_response=False)
```

## Error Handling Pattern

Communicate errors clearly.

### Simple error
```python
try:
    # Some operation
    pass
except Exception as e:
    converse(f"I encountered an error: {str(e)}. Would you like me to try again?")
```

### Provide alternatives
```python
converse("I couldn't find that file. Would you like me to search in a different directory?")
```

### Request clarification
```python
converse("I found multiple files with that name. Which one did you mean?")
```

## See Also
- `voicemode-quickstart` - Basic usage examples
- `voicemode-parameters` - Full parameter reference
- `voicemode-troubleshooting` - Common issues

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.