mirror of
https://github.com/open-jarvis/OpenJarvis.git
synced 2026-07-28 05:12:26 +00:00
Closes Phase-1 of #298 (Native Windows Support RFC). Reverses the long-standing "native Windows is not supported" stance. PowerShell installer at `deploy/windows/install.ps1` (published to https://open-jarvis.github.io/OpenJarvis/install.ps1) plus a `jarvis-service.ps1` scheduled-task helper that mirrors `deploy/systemd/openjarvis.service` and `deploy/launchd/com.openjarvis.plist`. Loopback default (127.0.0.1, no API key) — same as launchd. One-liner install: irm https://open-jarvis.github.io/OpenJarvis/install.ps1 | iex Adversarial review caught and fixed two real bugs pre-commit: 1. `irm | iex` drops `param()` flags — added env-var fallbacks (OPENJARVIS_SKIP_SERVICE / OPENJARVIS_SERVICE / OPENJARVIS_FORCE). 2. Scheduled tasks don't inherit the registering session's env — the LAN-exposed `OPENJARVIS_API_KEY` path now persists the key to User scope so the task's logon environment can read it. Supersedes #434 (the guidance-only "use WSL2" install.ps1). Massive thanks to @SeCuReDmE-main-dev for the careful RFC #298 — the three-phase decomposition (install / service / shared-memory bridge) is exactly the right framing. This PR ships Phase-1 and Phase-2 of the RFC fused into one release; Phase-3 (shared memory bridge) remains future work. Thanks also to @KadenBordeaux for raising #334 ("'bash' is not recognized as the name of a cmdlet"). That report is what made this whole Windows-support cluster a priority — without your bug report the unsupported stance would still be in the README. The friction you hit motivated #432 (numpy/python cap), #433 (CLI startup resilience), #436 (python discovery helpers), #437 (desktop launcher fix), and this PR. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
Native Windows (advanced)
Phase-1 of the native-Windows-support RFC (#298). Mirrors the Linux (systemd) and macOS (launchd) deployments — but for PowerShell, without WSL2 or Docker. Choose this over WSL2 only if you want to avoid a Linux VM; WSL2 remains the smoother experience for most users.
What you get
- A PowerShell installer that probes prerequisites, installs
uv, clones the repo, and runsuv sync --extra server. - An optional Windows scheduled-task service equivalent to the systemd unit and launchd plist.
- Loopback default — the service binds
127.0.0.1so no API key is required.
What you need
- Windows 10 1809+ or Windows 11.
- Python 3.10 – 3.13 (Python 3.14 has no numpy Windows wheels yet — see #432).
giton PATH.- ~5 GB free disk on
%LOCALAPPDATA%.
Install
In any PowerShell:
irm https://open-jarvis.github.io/OpenJarvis/install.ps1 | iex
The installer will:
- Refuse non-Windows hosts and old Windows builds.
- Confirm Python 3.10 – 3.13.
- Confirm
git. - Install
uvif absent (via the officialastral.sh/uvPowerShell installer). - Clone the repo to
%LOCALAPPDATA%\OpenJarvis\src. - Run
uv sync --extra server. - Prompt to register the scheduled-task service (skip with
-SkipService).
Run it
cd "$env:LOCALAPPDATA\OpenJarvis\src"
uv run jarvis serve
Open http://127.0.0.1:8000/health to verify.
Scheduled-task service
If you skipped the prompt during install, register the auto-start task manually:
$srv = "$env:LOCALAPPDATA\OpenJarvis\src\deploy\windows\jarvis-service.ps1"
powershell -ExecutionPolicy Bypass -File $srv install
State:
powershell -ExecutionPolicy Bypass -File $srv status
Remove:
powershell -ExecutionPolicy Bypass -File $srv uninstall
See deploy/windows/README.md
for the LAN-exposed configuration and the parity table against
systemd / launchd.
See also
- WSL2 install — the recommended Windows path.
- Full installer reference.