Addresses #337 (also reported as #352). `curl -fsSL https://openjarvis.ai/install.sh | bash` — the documented one-liner — currently fails with: curl: (35) ... sslv3 alert handshake failure Reproduced from this machine just now; @kumanday and @filactre both report the same against different OpenSSL and LibreSSL versions. The underlying SSL issue is on the openjarvis.ai server (cert / TLS config) and needs an operational fix at the infra layer — not something a code change in this repo can resolve. What this commit *can* do is unblock users immediately: - `README.md` (under "Installation"): callout pointing at issue #337 and the GitHub-mirror fallback. - `docs/getting-started/install.md`: same callout as a Material-for-MkDocs `!!! warning` admonition. Both link to the canonical script at `https://raw.githubusercontent.com/open-jarvis/OpenJarvis/main/scripts/install/install.sh`. The script is identical content — it's the same `scripts/install/install.sh` served from GitHub's CDN instead of openjarvis.ai. Once the installer runs, it pulls everything else (`uv` from astral.sh, the project source from `github.com/open-jarvis/OpenJarvis.git`, Ollama from `ollama.com`) — none of which depend on `openjarvis.ai`. So the rest of install proceeds normally. When the openjarvis.ai SSL issue is fixed at the server / DNS layer, both callouts can be removed and the canonical URL becomes the only documented path again. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.2 KiB
Installation
OpenJarvis ships a one-line installer for macOS, Linux, and WSL2.
curl -fsSL https://openjarvis.ai/install.sh | bash
!!! warning "openjarvis.ai SSL fallback (issue #337)"
If curl fails on openjarvis.ai with sslv3 alert handshake failure,
fetch the same script from the GitHub mirror until the domain is restored:
```bash
curl -fsSL https://raw.githubusercontent.com/open-jarvis/OpenJarvis/main/scripts/install/install.sh | bash
```
The installer itself pulls everything else (uv, the project source,
Ollama) from independent CDNs (`astral.sh`, `github.com`,
`ollama.com`), so the rest of install proceeds normally.
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/~/.zshrcother 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_KEYANTHROPIC_API_KEYOPENAI_API_KEYGOOGLE_API_KEY(orGEMINI_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
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
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:
jarvis doctor
Manually retry:
~/.openjarvis/.scripts/install-rust.sh && ~/.openjarvis/.scripts/build-extension.sh
A bigger model failed to download
Check status and retry:
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.