Files
OpenJarvis/docs/getting-started/windows-native.md
T
26bc7efb09 fix(packaging): make openjarvis-rust a uv-only group to unblock pip install openjarvis[desktop] (#624)
* fix(packaging): make openjarvis-rust a uv-only dependency group (unblock pip[desktop])

#615 added openjarvis-rust to the published `desktop` extra so
`uv sync --extra desktop` builds the native PyO3 extension for the desktop
app. But openjarvis-rust is not on PyPI and `[tool.uv.sources]` is stripped
from published wheel metadata, so `pip install openjarvis[desktop]` from PyPI
failed at install trying to resolve openjarvis-rust from PyPI (#584).

Move openjarvis-rust into a uv `desktop-native` dependency group (PEP 735 —
excluded from wheel metadata) and sync it in the desktop app via
`uv sync --group desktop-native`. The extension is still built from the local
path source; only the published metadata changes.

Verified: the built wheel no longer lists openjarvis-rust in any Requires-Dist
(nowhere in the metadata), and uv.lock still resolves it from the local path
source under the group. Adds tests/deployment/test_packaging.py to guard the
split (not in the published extra, present in the group, path source, and the
desktop app syncs the group).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(packaging): sync native group in install paths

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Elliot Slusky <elliot@slusky.com>
2026-07-01 13:02:13 -07:00

2.2 KiB
Raw Blame History

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 runs uv sync --extra desktop --group desktop-native.
  • An optional Windows scheduled-task service equivalent to the systemd unit and launchd plist.
  • Loopback default — the service binds 127.0.0.1 so 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).
  • git on PATH.
  • ~5 GB free disk on %LOCALAPPDATA%.

Install

In any PowerShell:

irm https://open-jarvis.github.io/OpenJarvis/install.ps1 | iex

The installer will:

  1. Refuse non-Windows hosts and old Windows builds.
  2. Confirm Python 3.10 3.13.
  3. Confirm git.
  4. Install uv if absent (via the official astral.sh/uv PowerShell installer).
  5. Clone the repo to %LOCALAPPDATA%\OpenJarvis\src.
  6. Run uv sync --extra desktop --group desktop-native.
  7. 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