Preparing your workspace...

assistant-chat.tsx2.5k
utils.ts850
button.tsx720
Quick Actions
codmir
Docs
Discord
Get started
API
  • Introduction
  • Installation
  • Your First Project
  • Your First Agent
  • All Guides
    • Swarm Execution
    • Cortex Protocol
    • Voice Control
    • CLI Reference

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:

  1. Open the Desktop app
  2. Switch to Talk mode using the top toggle
  3. Click the microphone button or press the configured hotkey
  4. 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

CommandWhat 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:

  1. You say: "There's a bug where users can't reset their password on mobile"
  2. Overseer creates a ticket with:
    • Title extracted from your description
    • Priority inferred from context (mobile auth = high)
    • Labels applied automatically (bug, auth, mobile)
  3. 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:

  1. You say: "Fix ticket AUTH-42"
  2. 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
  3. The agent investigates, writes a fix, runs tests, and opens a PR
  4. 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
Open in ChatGPTOpen in ClaudeConnect MCP on CursorConnect MCP on WindsurfEdit on GitHub
codmir
Products
Desktop AppMobile AppIDE ExtensionAI AgentsOverseerVoice ModeCortex ProtocolHive MindGame Dev (Godat)PricingDownload
Solutions
AI Code AgentsCode ReviewError TrackingSelf-HealingDeploy TrackingAI Tracking SDKWorkflow AutomationTesting FrameworkTime TrackingVoice Control
Platform
ProjectsTickets & BoardsAgent MarketplaceIntegrationsTemplatesApp HubAdmin PanelAnalytics
Integrations
GitHubSlackDiscordVercelSentryRailwayLinearAll Integrations
Developers
DocumentationAPI ReferenceSDKCLIDeveloper PortalMarketplaceMCP ConnectorsWebhooksExamplesnpm Packages
Resources
BlogChangelogCommunityTutorialsGet StartedSupportStatusFeedback
Company
AboutCareersContact SalesKickstarterReferral Program
Legal
Terms of UsePrivacy PolicyEULATrademarkSecurity
Download on the App StoreGet it on Google Play

Codmir™ 2026. All rights reserved.

Free & open source SDK — Apache 2.0 License