mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-27 21:05:34 +00:00
fix(install): Windows discoverability + Git Bash early bail + concrete uv install command (#399)
Follow-up to PR #398. Three surface fixes for the Windows install confusion documented in two Discord support threads. See PR #399 for the full breakdown.
This commit is contained in:
@@ -31,11 +31,22 @@ OpenJarvis is that stack. It is a framework for local-first personal AI, built a
|
||||
|
||||
## Installation
|
||||
|
||||
**macOS / Linux:**
|
||||
|
||||
```bash
|
||||
curl -fsSL https://openjarvis.ai/install.sh | bash
|
||||
```
|
||||
|
||||
> **If you see `sslv3 alert handshake failure` on `openjarvis.ai`** ([issue #337](https://github.com/open-jarvis/OpenJarvis/issues/337)), use the GitHub mirror until the domain is restored:
|
||||
**Windows:** the installer is a `bash` script and won't run in PowerShell or `cmd`. Pick one of:
|
||||
|
||||
- **WSL2 (recommended for the CLI / Python SDK)** — one-time setup in an admin PowerShell, then run the same `curl … | bash` inside Ubuntu:
|
||||
```powershell
|
||||
wsl --install -d Ubuntu-24.04
|
||||
```
|
||||
Open the Ubuntu shell that gets installed, then follow [WSL2 install instructions](https://open-jarvis.github.io/OpenJarvis/getting-started/wsl2/).
|
||||
- **Desktop app** — download the `.exe` from the [Releases page](https://github.com/open-jarvis/OpenJarvis/releases) for the GUI experience, no terminal required.
|
||||
|
||||
> **If `curl` fails on `openjarvis.ai` with `sslv3 alert handshake failure`** ([issue #337](https://github.com/open-jarvis/OpenJarvis/issues/337)), use the GitHub mirror until the domain is restored:
|
||||
>
|
||||
> ```bash
|
||||
> curl -fsSL https://raw.githubusercontent.com/open-jarvis/OpenJarvis/main/scripts/install/install.sh | bash
|
||||
@@ -51,7 +62,7 @@ jarvis
|
||||
|
||||
The Rust extension and bigger models continue downloading in the background while you chat. Run `jarvis doctor` to see status.
|
||||
|
||||
**Platforms:** macOS (Intel + Apple Silicon), Linux, WSL2 on Windows.
|
||||
**Platforms:** macOS (Intel + Apple Silicon), Linux, WSL2 on Windows. Native Windows is not supported — use WSL2 or the desktop binary.
|
||||
|
||||
**Manual install / contributors:** see [docs/getting-started/install.md](docs/getting-started/install.md).
|
||||
|
||||
|
||||
@@ -495,14 +495,33 @@ async fn boot_backend(backend: SharedBackend, status: SharedStatus) {
|
||||
|
||||
let uv_bin = resolve_bin("uv");
|
||||
|
||||
// Verify uv is actually installed
|
||||
// Verify uv is actually installed. Concrete per-OS instructions —
|
||||
// the generic "install it from astral.sh" was the #1 source of
|
||||
// confusion on the Discord support thread; users couldn't tell whether
|
||||
// to use winget, scoop, pip, or the official installer.
|
||||
if !std::path::Path::new(&uv_bin).exists() && uv_bin == "uv" {
|
||||
let mut s = status.lock().await;
|
||||
s.error = Some(
|
||||
"Could not find 'uv' (Python package manager). \
|
||||
Install it from https://astral.sh/uv then relaunch."
|
||||
.into(),
|
||||
);
|
||||
#[cfg(target_os = "windows")]
|
||||
let msg = "Could not find 'uv' (Python package manager). \
|
||||
To install on Windows, open PowerShell and run:\n\n\
|
||||
powershell -ExecutionPolicy Bypass -c \"irm https://astral.sh/uv/install.ps1 | iex\"\n\n\
|
||||
Then close and relaunch this app. \
|
||||
(If the install completes but the app still can't find uv, \
|
||||
you may need to log out and back in so PATH refreshes.)";
|
||||
#[cfg(target_os = "macos")]
|
||||
let msg = "Could not find 'uv' (Python package manager). \
|
||||
To install on macOS, open Terminal and run:\n\n\
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh\n\n\
|
||||
Then relaunch this app.";
|
||||
#[cfg(target_os = "linux")]
|
||||
let msg = "Could not find 'uv' (Python package manager). \
|
||||
To install on Linux, open a terminal and run:\n\n\
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh\n\n\
|
||||
Then relaunch this app.";
|
||||
#[cfg(not(any(target_os = "windows", target_os = "macos", target_os = "linux")))]
|
||||
let msg = "Could not find 'uv' (Python package manager). \
|
||||
Install it from https://astral.sh/uv then relaunch.";
|
||||
s.error = Some(msg.into());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,40 @@ for arg in "$@"; do
|
||||
esac
|
||||
done
|
||||
|
||||
# ---- non-WSL Windows refusal ----
|
||||
# Running the installer in Git Bash / MSYS2 / Cygwin on native Windows
|
||||
# (i.e. NOT inside WSL2) gets the user into a confusing failure state:
|
||||
# uv/git tooling installs to Windows paths the rest of OpenJarvis can't
|
||||
# reach, and Ollama integration silently breaks. The supported Windows
|
||||
# path is WSL2. Bail early with a clear next step rather than letting
|
||||
# users discover this 3 minutes into a doomed install.
|
||||
case "$(uname -s 2>/dev/null)" in
|
||||
MINGW*|MSYS*|CYGWIN*)
|
||||
cat >&2 <<'EOF'
|
||||
install.sh: native Windows (Git Bash / MSYS2 / Cygwin) is not supported.
|
||||
|
||||
OpenJarvis runs on Windows via WSL2. Two paths:
|
||||
|
||||
1. WSL2 (recommended for the CLI). One-time setup in an admin PowerShell:
|
||||
|
||||
wsl --install -d Ubuntu-24.04
|
||||
|
||||
Open the Ubuntu shell that gets installed, then re-run:
|
||||
|
||||
curl -fsSL https://openjarvis.ai/install.sh | bash
|
||||
|
||||
(or the github mirror — see README if openjarvis.ai is down.)
|
||||
|
||||
2. Desktop app — download the .exe from the Releases page:
|
||||
https://github.com/open-jarvis/OpenJarvis/releases
|
||||
|
||||
See the WSL2 install guide for the full walkthrough:
|
||||
https://open-jarvis.github.io/OpenJarvis/getting-started/wsl2/
|
||||
EOF
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# ---- root refusal ----
|
||||
if [[ "$(id -u)" -eq 0 ]]; then
|
||||
cat >&2 <<'EOF'
|
||||
|
||||
Reference in New Issue
Block a user