mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 13:26:48 +00:00
Closes #158 — the README and installation docs assumed uv was already installed without explaining how to get it, creating a barrier for new users (especially on macOS). Adds a prerequisites table to both the README and docs/getting-started/installation.md with platform-specific install commands, and links to the existing macOS step-by-step guide.
341 lines
9.7 KiB
Markdown
341 lines
9.7 KiB
Markdown
---
|
|
title: Installation
|
|
description: Get OpenJarvis running — browser app, desktop app, CLI, or Python SDK
|
|
search:
|
|
boost: 3
|
|
---
|
|
|
|
# Installation
|
|
|
|
OpenJarvis runs entirely on your hardware. Choose the interface that fits your workflow.
|
|
|
|
---
|
|
|
|
## 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
|
|
|
|
```bash
|
|
git clone https://github.com/open-jarvis/OpenJarvis.git
|
|
cd OpenJarvis
|
|
./scripts/quickstart.sh
|
|
```
|
|
|
|
The script handles everything:
|
|
|
|
1. Checks for Python 3.10+ and Node.js 18+
|
|
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/open-jarvis/OpenJarvis.git
|
|
cd OpenJarvis
|
|
uv sync --extra server
|
|
uv run maturin develop -m rust/crates/openjarvis-python/Cargo.toml
|
|
cd frontend && npm install && cd ..
|
|
```
|
|
|
|
!!! note "Prerequisites"
|
|
Requires [Rust](https://rustup.rs/) (`curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh`).
|
|
On Python 3.14+, set `PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1` before the `maturin` command.
|
|
|
|
=== "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](http://localhost:5173).
|
|
|
|
---
|
|
|
|
## Desktop App
|
|
|
|
The desktop app is a native window for the OpenJarvis chat UI. All inference and backend
|
|
processing happens on your local machine — the app connects to the backend you start locally.
|
|
|
|
### Setup
|
|
|
|
**Step 1.** Start the backend (same as Browser App):
|
|
|
|
```bash
|
|
git clone https://github.com/open-jarvis/OpenJarvis.git
|
|
cd OpenJarvis
|
|
./scripts/quickstart.sh
|
|
```
|
|
|
|
**Step 2.** Download and open the desktop app:
|
|
|
|
| Platform | Download |
|
|
|----------|----------|
|
|
| macOS (Apple Silicon) | [:material-download: **OpenJarvis.dmg**](https://github.com/open-jarvis/OpenJarvis/releases/download/desktop-latest/OpenJarvis_0.1.0_aarch64.dmg) |
|
|
| Windows (64-bit) | [:material-download: **OpenJarvis-setup.exe**](https://github.com/open-jarvis/OpenJarvis/releases/download/desktop-latest/OpenJarvis_0.1.0_x64-setup.exe) |
|
|
| Linux (DEB) | [:material-download: **OpenJarvis.deb**](https://github.com/open-jarvis/OpenJarvis/releases/download/desktop-latest/OpenJarvis_0.1.0_amd64.deb) |
|
|
| Linux (RPM) | [:material-download: **OpenJarvis.rpm**](https://github.com/open-jarvis/OpenJarvis/releases/download/desktop-latest/OpenJarvis-0.1.0-1.x86_64.rpm) |
|
|
| Linux (AppImage) | [:material-download: **OpenJarvis.AppImage**](https://github.com/open-jarvis/OpenJarvis/releases/download/desktop-latest/OpenJarvis_0.1.0_amd64.AppImage) |
|
|
|
|
The app connects to `http://localhost:8000` automatically.
|
|
|
|
!!! warning "macOS: \"app is damaged\""
|
|
If macOS says the app is damaged, clear the Gatekeeper quarantine flag:
|
|
```bash
|
|
xattr -cr /Applications/OpenJarvis.app
|
|
```
|
|
This is normal for open-source apps distributed outside the App Store.
|
|
|
|
!!! tip "All releases"
|
|
Browse all versions on the [GitHub Releases](https://github.com/open-jarvis/OpenJarvis/releases) page.
|
|
|
|
### Build from source
|
|
|
|
```bash
|
|
git clone https://github.com/open-jarvis/OpenJarvis.git
|
|
cd OpenJarvis/desktop
|
|
npm install
|
|
npm run tauri build
|
|
```
|
|
|
|
The built installer will be in `desktop/src-tauri/target/release/bundle/`.
|
|
|
|
---
|
|
|
|
## CLI
|
|
|
|
The command-line interface is the fastest way to interact with OpenJarvis
|
|
programmatically. Every feature is accessible from the terminal.
|
|
|
|
### Install
|
|
|
|
```bash
|
|
git clone https://github.com/open-jarvis/OpenJarvis.git
|
|
cd OpenJarvis
|
|
uv sync
|
|
uv run maturin develop -m rust/crates/openjarvis-python/Cargo.toml
|
|
```
|
|
|
|
Requires [Rust](https://rustup.rs/). On Python 3.14+, set `PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1` before the `maturin` command.
|
|
|
|
### Verify
|
|
|
|
```bash
|
|
jarvis --version
|
|
# jarvis, version 0.1.0
|
|
```
|
|
|
|
### First commands
|
|
|
|
```bash
|
|
jarvis ask "What is the capital of France?"
|
|
|
|
jarvis ask --agent orchestrator --tools calculator "What is 137 * 42?"
|
|
|
|
jarvis serve --port 8000
|
|
|
|
jarvis doctor
|
|
|
|
jarvis model list
|
|
|
|
jarvis chat
|
|
```
|
|
|
|
!!! info "Inference backend required"
|
|
The CLI requires a running inference backend (e.g., Ollama). See
|
|
[Setting up an inference backend](#setting-up-an-inference-backend) below.
|
|
|
|
---
|
|
|
|
## Python SDK
|
|
|
|
For programmatic access, the `Jarvis` class provides a high-level sync API.
|
|
|
|
### Install
|
|
|
|
```bash
|
|
git clone https://github.com/open-jarvis/OpenJarvis.git
|
|
cd OpenJarvis
|
|
uv sync
|
|
uv run maturin develop -m rust/crates/openjarvis-python/Cargo.toml
|
|
```
|
|
|
|
Requires [Rust](https://rustup.rs/). On Python 3.14+, set `PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1` before the `maturin` command.
|
|
|
|
### Quick example
|
|
|
|
```python
|
|
from openjarvis import Jarvis
|
|
|
|
j = Jarvis()
|
|
print(j.ask("Explain quicksort in two sentences."))
|
|
j.close()
|
|
```
|
|
|
|
### With agents and tools
|
|
|
|
```python
|
|
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`:
|
|
|
|
```python
|
|
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](../user-guide/python-sdk.md) for the full API reference.
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
| Requirement | Version | Install | Notes |
|
|
|-------------|---------|---------|-------|
|
|
| Python | 3.10+ | [python.org](https://www.python.org/downloads/) | Required |
|
|
| uv | latest | `curl -LsSf https://astral.sh/uv/install.sh \| sh` or `brew install uv` (macOS) | Python package & project manager |
|
|
| Git | any | [git-scm.com](https://git-scm.com/) or `brew install git` (macOS) | Required |
|
|
| Rust | stable | `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \| sh` | Required for the Rust extension |
|
|
| Inference backend | any | See [below](#setting-up-an-inference-backend) | At least one of Ollama, vLLM, llama.cpp, SGLang, or a cloud API |
|
|
| Node.js | 18+ | [nodejs.org](https://nodejs.org/) or `brew install node` (macOS) | Required for the browser UI; 22+ for the WhatsApp Baileys channel bridge |
|
|
|
|
!!! tip "macOS users"
|
|
See the [macOS Installation Guide](macos.md) for a complete step-by-step walkthrough
|
|
covering Homebrew, uv, Rust, llama.cpp, and common pitfalls.
|
|
|
|
## Optional Extras
|
|
|
|
OpenJarvis uses optional extras to keep the base installation lightweight.
|
|
|
|
### Inference Backends
|
|
|
|
| Extra | Install Command | Description |
|
|
|-------|----------------|-------------|
|
|
| `inference-cloud` | `uv sync --extra inference-cloud` | OpenAI and Anthropic APIs |
|
|
| `inference-google` | `uv sync --extra inference-google` | Google Gemini API |
|
|
|
|
!!! note "Ollama, vLLM, and llama.cpp are HTTP-based"
|
|
These engines have no additional Python dependencies — OpenJarvis communicates over HTTP. You still need the engine software running on your machine.
|
|
|
|
### Memory Backends
|
|
|
|
| Extra | Install Command | Description |
|
|
|-------|----------------|-------------|
|
|
| `memory-faiss` | `uv sync --extra memory-faiss` | FAISS vector store |
|
|
| `memory-colbert` | `uv sync --extra memory-colbert` | ColBERTv2 late-interaction retrieval |
|
|
| `memory-bm25` | `uv sync --extra memory-bm25` | BM25 sparse retrieval |
|
|
|
|
!!! tip "SQLite memory is always available"
|
|
The default SQLite/FTS5 memory backend requires no additional dependencies.
|
|
|
|
### Server & Other
|
|
|
|
| Extra | Install Command | Description |
|
|
|-------|----------------|-------------|
|
|
| `server` | `uv sync --extra server` | OpenAI-compatible API server (`jarvis serve`) |
|
|
| `dev` | `uv sync --extra dev` | Development and testing tools |
|
|
| `docs` | `uv sync --extra docs` | Documentation build tools |
|
|
|
|
Combine extras:
|
|
|
|
```bash
|
|
uv sync --extra server --extra memory-faiss --extra inference-cloud
|
|
```
|
|
|
|
## Setting Up an Inference Backend
|
|
|
|
OpenJarvis requires at least one inference backend. Choose the one that matches your hardware.
|
|
|
|
### Ollama (Recommended)
|
|
|
|
The easiest way to get started. Handles model downloading and serving automatically.
|
|
|
|
1. Install from [ollama.com](https://ollama.com)
|
|
2. Start the server and pull a model:
|
|
|
|
```bash
|
|
ollama serve
|
|
ollama pull qwen3:0.6b
|
|
```
|
|
|
|
3. Verify: `jarvis model list`
|
|
|
|
!!! tip "Best for: Apple Silicon Macs, consumer NVIDIA GPUs, CPU-only systems"
|
|
|
|
### vLLM
|
|
|
|
High-throughput serving optimized for datacenter GPUs.
|
|
|
|
1. Install following the [official guide](https://docs.vllm.ai)
|
|
2. Start: `vllm serve Qwen/Qwen2.5-7B-Instruct`
|
|
3. Auto-detected at `http://localhost:8000`
|
|
|
|
!!! tip "Best for: NVIDIA datacenter GPUs (A100, H100), AMD GPUs"
|
|
|
|
### llama.cpp
|
|
|
|
Efficient CPU and GPU inference with GGUF quantized models.
|
|
|
|
1. Build from [github.com/ggerganov/llama.cpp](https://github.com/ggerganov/llama.cpp)
|
|
2. Start: `llama-server -m /path/to/model.gguf --port 8080`
|
|
3. Auto-detected at `http://localhost:8080`
|
|
|
|
### Cloud APIs
|
|
|
|
```bash
|
|
uv sync --extra inference-cloud --extra inference-google
|
|
export OPENAI_API_KEY="sk-..."
|
|
export ANTHROPIC_API_KEY="sk-ant-..."
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
- [Quick Start](quickstart.md) — Run your first query
|
|
- [Configuration](configuration.md) — Customize engine hosts, model routing, memory, and more
|