# Claude Code Permissions Guide
Configure Claude Code to use VoiceMode without constant permission prompts.
## Quick Setup (30 seconds)
Add this to `~/.claude/settings.json`:
```json
{
"permissions": {
"allow": [
"mcp__voicemode__converse",
"mcp__voicemode__service"
]
}
}
```
That's it! Voice conversations and service management now work without prompts.
## What These Permissions Allow
| Permission | What It Does |
|------------|--------------|
| `mcp__voicemode__converse` | Voice conversations (speak and listen) |
| `mcp__voicemode__service` | Start/stop Whisper and Kokoro services |
## Permission Levels
Choose the level that fits your needs:
### Level 1: Voice Only
Just voice conversations, nothing else:
```json
{
"permissions": {
"allow": [
"mcp__voicemode__converse"
]
}
}
```
### Level 2: Voice + Service (Recommended)
Voice conversations plus service management:
```json
{
"permissions": {
"allow": [
"mcp__voicemode__converse",
"mcp__voicemode__service"
]
}
}
```
### Level 3: All VoiceMode Tools
Everything except installation (for power users):
```json
{
"permissions": {
"allow": [
"mcp__voicemode__*"
],
"deny": [
"mcp__voicemode__whisper_install",
"mcp__voicemode__whisper_uninstall",
"mcp__voicemode__kokoro_install",
"mcp__voicemode__kokoro_uninstall"
]
}
}
```
## How to Apply Permissions
### Option 1: Edit Settings File
1. Open `~/.claude/settings.json` in your editor
2. Add the permissions block
3. Save and restart Claude Code
```bash
# Create or edit the file
nano ~/.claude/settings.json
```
### Option 2: Use Claude Code UI
1. In Claude Code, type `/permissions`
2. Add `mcp__voicemode__converse` to the allow list
3. Add `mcp__voicemode__service` to the allow list
### Option 3: Command Line
```bash
# Create settings file with VoiceMode permissions
mkdir -p ~/.claude
cat > ~/.claude/settings.json << 'EOF'
{
"permissions": {
"allow": [
"mcp__voicemode__converse",
"mcp__voicemode__service"
]
}
}
EOF
```
## Troubleshooting
### Still Getting Permission Prompts?
1. **Check file location**: Settings must be in `~/.claude/settings.json`
2. **Check JSON syntax**: Use a JSON validator if unsure
3. **Restart Claude Code**: Changes require restart to take effect
4. **Check tool names**: Must match exactly (case-sensitive)
### Verify Your Settings
```bash
cat ~/.claude/settings.json
```
Should show your permissions block.
### Common Mistakes
❌ Wrong:
```json
{
"allowedTools": ["mcp__voicemode__converse"]
}
```
✅ Correct:
```json
{
"permissions": {
"allow": ["mcp__voicemode__converse"]
}
}
```
## Removing Permissions
To go back to prompting for everything:
```json
{
"permissions": {
"allow": []
}
}
```
Or delete the permissions block entirely.
## Security Notes
### What VoiceMode Tools Can Do
| Tool | Capabilities |
|------|--------------|
| `converse` | Records audio from microphone, plays audio through speakers |
| `service` | Starts/stops background processes for Whisper and Kokoro |
### What Requires Manual Approval
These tools always prompt (not included in recommendations):
- `whisper_install` / `whisper_uninstall` - Downloads and compiles software
- `kokoro_install` / `kokoro_uninstall` - Downloads and installs Python packages
- `whisper_model_install` - Downloads large model files (100MB-3GB)
### Privacy
- Audio is processed locally by Whisper (speech-to-text)
- No audio is sent to external servers unless you configure OpenAI as a provider
- See [Privacy documentation](../reference/privacy.md) for details
## Project vs Global Settings
| File | Scope | Use Case |
|------|-------|----------|
| `~/.claude/settings.json` | All projects | Personal defaults |
| `.claude/settings.json` | This project | Team settings (commit to git) |
| `.claude/settings.local.json` | This project | Personal overrides (gitignored) |
Settings merge: global → project → local (local wins).
## See Also
- [Getting Started](../tutorials/getting-started.md) - Installation guide
- [Configuration](configuration.md) - VoiceMode settings
- [Troubleshooting](../reference/troubleshooting.md) - Common issues