Voice Assistant|
In Development

Jarvis

Talk to Claude. Hear it back.

46

Tests Passing

On-Device

STT Engine

Cmd+Shift+J

Hotkey

Overview

Jarvis is a menu bar app for macOS that turns Claude into a voice assistant. Press Cmd+Shift+J to start recording, speak naturally, and Jarvis transcribes your speech on-device using Apple's Speech framework. The transcription is sent to Claude's API, and the response is spoken aloud via AVSpeechSynthesizer. Conversation history persists in the popover, and settings include voice selection, speaking rate, and secure API key storage via Keychain.

Stack

Swift 6SwiftUISpeechAVFoundationClaude APIHotKey

Features

What it does.

Voice Pipeline

  • Push-to-talk global hotkey (Cmd+Shift+J)
  • On-device speech-to-text via Apple Speech framework
  • Live transcription with partial results
  • Text-to-speech via AVSpeechSynthesizer with voice selection

Claude Integration

  • Direct Anthropic Messages API via URLSession
  • Conversation history with context window
  • System prompt optimized for spoken responses
  • Error handling: rate limits, auth, network failures

macOS Native

  • Menu bar app with popover conversation view
  • Secure API key storage via Keychain
  • Configurable voice, speaking rate, and hotkey
  • No dock icon — runs as a lightweight utility

Architecture

How it's built.

1

JarvisApp

Menu bar entry point with MenuBarExtra

2

AppState

Central coordinator for speech, Claude, and UI state

3

SpeechRecognizer

AVAudioEngine + SFSpeechRecognizer for STT

4

SpeechSynthesizer

AVSpeechSynthesizer bridge for TTS

5

ClaudeClient

Actor-isolated Anthropic API client

Interested in this project?

Get in touch →
← Back to all projects