Real-time vision + voice AI powered by Claude, streaming at 30 FPS from your Meta Ray-Ban glasses
Jarvis transforms your Meta Ray-Ban smart glasses into an intelligent AI companion. Stream what you see in real-time, have natural voice conversations with Claude, and get instant insights about your surroundings - all with the elegance of J.A.R.V.I.S. from Iron Man.
- π₯ 30 FPS Video Streaming - Real-time video from Meta Ray-Ban glasses via Bluetooth
- π€ Natural Voice Conversations - Talk to Claude AI with sophisticated female voice synthesis
- ποΈ Real-time Vision - Claude sees what you see and responds contextually
- πΈ Photo Capture - Take high-res photos with AI-generated descriptions
- πΎ Conversation History - Full searchable history with visual snapshots
- π Secure API Key Storage - In-app key management with iOS Keychain
- π¨ Glassmorphism UI - Minimal, elegant design with Apple-like aesthetics
- π± iPhone Fallback Mode - Test without glasses using iPhone camera
- π 100+ Languages - Voice support for multiple languages
- π Smart Search - Find past conversations instantly
Note: Add screenshots/videos here once available
Before you begin, ensure you have:
-
Development Environment:
- macOS Monterey (12.0) or later
- Xcode 15.0 or later
- iOS device running iOS 17.0+ (not simulator - requires Bluetooth)
-
Hardware:
- Meta Ray-Ban smart glasses (Wayfarer or other models)
- OR use iPhone camera for testing (fallback mode)
-
Accounts & API Keys:
- Anthropic API key (Claude)
- Meta AI app installed on your iPhone
- Developer Mode enabled in Meta AI app (free)
git clone https://github.com/yourusername/jarvis.git
cd jarvisThis project uses Swift Package Manager. Dependencies will be resolved automatically when you open the project in Xcode.
Required packages:
- Meta Wearables DAT SDK (v0.4.0)
open Jarvis/Jarvis.xcodeprojThe project includes a template configuration file:
# The Constants.swift file is gitignored and will be empty by default
# This is intentional - API keys are managed in-app!Note: You do NOT need to add your API key to any config file. The app handles API key management securely through its Settings interface.
- In Xcode, select the Jarvis target
- Go to Signing & Capabilities
- Select your Development Team
- Xcode will automatically manage provisioning profiles
- Connect your iPhone via USB
- Select your device in Xcode
- Press Cmd+R to build and run
When you first launch Jarvis, you'll be guided through a setup process:
- The app will show an "API Key Required" screen
- Tap Setup
- Enter your Anthropic API key (starts with
sk-ant-) - Get your key from: console.anthropic.com
- The key is stored securely in iOS Keychain
Enable Developer Mode:
- Install the Meta AI app from the App Store
- Pair your Meta Ray-Ban glasses with the Meta AI app
- In Meta AI app: Settings β Devices β [Your Glasses] β Developer Mode
- Enable Developer Mode (free, no registration required)
Connect Glasses to Jarvis:
- Open Jarvis app
- Ensure Bluetooth is enabled on iPhone
- Tap Start Session when glasses are detected
- Grant camera and microphone permissions when prompted
Jarvis requires the following permissions:
- Bluetooth - To connect to Meta Ray-Ban glasses
- Microphone - For voice conversations with Claude
- Camera - For iPhone fallback mode (optional)
- Photos - To save captured photos (optional)
Edit Jarvis/Jarvis/Config/Constants.swift for advanced options:
// Video quality (adjust for performance)
enum Video {
static let streamingFPS: Int = 30 // Max from glasses
static let llmThrottleFPS: Double = 1.5 // Sent to Claude
static let jpegQuality: CGFloat = 0.5 // Compression (0.0-1.0)
}
// Feature flags
enum Features {
static let enableIPhoneFallback: Bool = true
static let enablePhotoCapture: Bool = true
}View/Change API Key:
- Open Jarvis
- Tap API Key tile on home screen
- Update or delete your key
Delete API Key:
- Tap API Key tile
- Tap Delete API Key
- Confirm deletion
- Launch Jarvis and ensure status shows "Ready" (green dot)
- Tap Start Session
- Video stream appears at top, conversation area at bottom
- Just start talking - Claude will respond naturally
- Talk naturally - Claude sees what you're looking at and responds contextually
- Capture photos - Tap camera icon (glasses mode only)
- View transcript - Real-time text appears at bottom
- End session - Tap "End Session" button
- View past conversations - Tap History tile on home screen
- Search - Use search bar to find specific conversations
- View details - Tap any conversation to see full transcript with snapshots
- Export - Share conversations as text
- Delete - Swipe left on any conversation
Customize Claude's voice:
- Navigate to Settings β Voice
- Adjust speech rate, voice selection (coming soon)
- Change language preferences
βββββββββββββββββββββββββββββββββββββββββββ
β User Interface Layer β
β (SwiftUI Views + MVVM ViewModels) β
ββββββββββββββ¬βββββββββββββββββββββββββββββ
β
ββββββββββββββΌβββββββββββββββββββββββββββββ
β Service Layer β
β ββββββββββββββββ βββββββββββββββββββ β
β β Wearables β β Claude Vision β β
β β Service β β Service β β
β β (DAT SDK) β β (Anthropic API) β β
β ββββββββββββββββ βββββββββββββββββββ β
β ββββββββββββββββ βββββββββββββββββββ β
β β Streaming β β Speech β β
β β Service β β Services β β
β ββββββββββββββββ βββββββββββββββββββ β
ββββββββββββββ¬βββββββββββββββββββββββββββββ
β
ββββββββββββββΌβββββββββββββββββββββββββββββ
β Persistence Layer β
β (SwiftData + Keychain) β
βββββββββββββββββββββββββββββββββββββββββββ
- WearablesService - Manages Meta glasses connection and device discovery
- StreamingService - Handles 30 FPS video streaming with frame throttling
- ClaudeVisionService - Communicates with Claude API (vision + text)
- TextToSpeechManager - Natural voice synthesis with premium voices
- SpeechRecognitionManager - Real-time speech-to-text
- ConversationRepository - SwiftData persistence with search
- KeychainManager - Secure API key storage
Causes:
- Glasses are powered off
- Glasses hinges are closed (they auto-sleep)
- Bluetooth disabled on iPhone
- Glasses not in Developer Mode
Solutions:
- Open glasses hinges fully
- Check Bluetooth is enabled
- Verify Developer Mode in Meta AI app
- Try unpairing and re-pairing in Meta AI app
Solution:
- Tap API Key tile
- Enter your Anthropic API key
- Get key from console.anthropic.com
Solutions:
- Close other Bluetooth-heavy apps
- Reduce
Video.jpegQualityin Constants.swift - Lower
Video.llmThrottleFPSif needed - Ensure strong Bluetooth connection (keep glasses close to phone)
Causes:
- Invalid API key
- Microphone permission denied
- Speaker volume too low
Solutions:
- Verify API key in Settings
- Check microphone permission: Settings β Jarvis β Microphone
- Increase volume
- Try toggling between glasses/iPhone audio modes
Solutions:
- Clean build folder: Cmd+Shift+K
- Delete derived data: Xcode β Preferences β Locations β Derived Data
- Reinstall app on device
- Check Console app for crash logs
If experiencing lag or high battery drain:
// In Constants.swift, reduce these values:
enum Video {
static let llmThrottleFPS: Double = 1.0 // From 1.5
static let jpegQuality: CGFloat = 0.3 // From 0.5
}Contributions are welcome! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Swift style guide and conventions
- Add comments for complex logic
- Test on real device before submitting PR
- Update README if adding new features
- Keep commits atomic and well-described
This project is licensed under the MIT License - see the LICENSE file for details.
- Meta - For the Wearables DAT SDK
- Anthropic - For the Claude API powering the AI capabilities
- Apple - For the excellent SwiftUI and iOS frameworks
- Marvel Studios - For the inspiration (J.A.R.V.I.S. from Iron Man)
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Meta Wearables Docs: developers.meta.com/wearables
- Claude API Docs: docs.anthropic.com
- Real-time web search integration
- Custom wake word detection
- Multi-language UI
- Apple Watch companion app
- Siri Shortcuts integration
- iCloud sync for conversation history
- Custom voice selection
- Gesture controls from glasses
Claude API Pricing:
- Vision API: ~$0.003 per image (1-2 FPS = $0.18-$0.36 per 10-min session)
- Text generation: ~$0.003 per 1K tokens
- Estimated: $0.50-$1.00 per hour of active use
Tips to reduce costs:
- Lower
llmThrottleFPSto send fewer images - Use shorter sessions
- Monitor usage in Anthropic Console
- Privacy: All conversations are stored locally on your device. Enable iCloud sync cautiously.
- Battery: Continuous video streaming drains battery faster. Consider bringing a portable charger.
- Data Usage: Streaming video to Claude uses data. Use Wi-Fi when possible or monitor cellular usage.
- Developer Mode: Meta's Developer Mode is free but may have usage limits. Check Meta's documentation.
- Home screen
- Streaming session in action
- Conversation history
- API key setup
- Settings panel