A sci-fi AI assistant with a holographic React + Three.js interface and a FastAPI brain.
Voice-activated Β· LLM-agnostic Β· Real macOS system actions Β· Zero-shot voice cloning
Screenshot / Demo
| Feature | Description |
|---|---|
| π Voice activation | Hold-to-talk or toggle mode, configurable hotkey |
| π Multi-provider LLM | Groq Β· Mistral Β· OpenRouter Β· Ollama (auto-fallback) |
| π Voice cloning | Pocket-TTS zero-shot cloning from a 5-second reference WAV |
| π₯ macOS system actions | Open URLs/apps, create/read/write/delete files, screenshots, sysinfo |
| π‘ Telegram bot | Optional webhook integration |
| π¨ Holographic HUD | Microphone-reactive Three.js blob, FFT bands, provider status |
- OS: macOS (system actions use
screencapture,pmset,open) - Node.js β₯ 18
- Python β₯ 3.10
- API keys (optional): Groq, OpenRouter, Mistral, or Hugging Face β or run fully locally with Ollama
Warning
Never commit .env files or hard-code API keys.
- All
.envfiles and virtual environments are in.gitignore. - Manage keys at runtime via the Settings β API Keys tab in the frontend.
Jarvisai/
βββ backend/
β βββ app/
β β βββ main.py # FastAPI app, routes, CORS
β β βββ brain.py # LLM provider logic + fallback chain
β β βββ tools.py # macOS system-action dispatcher
β β βββ tts.py # TTS synthesis (HuggingFace / Coqui / gTTS)
β β βββ voice_engine.py # Pocket-TTS voice cloning engine
β β βββ telegram_bot.py # Optional Telegram webhook
β β βββ models.py # Pydantic request/response models
β βββ voices/ # Generated audio output (git-ignored)
β βββ .env.example
β βββ requirements.txt
βββ frontend/
β βββ src/
β β βββ App.tsx # Main application shell
β β βββ components/ # MicBlobScene, SettingsModal, TerminalLog
β β βββ hooks/ # useSpeechToText, useDubbedAudio
β β βββ config.ts # API_BASE configuration
β βββ package.json
βββ start.sh # One-command launcher
git clone https://github.com/satiricalguru/Jarvis.git
cd Jarvis
# Install backend deps
cd backend && python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt && cp .env.example .env
cd ..
# Install frontend deps
cd frontend && npm install && cd ..
# Launch both servers
chmod +x start.sh && ./start.shOpen http://localhost:5173 in your browser.
cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # then fill in your keys
uvicorn app.main:app --reload --port 8000cd frontend
npm install
npm run dev # runs at http://localhost:5173- Place a 5-second WAV sample of your target voice at
backend/voices/jarvis.wav. - Add your
HUGGINGFACE_TOKENtobackend/.envand accept the pocket-tts model terms. - Chat replies will automatically be dubbed in that voice.
cd backend && source .venv/bin/activate
pip install -r requirements-tts-coqui.txtThis project is licensed under the MIT License β see LICENSE for details.