Installation Guide
This guide covers detailed installation steps, configuration options, and troubleshooting for Jarvis.System Requirements
macOS Version
Minimum macOS version: macOS 13.0 (Ventura) or later The setup script checks your macOS version automatically:setup.sh
Python Version
Required: Python 3.10 or newer Jarvis requires modern Python for async features and type hints. The setup script will automatically detect compatible Python installations:The setup script checks for
python3.12, python3.11, python3.10, and python3 in that order.Swift Version
Required: Swift 5.9 or newer Swift is included with Xcode Command Line Tools:Hardware Requirements
- Metal-compatible GPU: Required for the 3D orb renderer (all Macs from 2012+ support Metal)
- RAM: 8GB minimum, 16GB recommended for multiple AI panels
- Storage: ~2GB for dependencies and models
- Microphone: Required for voice input features
Step-by-Step Installation
1. Clone the Repository
2. Run the Setup Script
Jarvis includes an automated setup script that handles all installation steps:What the setup script does
What the setup script does
The setup script performs the following operations:
-
Pre-flight checks:
- Verifies macOS version (13+)
- Checks for Xcode Command Line Tools
- Validates Swift installation
- Finds compatible Python 3.10+ installation
-
Directory structure:
-
Python environment:
-
Swift build:
-
Configuration:
- Creates default config at
~/.config/jarvis/config.yaml
- Creates default config at
3. Install Python Dependencies
If you skipped the setup script, manually install dependencies:View requirements.txt
View requirements.txt
requirements.txt
4. Build the Metal App
Compile the Swift/Metal frontend:- Release:
metal-app/.build/release/JarvisBootup - Debug:
metal-app/.build/debug/JarvisBootup
Configuration
Environment Variables
Create a.env file in the project root:
.env
Claude OAuth Token Setup
The code assistant skill uses the Claude Agent SDK, which requires OAuth authentication.Ensure Claude Max subscription
You need an active Claude Max subscription to use the Agent SDK.
Token expiration: OAuth tokens expire periodically. If the code assistant stops authenticating, re-run
./login.sh to refresh the token.Google Gemini API Key (Optional)
Gemini powers voice routing and optional skills like domain hunting and paper matching.Get API key
Visit Google AI Studio and create an API key.
Configuration File
Jarvis creates a YAML config at~/.config/jarvis/config.yaml on first run:
setup.sh
Running Jarvis
Start Script
The recommended way to launch Jarvis:What start.sh does
What start.sh does
start.sh
- Activates the virtual environment
- Updates Python dependencies if needed
- Rebuilds the Metal app if source files changed
- Launches
main.py
Manual Launch
You can also run components manually:Command-Line Options
Controls & Shortcuts
Once Jarvis is running, use these controls:Push-to-Talk
Left Control (hold) — Primary PTT keyOption + Period — Alternative PTT hotkey
Navigation
Cmd + G — Toggle hotkey overlayEscape — Close current panel or quit
Verification
After installation, verify everything works:Test voice input
- Hold Left Control
- Say: “Help me with code”
- Release the key
Test Metal rendering
The 3D orb should:
- Animate smoothly (60 FPS)
- React to voice input when PTT is active
- Display the hex grid background
Troubleshooting
Swift Build Errors
Command line tools not found
Command line tools not found
Swift version too old
Swift version too old
Update Xcode Command Line Tools:Or install the latest Xcode from the App Store.
Build hangs or fails
Build hangs or fails
Clear Swift build cache:
Python Issues
Module not found errors
Module not found errors
Ensure virtual environment is activated:
Whisper model download fails
Whisper model download fails
The first run downloads the Whisper model. This can take a few minutes.Check logs:Manual download:
sounddevice errors
sounddevice errors
Install PortAudio:
Runtime Issues
Metal window doesn't open
Metal window doesn't open
Check if the binary exists:If missing, rebuild:
No audio / microphone permission denied
No audio / microphone permission denied
Grant microphone access:
- System Settings → Privacy & Security → Microphone
- Enable for Terminal (or your terminal app)
- Restart Jarvis
Claude assistant not responding
Claude assistant not responding
Token may be expired or invalid:Verify token is set:Check for errors:
Presence/chat not connecting
Presence/chat not connecting
Check presence server is reachable:Override with custom server in
.env: