Skip to content

Latest commit

Β 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Project J.A.R.V.I.S. πŸ€–

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

image

Table of Contents


Features

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

Prerequisites

  • 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

Security Notice

Warning

Never commit .env files or hard-code API keys.

  • All .env files and virtual environments are in .gitignore.
  • Manage keys at runtime via the Settings β†’ API Keys tab in the frontend.

Project Structure

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

Quick Start

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.sh

Open http://localhost:5173 in your browser.


Manual Installation

1. Backend Setup

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 8000

2. Frontend Setup

cd frontend
npm install
npm run dev                 # runs at http://localhost:5173

Zero-shot Voice Cloning Setup

  1. Place a 5-second WAV sample of your target voice at backend/voices/jarvis.wav.
  2. Add your HUGGINGFACE_TOKEN to backend/.env and accept the pocket-tts model terms.
  3. Chat replies will automatically be dubbed in that voice.

Optional: Coqui TTS Integration

cd backend && source .venv/bin/activate
pip install -r requirements-tts-coqui.txt

License

This project is licensed under the MIT License β€” see LICENSE for details.

About

A futuristic AI assistant inspired by JARVIS β€” featuring a stunning holographic Three.js interface, ultra-realistic voice cloning & TTS synthesis, intelligent conversations, and automated macOS system actions. Built to feel like a real sci-fi AI companion with immersive visuals, smooth interactions, and powerful desktop control capabilities. πŸš€

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages