Just A Rather Very Intelligent System.
A voice-first AI assistant that runs on your Mac. Talk to it, and it talks back -- with a British accent, dry wit, and an audio-reactive particle orb straight out of the MCU.
JARVIS connects to your Apple Calendar, Mail, and Notes. It can browse the web, spawn Claude Code sessions to build entire projects, and plan your day -- all through natural voice conversation.
"Will do, sir."
The fastest way to get running:
git clone https://github.com/yourusername/jarvis.git
cd jarvis
claude
Claude Code will read the project's CLAUDE.md and walk you through setup step by step -- API keys, dependencies, SSL certs, everything.
# 1. Clone the repo
git clone https://github.com/yourusername/jarvis.git
cd jarvis
# 2. Set up environment
cp .env.example .env
# Edit .env with your API keys (see below)
# 3. Install Python dependencies
pip install -r requirements.txt
# 4. Install frontend dependencies
cd frontend && npm install && cd ..
# 5. Generate SSL certificates (needed for secure WebSocket)
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes -subj '/CN=localhost'
# 6. Start the backend (Terminal 1)
python server.py
# 7. Start the frontend (Terminal 2)
cd frontend && npm run dev
# 8. Open Chrome
open http://localhost:5173
Click the page once to enable audio, then speak. JARVIS will respond.
Edit your .env file:
# Required
ANTHROPIC_API_KEY=your-anthropic-api-key-here
FISH_API_KEY=your-fish-audio-api-key-here
# Optional -- your name (JARVIS will address you personally)
USER_NAME=Tony
# Optional -- specific calendar accounts (comma-separated)
# Leave empty to auto-discover all calendars
CALENDAR_ACCOUNTS=you@gmail.com,work@company.com
Microphone -> Web Speech API -> WebSocket -> FastAPI -> Claude (Haiku) -> Fish Audio TTS -> WebSocket -> Speaker
|
v
Claude Code Tasks
(spawns real dev work)
|
v
AppleScript Bridge
(Calendar, Mail, Notes, Terminal)
| Layer | Technology |
|---|---|
| Backend | FastAPI + Python (server.py, ~2300 lines) |
| Frontend | Vite + TypeScript + Three.js |
| Communication | WebSocket (JSON messages + binary audio) |
| AI (fast) | Claude Haiku -- low-latency voice responses |
| AI (deep) | Claude Opus -- research and complex tasks |
| TTS | Fish Audio with JARVIS voice model |
| System | AppleScript for all macOS integrations |
| File | Purpose |
|---|---|
server.py |
Main server -- WebSocket handler, LLM, action system |
frontend/src/orb.ts |
Three.js particle orb visualization |
frontend/src/voice.ts |
Web Speech API + audio playback |
frontend/src/main.ts |
Frontend state machine |
memory.py |
SQLite memory system with FTS5 full-text search |
calendar_access.py |
Apple Calendar integration via AppleScript |
mail_access.py |
Apple Mail integration (read-only) |
notes_access.py |
Apple Notes integration |
actions.py |
System actions (Terminal, Chrome, Claude Code) |
browser.py |
Playwright web automation |
work_mode.py |
Persistent Claude Code sessions |
planner.py |
Multi-step task planning with smart questions |
JARVIS uses action tags to trigger real system actions:
- [ACTION:BUILD] -- spawns Claude Code to build a project
- [ACTION:BROWSE] -- opens Chrome to a URL or search query
- [ACTION:RESEARCH] -- deep research with Claude Opus, outputs an HTML report
- [ACTION:PROMPT_PROJECT] -- connects to an existing project via Claude Code
- [ACTION:ADD_TASK] -- creates a tracked task with priority and due date
- [ACTION:REMEMBER] -- stores a fact for future context
JARVIS remembers things you tell it using SQLite with FTS5 full-text search. Preferences, decisions, and facts persist across sessions.
All macOS integrations use AppleScript -- no OAuth flows, no token management. Just native system access. Mail is intentionally read-only for safety.
Contributions are welcome. Some areas that could use work:
Please open an issue before submitting large PRs so we can discuss the approach.
Free for personal, non-commercial use. Commercial use requires a license — visit ethanplus.ai for inquiries. See LICENSE for details.
Built by Ethan.
Powered by Anthropic Claude and Fish Audio.
Inspired by the AI that started it all -- Tony Stark's JARVIS.
Disclaimer: This is an independent fan project and is not affiliated with, endorsed by, or connected to Marvel Entertainment, The Walt Disney Company, or any related entities. The JARVIS name and character are property of Marvel Entertainment.
$ claude mcp add jarvis \
-- python -m otcore.mcp_server <graph>