mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 05:12:26 +00:00
The documented install command pointed at `https://openjarvis.ai/install.sh`, but that domain is community-operated (not controlled by this project) and its TLS config broke — every new user hit `sslv3 alert handshake failure` (#337, #352). Since we can't fix a domain we don't control, this moves the installer onto infrastructure we DO control: the project's GitHub Pages docs site. Changes: - **`docs/gen_install_script.py`** (new) + **`mkdocs.yml`**: a `gen-files` hook copies `scripts/install/install.sh` verbatim into the built site at `install.sh` on every `mkdocs build`. Single source of truth — the script stays at `scripts/install/install.sh` (still bundled into the wheel as `_install_scripts/`); the published copy can't drift. Verified locally: `mkdocs build` emits `site/install.sh` byte-identical to the source. New canonical URL: `https://open-jarvis.github.io/OpenJarvis/install.sh` — HTTPS always valid (GitHub's cert), fully under project control. - **`README.md`**: canonical command switched to the github.io URL for both the Installation and Quick Start blocks. Also addresses the uv discoverability gap — explicitly states the curl installer downloads uv for you (no prerequisite), and that the Windows **desktop .exe** expects uv to be installed first, with the exact PowerShell command. - **`docs/getting-started/{install,wsl2,macos,linux}.md`**: canonical URL switched to github.io. `install.md` gains an "Install URL" info note explaining the github.io URL is canonical and that the older `openjarvis.ai` URL is community-operated with intermittent TLS issues. - **`scripts/install/install.sh`** + **`jarvis-wrapper.sh`**: usage comment, the WSL re-run hint (added in #399), and the wrapper's re-install message all updated to the github.io URL. Migration note for maintainers: ask whoever operates `openjarvis.ai` to CNAME it to `open-jarvis.github.io`. Once they do, `openjarvis.ai/install.sh` will serve this same GitHub Pages content with a valid GitHub-managed cert, and the nicer brand URL can become canonical again with zero further code changes. Until then, the github.io URL works and is under our control. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
125 lines
4.3 KiB
Markdown
125 lines
4.3 KiB
Markdown
# Installation
|
|
|
|
OpenJarvis ships a one-line installer for macOS, Linux, and WSL2.
|
|
|
|
```bash
|
|
curl -fsSL https://open-jarvis.github.io/OpenJarvis/install.sh | bash
|
|
```
|
|
|
|
The installer downloads everything for you — including [uv](https://docs.astral.sh/uv/)
|
|
(the Python package manager), the Python venv, Ollama, and a small starter
|
|
model. **You don't need to install uv or any other prerequisite first.**
|
|
|
|
!!! info "Install URL"
|
|
This script is served straight from the project's own GitHub Pages site,
|
|
so HTTPS always works. You may also see `https://openjarvis.ai/install.sh`
|
|
referenced in older docs — that domain is community-operated and has had
|
|
intermittent TLS issues ([#337](https://github.com/open-jarvis/OpenJarvis/issues/337)).
|
|
The `open-jarvis.github.io` URL above is the canonical one.
|
|
|
|
About 3 minutes on a typical broadband connection. Type `jarvis` to start chatting.
|
|
|
|
## What the installer does
|
|
|
|
| Phase | Step | Where |
|
|
|---|---|---|
|
|
| Foreground | Install `uv` (Python package manager) | `~/.cargo/bin/` or `~/.local/bin/` |
|
|
| Foreground | Clone OpenJarvis repo | `~/.openjarvis/src/` |
|
|
| Foreground | Create Python 3.11 venv | `~/.openjarvis/.venv/` |
|
|
| Foreground | `uv pip install -e .` (editable install) | venv |
|
|
| Foreground | Install Ollama | system default |
|
|
| Foreground | Start `ollama serve` | systemd-user / launchd / nohup |
|
|
| Foreground | Pull `qwen3.5:2b` (~1.5 GB) | Ollama's model store |
|
|
| Foreground | Write `config.toml` (auto-detected hardware + engine + model) | `~/.openjarvis/config.toml` |
|
|
| Foreground | Symlink `jarvis` and `jarvis-uninstall` | `~/.local/bin/` |
|
|
| Foreground | Add `~/.local/bin` to PATH if missing (with on-screen notice) | `~/.bashrc` or `~/.zshrc` |
|
|
| Background | Install Rust toolchain via rustup | `~/.cargo/` |
|
|
| Background | Build the maturin extension (memory + security features) | venv |
|
|
| Background | Pull hardware-tier and tier+1 models | Ollama's model store |
|
|
|
|
## What the installer does NOT touch
|
|
|
|
- Your existing Python installations
|
|
- Your `~/.bashrc` / `~/.zshrc` other than appending one PATH line (with on-screen notice)
|
|
- Your existing Ollama models
|
|
- Any other tool or dotfile
|
|
|
|
## Idempotent re-runs
|
|
|
|
Re-running the curl line is safe. The installer reads `~/.openjarvis/.state/install-state.json` and skips completed steps. If your venv got nuked, re-running heals it.
|
|
|
|
## Cloud quick-path
|
|
|
|
If any of these env vars are set when you install or run `jarvis init`, the installer/init proposes cloud as the default and writes the matching provider into `config.toml`:
|
|
|
|
- `OPENROUTER_API_KEY`
|
|
- `ANTHROPIC_API_KEY`
|
|
- `OPENAI_API_KEY`
|
|
- `GOOGLE_API_KEY` (or `GEMINI_API_KEY`)
|
|
|
|
Local-first remains the default when no key is in env. Precedence is OpenRouter > Anthropic > OpenAI > Google.
|
|
|
|
## Flags
|
|
|
|
| Flag | Effect |
|
|
|---|---|
|
|
| `--minimal` | Skip the foreground model pull. First chat will need to wait for the bg pull to finish. |
|
|
| `--no-bg-orchestrator` | Don't detach the background work pipeline. (Mostly for testing.) |
|
|
| `--force` | Re-run all steps even if `install-state.json` says they're done. |
|
|
|
|
## Environment overrides
|
|
|
|
| Variable | Default | Purpose |
|
|
|---|---|---|
|
|
| `OPENJARVIS_HOME` | `$HOME/.openjarvis` | Install location. |
|
|
| `OPENJARVIS_REPO_URL` | `https://github.com/open-jarvis/OpenJarvis.git` | Source repo for the clone step. |
|
|
|
|
## Uninstall
|
|
|
|
```bash
|
|
jarvis-uninstall
|
|
```
|
|
|
|
Removes `~/.openjarvis/`, `~/.local/bin/jarvis`, and `~/.local/bin/jarvis-uninstall`. Leaves Ollama, uv, and the Rust toolchain in place (they may be used by other tools); the script prints removal hints.
|
|
|
|
## Updating
|
|
|
|
```bash
|
|
jarvis update
|
|
```
|
|
|
|
Pulls the latest source, refreshes the editable install, and rebuilds the Rust extension in the background. Models are not touched.
|
|
|
|
## Troubleshooting
|
|
|
|
### "command not found: jarvis"
|
|
|
|
`~/.local/bin` isn't on your PATH. Run `source ~/.bashrc` (or `~/.zshrc`) or open a new terminal.
|
|
|
|
### "memory features unavailable"
|
|
|
|
Rust extension hasn't finished building yet (or failed). Check status:
|
|
|
|
```bash
|
|
jarvis doctor
|
|
```
|
|
|
|
Manually retry:
|
|
|
|
```bash
|
|
~/.openjarvis/.scripts/install-rust.sh && ~/.openjarvis/.scripts/build-extension.sh
|
|
```
|
|
|
|
### A bigger model failed to download
|
|
|
|
Check status and retry:
|
|
|
|
```bash
|
|
jarvis doctor
|
|
~/.openjarvis/.scripts/pull-model.sh qwen3.5:9b
|
|
```
|
|
|
|
### Behind a corporate proxy
|
|
|
|
Set `HTTPS_PROXY` and `CURL_CA_BUNDLE` in your environment before running the installer.
|