Local Gemini Live desktop assistant with a PyQt6 interface, voice interaction, detachable panels, and optional browser, file, screen, and messaging tools.
JARVIS also includes a dedicated presentation studio that creates, edits,
redesigns, and extends editable widescreen .pptx decks from documents, data,
images, audio, and video, with optional PDF export. See the
usage guide for examples.
You need Python 3.11 or newer installed to set up and run JARVIS. Confirm your Python version before continuing:
python --versionIn Terminal, run:
git clone https://github.com/MAL19INDUSTRIES/JARVIS-OS-V.2.git
cd JARVIS-OS-V.2
python scripts/setup_jarvis.pyOn Windows, you can double-click scripts/setup_jarvis.bat instead.
Open .env, add your GEMINI_API_KEY, then launch JARVIS:
jarvisYou only need to run setup once. Activate .venv when opening a new terminal,
then type jarvis.
JARVIS's core UI, Gemini connection, presentations, research, files, and CLI are cross-platform. Some computer-control, email, media, and browser integrations depend on permissions and available applications on each operating system.
The repository also contains a multi-user FastAPI service and a Next.js web client. Hosted sessions use Postgres for user-scoped memory and configuration, Redis for request quotas, encrypted per-user Gemini keys, and Gemini Live over an authenticated WebSocket. The desktop launcher continues to use its local stores and full local action inventory.
Start the complete local web stack with Docker:
docker compose up --buildThen open http://localhost:3000. To run each service directly:
# API
cp .env.example .env
alembic upgrade head
uvicorn api.server:app --reload
# Web client
cd web
cp .env.example .env.local
npm install
npm run devProduction templates are included for Fly.io (fly.toml), Render
(render.yaml), and Vercel (web/vercel.json). Configure DATABASE_URL,
REDIS_URL, JWT_SECRET, JARVIS_ENCRYPTION_KEY, and CORS_ORIGINS on the
API host. Configure NEXT_PUBLIC_API_URL and NEXT_PUBLIC_WS_URL on Vercel.
The deployment workflow runs manually after the Fly and Vercel repository
secrets have been added.
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt
cp .env.example .env
./scripts/install_jarvis_cli.sh
jarvisSet GEMINI_API_KEY in .env before launch. Optional settings such as voice and local API keys are documented in .env.example.
The CLI launcher is included in this repository. After cloning and completing the one-time setup, install it for your user with:
./scripts/install_jarvis_cli.shOpen a new terminal (or reload your shell profile), then start JARVIS with:
jarvisBefore packaging or releasing the desktop app, run the side-effect-safe capability audit:
jarvis --self-testThe audit exercises voice/tool contracts, messaging routing and approval
boundaries, a local browser interaction, isolated file operations, vision,
agent recovery, and memory. It never sends a real message or performs a live
desktop mutation. Results that still require a person, account, or physical
device are labeled LIVE CHECK REQUIRED, and a JSON report is written under
.qa-artifacts/.
Alternatively, from an activated virtual environment, python3 -m pip install -e .
installs the same jarvis command through the standard Python package entry point.
Template files are included for local setup:
.env.exampleconfig/api_keys.example.jsonconfig/layout_settings.example.jsonconfig/ui_settings.example.jsonmemory/long_term.example.jsonmemory/task_history.example.json
- Keep
.envand local secret files out of git. - Do not commit
memory/long_term.jsonorconfig/api_keys.json. - Run
python3 -m py_compile main.py ui.pybefore tagging a release.
MIT License, see LICENSE.