Talk to your project — ask questions, give instructions, deploy fixes.
Voice Control
Codmir supports voice interaction through the Desktop app and programmatic TTS/STT clients. You can ask questions about your codebase, give instructions to agents, create tickets by speaking, and get alerted to incidents via voice barge-in.
Enable Voice in the Desktop App
Voice mode is built into the Codmir Desktop app. To activate it:
- Open the Desktop app
- Switch to Talk mode using the top toggle
- Click the microphone button or press the configured hotkey
- Start speaking -- your audio is processed through the Codmir server
The Desktop app uses Gemini Live for real-time voice sessions. Audio is streamed through the server (API keys never leave the server).
Common Voice Commands
| Command | What It Does |
|---|---|
| "What are you working on?" | Returns the current Overseer status |
| "Create a ticket for [description]" | Creates a new ticket from your description |
| "Fix the auth bug on staging" | Delegates a fix task to an AI agent |
| "What broke in the last deploy?" | Queries recent errors and deploy status |
| "Show me the error rate" | Reads back error metrics from the dashboard |
| "Deploy to staging" | Triggers a deployment with confirmation |
Voice-to-Ticket Creation
Speaking a problem description automatically creates a structured ticket:
- You say: "There's a bug where users can't reset their password on mobile"
- Overseer creates a ticket with:
- Title extracted from your description
- Priority inferred from context (mobile auth = high)
- Labels applied automatically (bug, auth, mobile)
- You get a confirmation: "Created ticket AUTH-42: Password reset broken on mobile"
Voice-to-Agent Delegation
You can assign tasks to AI agents by voice:
- You say: "Fix ticket AUTH-42"
- Overseer's DecisionEngine evaluates whether to:
- Execute silently -- fix it in the background, notify when done
- Barge in -- if it is a critical incident, take over the voice session
- Queue -- add it to the work queue for later
- The agent investigates, writes a fix, runs tests, and opens a PR
- You get a voice notification: "AUTH-42 fixed. PR #87 ready for review."
TTS Client Setup
For programmatic text-to-speech, use the TTS client from @codmir/ai:
ElevenLabs TTS
import { createTTSClient } from '@codmir/ai';
const tts = createTTSClient({
provider: 'elevenlabs',
apiKey: process.env.ELEVENLABS_API_KEY!,
voiceId: 'rachel',
model: 'eleven_turbo_v2_5',
});
// Speak text
await tts.speak('Deployment to production completed successfully.');
// With callbacks
await tts.speak('Build failed on staging.', {
onStart: () => console.log('Speaking...'),
onEnd: () => console.log('Done'),
});Web Speech API (Browser)
import { WebSpeechTTSClient } from '@codmir/ai';
const tts = new WebSpeechTTSClient({
lang: 'en-US',
rate: 1.0,
pitch: 1.0,
});
await tts.speak('Three new errors detected in the last hour.');Available ElevenLabs Voices
import { ELEVENLABS_VOICES } from '@codmir/ai';
// Available voices: rachel, drew, clyde, paul, domi, bella, antoni, elli, josh, arnold, adam, sam
const voiceId = ELEVENLABS_VOICES.rachel;Voice Notifications from Overseer
The Orchestrator can proactively speak to you via voice when incidents occur:
import { createOrchestrator } from '@codmir/overseer';
const orchestrator = createOrchestrator({
overseer: {
projectId: 'my-project',
organizationId: 'my-org',
apiKey: process.env.CODMIR_API_KEY!,
},
defaultRepoUrl: 'https://github.com/my-org/my-app',
defaultBranch: 'main',
});
// Register your client for voice notifications
orchestrator.registerClient({
userId: 'user-123',
clientId: 'desktop-abc',
type: 'desktop',
capabilities: ['voice', 'notifications'],
});
await orchestrator.start();When a critical incident occurs (error spike, service down), Overseer broadcasts to all online clients. The highest-priority client gets the voice session.
Priority order: desktop > web in voice mode > web > mobile.
Next Steps
- Self-Healing -- let voice alerts trigger autonomous fixes
- Connect Your Project -- set up the project that voice controls
- Error Tracking -- capture errors that trigger voice alerts