Files
OpenJarvis/docs/downloads.md
T

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:

  1. Checks for Python 3.10+ and Node.js 22+
  2. Installs Ollama if not present and pulls a starter model
  3. Installs Python and frontend dependencies
  4. Starts the backend API server and frontend dev server
  5. Opens http://localhost:5173 in 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.