5.8 KiB
title, description
| title | description |
|---|---|
| Downloads | Download the OpenJarvis desktop app, browser app, CLI, or Python SDK |
Downloads
OpenJarvis runs entirely on your hardware. Choose the interface that fits your workflow.
Desktop App
The native desktop app bundles Ollama (the inference engine) and the OpenJarvis Python backend into a single installer. Download, open, and start chatting — no terminal required.
Download
| Platform | Download | Notes |
|---|---|---|
| macOS (Apple Silicon) | :material-download: OpenJarvis.dmg | M1/M2/M3/M4 Macs |
| macOS (Intel) | :material-download: OpenJarvis.dmg | Intel Macs (2020 and earlier) |
| Windows (64-bit) | :material-download: OpenJarvis-setup.exe | Windows 10+ |
| Linux (DEB) | :material-download: OpenJarvis.deb | Ubuntu, Debian |
| Linux (RPM) | :material-download: OpenJarvis.rpm | Fedora, RHEL |
!!! tip "All releases" Browse all versions on the GitHub Releases page.
What's included
The desktop app ships with:
- Ollama sidecar — inference engine runs automatically in the background
- OpenJarvis backend — Python API server managed by the app
- Full chat UI — same interface as the browser app
- Energy monitoring — real-time power consumption tracking
- Telemetry dashboard — token throughput, latency, and cost comparison
Build from source
git clone https://github.com/HazyResearch/OpenJarvis.git
cd OpenJarvis/desktop
npm install
npm run tauri build
The built installer will be in desktop/src-tauri/target/release/bundle/.
Browser App
Run the full chat UI in your browser. Everything stays local — the backend runs on
your machine and the frontend connects via localhost.
One-command setup
git clone https://github.com/HazyResearch/OpenJarvis.git
cd OpenJarvis
./scripts/quickstart.sh
The script handles everything:
- Checks for Python 3.10+ and Node.js 22+
- Installs Ollama if not present and pulls a starter model
- Installs Python and frontend dependencies
- Starts the backend API server and frontend dev server
- Opens
http://localhost:5173in your browser
Manual setup
If you prefer to run each step yourself:
=== "Step 1: Clone and install"
```bash
git clone https://github.com/HazyResearch/OpenJarvis.git
cd OpenJarvis
uv sync --extra server
cd frontend && npm install && cd ..
```
=== "Step 2: Start Ollama"
```bash
# Install from https://ollama.com if not already installed
ollama serve &
ollama pull qwen3:0.6b
```
=== "Step 3: Start backend"
```bash
uv run jarvis serve --port 8000
```
=== "Step 4: Start frontend"
```bash
cd frontend
npm run dev
```
Then open http://localhost:5173.
What you get
- Chat interface — markdown rendering, streaming responses, conversation history
- Tool use — calculator, web search, code interpreter, file I/O
- System panel — live telemetry, energy monitoring, cost comparison vs. cloud models
- Dashboard — energy graphs, trace debugging, cost breakdown
- Settings — model selection, agent configuration, theme toggle
CLI
The command-line interface is the fastest way to interact with OpenJarvis programmatically. Every feature is accessible from the terminal.
Install
=== "uv (recommended)"
```bash
uv pip install openjarvis
```
=== "pip"
```bash
pip install openjarvis
```
=== "From source"
```bash
git clone https://github.com/HazyResearch/OpenJarvis.git
cd OpenJarvis
uv sync
```
Verify
jarvis --version
# jarvis, version 1.0.0
First commands
# Ask a question
jarvis ask "What is the capital of France?"
# Use an agent with tools
jarvis ask --agent orchestrator --tools calculator "What is 137 * 42?"
# Start the API server
jarvis serve --port 8000
# Run diagnostics
jarvis doctor
# List available models
jarvis model list
# Interactive chat
jarvis chat
!!! info "Inference backend required" The CLI requires a running inference backend (e.g., Ollama). See the Installation guide for setup instructions.
Python SDK
For programmatic access, the Jarvis class provides a high-level sync API.
Install
pip install openjarvis
Quick example
from openjarvis import Jarvis
j = Jarvis()
print(j.ask("Explain quicksort in two sentences."))
j.close()
With agents and tools
result = j.ask_full(
"What is the square root of 144?",
agent="orchestrator",
tools=["calculator", "think"],
)
print(result["content"]) # "12"
print(result["tool_results"]) # tool invocations
print(result["turns"]) # number of agent turns
Composition layer
For full control, use the SystemBuilder:
from openjarvis import SystemBuilder
system = (
SystemBuilder()
.engine("ollama")
.model("qwen3:8b")
.agent("orchestrator")
.tools(["calculator", "web_search", "file_read"])
.enable_telemetry()
.enable_traces()
.build()
)
result = system.ask("Summarize the latest AI news.")
system.close()
See the Python SDK guide for the full API reference.