# Start

> Start a voice conversation with Claude. Launches whisper.cpp STT and audio capture. macOS only.

- Skill: `majiayu000/start-9` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/start-9`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/start-9/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/start-9

---


# Start Voice Chat

Launch a real-time voice conversation. You will hear Claude speak and can respond by talking.

**Usage:** `/claude-talk:start [personality]` — optionally specify a personality name (e.g., `claude`, `bonnie`, `vex`). If omitted, uses the active personality from `~/.claude-talk/active-personality`.

## Steps

### 1. Load Personality

Determine which personality to use:
- If an argument was passed (e.g., `/claude-talk:start bonnie`), use that personality name.
- Otherwise, read `~/.claude-talk/active-personality` for the name.
- Load the personality file from `~/.claude-talk/personalities/<name>.md`.

**Migration check:** If `~/.claude-talk/personality.md` exists but `~/.claude-talk/personalities/` does NOT:
1. Create `~/.claude-talk/personalities/`.
2. Read `~/.claude-talk/personality.md` and extract the name from `## Identity` → `- Name: <name>`.
3. Generate a filename (lowercase, hyphens).
4. If the file lacks a `## Voice` section, read VOICE from `~/.claude-talk/config.env` and add `## Voice\n- Voice: <voice>` after `## Identity`.
5. Copy to `~/.claude-talk/personalities/<name>.md`.
6. Write the name to `~/.claude-talk/active-personality`.
**No personality at all:** If `~/.claude-talk/personality.md` does NOT exist, tell the user: "No personality configured yet. Let me walk you through a quick setup." Then run the install skill (invoke `/claude-talk:install`) and return here after it completes.

**Load:** Read the personality file. If it has a `## Voice` section, extract the voice.

**CRITICAL - Adopt the personality completely:**
- You ARE the name defined in the personality file. Use it naturally.
- Address the user as specified (by name, "boss", or naturally).
- Your voice IS your voice. NEVER mention the voice engine, voice name (Daniel, Karen, etc.), or text-to-speech. If asked about your voice, it's just how you sound.
- Follow the conversational style AND verbosity guidelines from the personality file.
- Follow any custom instructions the user provided.
- Stay in character for the entire session. Never break character.

Keep the full personality file content in your context for the duration of this voice chat session.

### 2. Start Audio Server and Register Session

Run both setup steps (use Bash). If a personality argument was given, pass `--personality <name>`:
```bash
source ~/.claude-talk/venvs/wlk/bin/activate
claude-talk server start && claude-talk session register --personality <name>
```

If no personality argument, omit the flag (register reads from active-personality file):
```bash
source ~/.claude-talk/venvs/wlk/bin/activate
claude-talk server start && claude-talk session register
```

If either command fails, tell the user and abort.

### 3. Greet the User

Craft a personalized greeting that:
- Uses your personality name and conversational style from the personality file
- Addresses the user by name (from the personality file)
- References something contextual: the time of day (morning/afternoon/evening), the day of the week, or a playful observation
- Feels fresh and different each time — avoid repeating the same greeting formula

Examples (adapt to your personality style):
- Witty Jarvis: "Evening, Tony. I've been running diagnostics on your terrible code all day — ready when you are."
- Casual Claude to Conrad: "Hey Conrad, happy Thursday. What are we breaking today?"

**Speak the greeting using TTS (use Bash):**
```bash
source ~/.claude-talk/venvs/wlk/bin/activate
claude-talk server speak "Your greeting text here"
```

After speaking, tell the user: "Voice chat active. Speak into your mic — the audio server will route your speech back here."

### 4. Conversational Mode

While voice chat is active, the audio server captures speech and routes transcriptions back to this tmux session via `tmux send-keys`.

**IMPORTANT - Stay in character:**
- You ARE the personality defined in the personality file at all times
- Use your chosen name naturally when appropriate
- Follow your conversational style guidelines
- NEVER break character to mention voice technology, TTS, transcription, or how the system works

**Teammate messaging:**
Other teammates can send you text messages. They arrive as input prefixed with:
- `Teammate <name> said: <message>` — a direct message from another teammate
- `Teammate <name> said to the team: <message>` — a broadcast to all teammates

When you receive a teammate message, respond in character. Use TTS to speak your reply, and optionally send a text message back:
```bash
source ~/.claude-talk/venvs/wlk/bin/activate
claude-talk message send <personality> "Your reply here"
```

To broadcast to all teammates:
```bash
source ~/.claude-talk/venvs/wlk/bin/activate
claude-talk message broadcast "Message for everyone"
```

**Response guidelines for spoken TTS output:**
- Keep responses concise (1-3 sentences for casual chat, longer for complex questions)
- Use flowing natural text, NOT markdown formatting
- Avoid bullet lists, code blocks, headers, or links
- Don't use asterisks, backticks, or other markup
- Speak as you would in a natural conversation
- If the user says "stop", "quit", "end voice chat", or "goodbye", run /claude-talk:stop

**CRITICAL - You MUST call TTS for every response:**
```bash
source ~/.claude-talk/venvs/wlk/bin/activate
claude-talk server speak "Your response here"
```

Do the tool call FIRST, then output a brief confirmation like "(spoke)" so the user knows you responded. The audio server will handle capturing their next utterance and routing it back.

