---
title: Windows Installer (real progress + zero-click updates)
---

# Windows Installer (real progress + zero-click updates)

## What it is

TWO Windows install artifacts, layered (2026-08-15):

- **`Omniscio-Installer-<version>.exe` — the branded bootstrap stub (~2MB), the PRIMARY
  download.** A fully custom frameless Omniscio window in the brand Aurora/glass language
  (soft aurora backdrop, the orb + OMNISCIO wordmark drawn LIVE so they're crisp at any DPI,
  an install location you can edit OR pick with a Browse button — it opens the native Windows
  folder chooser (preselecting your current folder) and appends `Omniscio` to the folder you
  choose, so you never type a path — and one Install button; the exe + taskbar carry the orb
  icon): it checks the drive has enough free space first, then
  downloads the current release from the update feed with a real byte percentage AND a real
  measured time-left, verifies
  its SHA-512 against latest.yml BEFORE running anything, installs silently per-user with an
  honest "working" animation (no fabricated time), then shows a "You're all set" screen with
  a Launch button — the Discord-style one-click experience with zero Windows-wizard chrome.
  Failures (offline / checksum mismatch / installer error / a too-full drive) show a
  plain-English message with a **Try Again** button and a "Get the full installer instead"
  link. See
  [bootstrap-installer-contract.md](../../.claude/memory/contracts/bootstrap-installer-contract.md).
- **`Omniscio-Setup-<version>.exe` — the full NSIS installer (~450MB), no longer listed on
  the download page** (since 2026-09-01 — visitors kept picking the slow download when the
  stub gives the same install). It still ships with every release: the stub's "Get the full
  installer instead" link reaches it for offline installs, and it is the engine the stub +
  auto-updates drive silently. Re-engineered 2026-08-14 from first principles:
  the old fake "bouncing" progress bar over an empty log (with copy apologizing that
  "that's normal") and the forced clicks on every auto-update are gone.

## Where to find it

The installer lives on the Omniscio download page, where the branded bootstrap stub is the one Windows download. The full NSIS installer is no longer listed there; if the stub cannot finish, its "Get the full installer instead" link opens the release page that carries it. Updates arrive through the in-app update banner, and uninstalling goes through Windows "Add or remove programs".

## How it behaves

### What a FRESH install looks like (the full NSIS wizard)

1. **Welcome** — branded "Welcome to Omniscio" page (Omniscio sidebar art), two short
   sentences, Next. No license click-through page.
2. **Who it's for** — "all users" (needs admin) vs "only for me" (no admin needed; the
   default for a fresh per-user install).
3. **Folder choice** — pick the install location (deliberately kept so users can avoid
   OneDrive/locked folders — see the Mark Cebul incident in
   [installer-progress-display-contract.md](../../.claude/memory/contracts/installer-progress-display-contract.md)).
4. **Install with REAL progress** — a determinate progress bar with live percentage and
   megabyte counts ("Unpacking files 65% (1187 / 1825 MB)...") over a visible log that
   narrates each step (unpack, file moves, shortcuts, registration) as it happens.
5. **Finish** — "Run Omniscio" checked by default; a **Safe Mode launcher** shortcut is
   also created inside the install folder (runs the same exe with `--safe-mode`).

### What an AUTO-UPDATE apply looks like (zero clicks)

Clicking **Restart Now** on the update banner ([app-update-notifications.md](app-update-notifications.md))
quits the app and runs the same installer with `--updated`:

- The welcome and folder pages are SKIPPED — it goes straight to the live-progress screen.
- When the install finishes, the completed page auto-advances and **Omniscio relaunches
  itself** — the user clicks nothing from "Restart Now" to the updated app being back.
- The quiet path is unchanged: an update that applies on app QUIT (the "Later" flow) runs
  silently with no window at all.

### Uninstall

Windows "Add or remove programs" → Uninstall. On a real uninstall (not an update) it asks
whether to ALSO delete your data (sessions, settings, caches) — **defaulting to No** so a
reinstall keeps everything. Data moved via the `DATA_DIR` override must be removed by hand
(the prompt says so).

**Uninstalling does NOT remove your sessions' working copies.** An isolated session works in a
git "worktree" — a private copy of your project — created in a `<your-repo>-worktrees` folder
**beside the repo it belongs to**, not in Omniscio's data directory. The uninstaller cannot see
that folder, so every worktree survives it, and each one until it is removed still holds a
branch and any uncommitted changes that session had. That is deliberate (they belong to your
repos, not to Omniscio, and a reinstall should find them intact) but it means a machine you are
trying to reclaim disk on will keep that space until you clear the `<repo>-worktrees` folders
yourself — one per project you have run isolated sessions against. Delete a folder only after
checking that its branch's work has landed or been saved; anything committed only there lives
nowhere else.

**On macOS and Linux there is no uninstaller, and no data prompt either.** Both platforms ship as
a drag- or double-click-to-run artifact, so removing the app is a manual action and nothing else
is installed alongside it:

- **macOS** — the `.dmg` is a drag-install; uninstalling is moving **Omniscio** from
  **Applications** to the Trash.
- **Linux** — the AppImage is self-contained; uninstalling is deleting the `.AppImage` file you
  run. (Make it executable first with `chmod +x`; that is the whole install.)

**Your data is left behind on every platform, and nothing prompts you about it.** Sessions,
settings, caches and logs live in a data folder OUTSIDE the app — `~/Library/Application Support/omniscio`
on macOS, `~/.config/omniscio` on Linux, `%APPDATA%\omniscio` on Windows ([data-folder-recovery.md](data-folder-recovery.md)
has the full picture, and Settings → General → **Data Folder** shows the exact path on your machine).
The Windows uninstaller is the only one that ever offers to clear it; on macOS and Linux you delete
that folder yourself. That matters beyond disk space: the EULA makes uninstalling the act of
terminating the agreement and says your locally stored data remains on your device until you delete
it, so a mac or Linux user who uninstalled has ended the agreement and still holds every session.

**Session working copies are separate again.** The `<repo>-worktrees` folders described below sit
beside your repos and survive uninstall on every platform, for the same reason.

## For agents

### How it works

- The real progress bar + live log come from a version-pinned pnpm patch to
  electron-builder's NSIS templates
  ([patches/app-builder-lib@26.15.3.patch](../../patches/app-builder-lib@26.15.3.patch)):
  `Nsis7z::ExtractWithDetails` (reports true unpack %) replaces the no-progress
  `Nsis7z::Extract`, and the install section no longer forces the detail log dark.
- The page flow, copy, zero-click update behavior, and uninstall prompt live in
  [build/installer.nsh](../../build/installer.nsh); the branded art regenerates via
  [scripts/gen-installer-art.mjs](../../scripts/gen-installer-art.mjs).
- Everything is locked by
  [installer-progress-display-contract.md](../../.claude/memory/contracts/installer-progress-display-contract.md)
  and its guard test — read the contract BEFORE changing any of it.
- macOS (`.dmg` drag-install) and Linux (AppImage) have no comparable wizard; the portable
  EXE shares the patched extraction but manages its own lifecycle
  (no in-place auto-update).
- The bootstrap stub is [native/win/bootstrap-installer.rs](../../native/win/bootstrap-installer.rs)
  (single-file Rust, ZERO crates — raw Win32/GDI/WinHTTP/BCrypt FFI), built by
  [scripts/build-bootstrap-installer.mjs](../../scripts/build-bootstrap-installer.mjs) into the
  committed `resources/bin/OmniscioInstaller.exe`, Azure-signed with the other bundled helper
  exes, and copied out to `dist/Omniscio-Installer-<version>.exe` by the win32 branch of the
  `afterAllArtifactBuild` hook — which also writes `installer-meta.json` (unpacked size, for
  the stub's honest install progress; published as a no-cache FEED, uploaded last). The
  download page prefers the stub and falls back to the full Setup for pre-stub releases. All
  locked by [bootstrap-installer-contract.md](../../.claude/memory/contracts/bootstrap-installer-contract.md)
  and its guard test.

## Related

[App Update Notifications](app-update-notifications.md) covers the in-app update banner whose Restart Now button drives the zero-click apply described here. [Portable Backup](portable-backup.md) covers the one-file encrypted export and import that is separate from the uninstall prompt's offer to also delete your data.
