Bring your AI to life—talk to assistants instantly in your browser. Compatible with Claude Desktop, OpenCode, and other MCP-enabled AI tools.
✅ No extra software, services, or API keys required—just open the web app in your browser and grant microphone access.
🎙️ Voice Conversations - Speak naturally with AI assistants
🌍 30+ Languages - Speech recognition in multiple languages
📱 Remote Access - Use from phone/tablet while AI runs on computer
⚙️ Smart Controls - Collapsible settings, always-on mode, custom voices
⏱️ Dynamic Timeouts - Intelligent wait times based on response length
🧰 Zero Extra Software - Runs entirely in your browser—no extra installs or API keys
🔌 Optional Whisper Streaming - Plug into a local Whisper server for low-latency transcripts
Claude Desktop:
npx @shantur/jarvis-mcp --install-claude-config
# Restart Claude Desktop and you're ready!OpenCode (in current project):
npx @shantur/jarvis-mcp --install-opencode-config --local
npx @shantur/jarvis-mcp --install-opencode-plugin --local
# Start OpenCode and use the converse toolClaude Code CLI:
npx @shantur/jarvis-mcp --install-claude-code-config --local
# Start Claude Code CLI and use voice tools- Stream voice messages into OpenCode even while tools are running or tasks are in progress.
- Auto-forward pending Jarvis MCP conversations so you never miss a user request.
- Works entirely locally—no external services required, just your OpenCode project and browser.
- Installs with one command and stays in sync with the latest Jarvis MCP features.
From NPM:
npm install -g @shantur/jarvis-mcp
jarvis-mcpFrom Source:
git clone <repository-url>
cd jarvis-mcp
npm install && npm run build && npm start- Hook it into your AI tool – Use the install command above for Claude Desktop, OpenCode, or Claude Code so the MCP server is registered.
- Kick off a voice turn – Call the
conversetool from your assistant; Jarvis MCP auto-starts in the background and pops openhttps://localhost:5114if needed. - Allow microphone access – Approve the browser prompt the first time it appears.
- Talk naturally – Continue using
conversefor every reply; Jarvis MCP handles the rest.
Use the converse tool to start talking:
- converse("Hello! How can I help you today?", timeout: 35)
The web interface provides:
- Voice Settings (click ⚙️ to expand)
- Language selection (30+ options)
- Voice selection
- Speech speed control
- Always-on microphone mode
- Silence detection sensitivity & timeout (for Whisper streaming)
- Smart Controls
- Pause during AI speech (prevents echo)
- Stop AI when user speaks (natural conversation)
- Mobile Friendly - Works on phones and tablets
Access from any device on your network:
- Find your computer's IP:
ifconfig | grep inet(Mac/Linux) oripconfig(Windows) - Visit
https://YOUR_IP:5114on your phone/browser - Accept the security warning (self-signed certificate)
- Grant microphone permissions
Perfect for continuing conversations away from your desk!
export MCP_VOICE_AUTO_OPEN=false # Disable auto-opening browser
export MCP_VOICE_HTTPS_PORT=5114 # Change HTTPS port
export MCP_VOICE_STT_MODE=whisper # Switch the web app to Whisper streaming
export MCP_VOICE_WHISPER_URL=http://localhost:12017/v1/audio/transcriptions # Whisper endpoint (full path)
export MCP_VOICE_WHISPER_TOKEN=your_token # Optional Bearer auth for Whisper server- Whisper mode records raw PCM in the browser, converts it to 16 kHz mono WAV, and streams it through the built-in HTTPS proxy, so the local
whisper-serversees OpenAI-compatible requests. - By default we proxy to the standard
whisper-serverendpoint athttp://localhost:12017/v1/audio/transcriptions; pointMCP_VOICE_WHISPER_URLat your own host/port if you run it elsewhere. - The UI keeps recording while transcripts are in flight and ignores Whisper’s non-verbal tags (e.g.
[BLANK_AUDIO],(typing)), so only real speech is queued. - To enable it:
- Run your Whisper server locally (e.g.
whisper-serverfrompfrankov/whisper-server). - Set the environment variables above (
MCP_VOICE_STT_MODE=whisperand the fullMCP_VOICE_WHISPER_URL). - Restart
jarvis-mcpand hard-refresh the browser (empty-cache reload) to load the streaming bundle. - Voice status (
voice_status()tool) now reports whether Whisper or browser STT is active.
- Run your Whisper server locally (e.g.
- HTTPS: 5114 (required for microphone access)
- HTTP: 5113 (local access only)
- Node.js 18+
- Google Chrome (only browser tested so far)
- Microphone access
- Optional: Local Whisper server (like
pfrankov/whisper-server) if you want streaming STT viaMCP_VOICE_STT_MODE=whisper
Certificate warnings on mobile?
- Tap "Advanced" → "Proceed to site" to accept self-signed certificate
Microphone not working?
- Ensure you're using HTTPS (not HTTP)
- Check browser permissions
- Try refreshing the page
AI not responding to voice?
- Make sure the
conversetool is being used (not justspeak) - Check that timeouts are properly calculated
npm install
npm run build
npm run dev # Watch mode
npm run start # Run serverMIT