J.A.R.V.I.S is a lightweight, cross-platform desktop AI assistant with voice capabilities and real-time streaming, featuring a stunning Iron Man-inspired arc reactor interface with multiple themes. Built with Electron, FastAPI, and vanilla JavaScript - no heavy frameworks, just pure performance.
| Feature | Description |
|---|---|
| Arc Reactor UI | Stunning HUD interface with animated power orb |
| Real-Time Streaming | Word-by-word AI responses with typing cursor |
| Thinking States | Reactor glows orange while thinking, cyan while replying |
| Voice Mode | Click the mic for voice input with green reactor animation |
| Auto Model Detection | Automatically fetches all available models for your API key |
| Quick Model Switcher | Switch models instantly from the header AI stat |
| Multi-AI Support | Ollama (local), OpenAI, Anthropic, Gemini, Groq |
| 6 Professional Themes | JARVIS, Matrix, Sunset, Violet, Arctic, Gold |
| Text-to-Speech | JARVIS speaks responses aloud |
| Chat History | Organized projects and conversation sessions |
| API Key Validation | Checks key validity and shows clear error messages |
| Keyboard Shortcuts | Enter to send, ESC to close panels |
| System Commands | Search, open URLs, screenshots, volume control |
| Dependency | Version | Purpose |
|---|---|---|
| Python | 3.10+ | Backend API server |
| Node.js | 18+ | Electron desktop app |
| Ollama | Latest | Local AI models (optional) |
| npm | 9+ | Package management |
git clone https://github.com/mkr-infinity/jarvis.git
cd jarvisLinux/macOS:
pip install -r requirements.txt
npm installWindows:
pip install -r requirements.txt
npm installLinux/macOS:
bash scripts/run.shWindows:
scripts\run.batOpen two terminals:
Terminal 1 - Backend:
npm run backendTerminal 2 - GUI:
npm startnpm run devThis kills any existing processes on port 8765 and restarts the backend.
- Launch the application
- Click the Settings icon
- Enter your API key for your preferred provider:
- OpenAI (GPT-4, GPT-3.5)
- Anthropic (Claude)
- Gemini (Google)
- Groq (Fast inference)
- JARVIS automatically validates the key and detects all available models
- Select your preferred model from the dropdown
- Install Ollama
- Pull a model:
ollama pull llama3.1 - Select "Ollama" in JARVIS settings
- No API key required - runs 100% locally!
From Header: Hover over the AI stat in the top bar to reveal a quick model dropdown. Click any model to switch instantly.
From Settings: Open Settings -> AI CORE -> Select a model from the dropdown. Click the refresh button to re-detect models.
Open Settings -> AI CORE -> Scroll to the Theme grid. Choose from:
- JARVIS - Classic cyan/blue Iron Man style
- Matrix - Green hacker aesthetic
- Sunset - Warm red/orange tones
- Violet - Purple/magenta glow
- Arctic - Cool blue ice theme
- Gold - Warm golden accents
| Command | Action |
|---|---|
search [query] |
Search the web |
open [url] |
Open a URL in browser |
screenshot |
Capture screen |
volume [0-100] |
Set system volume |
mute / unmute |
Toggle audio |
Voice mode auto-retries on network errors and gracefully handles microphone issues.
jarvis/
├── backend/
│ └── app/
│ ├── main.py # FastAPI server + WebSocket
│ └── services/
│ ├── ai_engine.py # Streaming AI for all providers
│ ├── database.py # SQLite operations
│ ├── command_engine.py # System commands
│ └── speech_engine.py # Text-to-Speech
├── electron/
│ └── main.js # Electron main process
├── renderer/
│ ├── index.html # Main UI
│ ├── styles/
│ │ └── app.css # JARVIS themes (6 total)
│ └── scripts/
│ └── app.js # Frontend logic + voice
├── scripts/
│ ├── start.js # Custom launcher
│ ├── run.sh # Linux/Mac script
│ └── run.bat # Windows script
└── package.json # Dependencies
| Command | Description |
|---|---|
npm start |
Launch Electron GUI |
npm run backend |
Start FastAPI backend |
npm run dev |
Kill port + start backend |
npm run kill |
Kill port 8765 |
npm run check:js |
Lint JavaScript |
npm run check:python |
Check Python syntax |
| Issue | Solution |
|---|---|
| Port 8765 in use | Run npm run kill or pkill -f uvicorn |
| Electron not launching | Requires display - won't work on headless servers |
| Ollama not working | Run ollama pull llama3.1 |
| Buttons not working | Check browser console (Ctrl+Shift+I) for errors |
| Voice says "no internet" | Voice mode now auto-retries on network errors |
| API key not working | Check Settings for the specific error message explaining why |
- Fork the repository
- Create your 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
This project is licensed under the MIT License - see the LICENSE file for details.