jarvis
Jarvis meta-repository: shared docs, configs, and setup scripts
What is it?
What it is
A self-hosted, extensible voice assistant that runs entirely locally, handling wake words, speech-to-text, text-to-speech, and speaker identification without cloud dependency. It includes 20 built-in commands and allows users to create custom commands via the AI Forge.
Why it exists
To provide privacy-focused, local voice assistance by eliminating cloud reliance, ensuring user data remains on-premises while offering extensibility through community packages and AI-generated commands.
Who should use it
Privacy-conscious users, developers seeking self-hosted voice assistant customization, and tech-savvy individuals wanting local control over voice interactions.
Who should avoid it
Users prioritizing convenience over privacy, those without technical expertise to manage Docker/GPU setups, and individuals preferring fully managed cloud services.
How it works
A quick walkthrough in plain English
How jarvis works
Step 1 of 3
You interact with it
Open jarvis, send a request, or connect it to your stack.
Features
Advantages
- Maximum privacy with all processing done locally on user's hardware
- Extensibility through natural language commands via AI Forge
- Cost-effective deployment with Pi Zero voice nodes
- Modular design allows selective upgrades without full system overhaul
- Strong security model with app-to-app authentication and centralized logging
- Fast local inference optimized through prefix caching
- Community-driven package ecosystem with Pantry store
- Supports both cloud and local LLM options for flexibility
- Speaker identification enhances personalization and security
- Open-source with clear licensing (AGPL-3.0 for core, Apache-2.0 for packages)
- Active development with comprehensive testing across 64+ repositories
- Real-time streaming audio processing reduces latency
- Self-hosted alternatives to commercial cloud assistants
Disadvantages
- Requires technical expertise for setup and maintenance (Docker, GPU configuration)
- Local LLM deployment demands significant hardware resources (8+ GB RAM, GPU recommended)
- Community packages may introduce security risks if not vetted properly
- Initial installation complexity compared to cloud-based alternatives
- Limited built-in commands (20) vs. extensive community packages (24+)
- Pi Zero nodes require additional hardware (mic/speaker HAT) for full functionality
- Cloud LLM option still involves data transmission to third-party providers
- Modular architecture may lead to integration challenges for advanced users
- No official demo video in README (marked as TODO)
- Some features (e.g., prompt providers) are in development (WIP status)
- Hardware requirements may be prohibitive for low-end devices
- Self-hosted nature requires ongoing maintenance and updates
Installation
docker
curl -fsSL https://raw.githubusercontent.com/alexberardi/jarvis-admin/main/install.sh | sh
FAQ
How do I install Jarvis on my home server?
Use the one‑line installer: `curl -fsSL https://raw.githubusercontent.com/alexberardi/jarvis-admin/main/install.sh | sh`. The script pulls the `jarvis-admin` wizard, detects your hardware, creates an admin account, and downloads the chosen LLM model. After the install, open `http://localhost:7711` to finish setup. For advanced options (TrueNAS, GPU drivers, custom Docker networks) see the full guide at https://docs.jarvisautomation.dev/getting-started/installation/.
Can I run Jarvis without a GPU?
Yes. Point the LLM proxy at a cloud API (Claude, GPT, Ollama, or any OpenAI‑compatible endpoint) by setting the `LLM_PROXY_URL` in the config. The rest of the stack runs locally on a modest Docker host (4 cores, 8 GB RAM). This mode keeps all other components local but sends transcripts to the cloud provider, so it’s a trade‑off between convenience and privacy.
What is a Pi Zero voice node and how do I set it up?
A Pi Zero 2 W with a mic/speaker HAT (e.g., ReSpeaker 2‑Mics) becomes a room‑scale voice endpoint. Install the node software with `jarvis-node-setup` (Python) or the mobile voice node app. The node authenticates with the command center via an API key, streams audio to the host, and receives spoken responses. It’s headless‑provisioned from the mobile app and can be deployed in multiple rooms.
How do I add my own command to Jarvis?
Use the Developer Toolkit: `pip install git+https://github.com/alexberardi/jarvis-developer-toolkit.git`. Scaffold a new command with `jdt init my_command --type command`, implement the logic, run `jdt test .` to validate, and deploy with `jdt deploy local .`. The command will appear in the command center and can be invoked by voice or the web chat.
Is my data private when using Jarvis?
All core components (STT, TTS, command routing, logs) run locally. With a fully local LLM (llama.cpp, vLLM, MLX) no data leaves your machine. Speaker identification scopes memories and preferences per user. If you use a cloud LLM, only the transcript is sent to the provider; other data stays local. You can also use text‑only chat or silent push notifications to avoid audio output.
Featured in Videos
YouTube tutorials and walkthroughs for jarvis
Alternatives
Similar projects ranked by category, topics, and text overlap.