No admin. No scripts. Just packages that behave.

Voli is a fast, no-admin package manager for Windows - one static binary, portable apps, clean uninstalls, and a package can never run code on your machine.

PowerShell - no admin
PS>iwr -useb volibear.dev/install | iex

Downloads the latest release, verifies its SHA-256, and runs voli setup (user-level PATH). It does nothing else - read install.ps1 first if you like.

By the numbers

Fewer prompts. Zero surprises.

Not policy - architecture. Each number below holds by construction, not by good intentions.

0

Admin prompts, ever. Never touches HKLM or Program Files - everything lives under your user profile.

~250 KB

Per index update. A signed snapshot fetched over HTTP - not a git clone of a bucket.

100%

Ledgered. Every mutation is recorded, so uninstall replays each action backwards - zero trace.

Guarantees

Four promises, never violated.

Each guarantee is baked into the format, not bolted on after. Here is what that buys you.

Never requires admin

Never touches HKLM or Program Files. Everything lives under your user profile, and junctions need no elevation.

Zero-trace uninstall

voli uninstall x leaves nothing behind - directory, shims, env vars and PATH entries all removed, replayed backwards from the ledger.

No scripts, ever

Install is download → verify hash → extract → shim → consented env. The manifest grammar cannot express code - a package can't run on your machine.

Signed & pinned

Every artifact is SHA-256 verified before extraction. The package index is Ed25519-signed and rejected if the signature doesn't check out.

install
PS> voli search ripgrep
ripgrep   14.1.1   recursively search with a regex
PS> voli install ripgrp
  ! no package 'ripgrp' - did you mean ripgrep?
PS> voli install ripgrep
   ripgrep 14.1.1  verified · extracted · shimmed  (1.2s)
Install

Install anything in seconds.

Full-text search over a local index - instant and offline. Typo a name and voli suggests the closest match instead of failing. Every install is download, verify, extract, shim; transactional per package.

upgrade
PS> voli upgrade --all
   ripgrep 14.1.0  14.1.1
  · flipping current\ junction … atomic
   done - running processes untouched
Upgrade

Upgrades that never break running apps.

Each version lives in its own folder; a current junction points at the active one. Upgrading is an atomic junction flip - a program that's already running keeps using its files and never notices. Pins are respected.

environment
PS> voli install oven-sh.bun
  env  BUN_INSTALL  → add to user PATH? [y/N] y
   set BUN_INSTALL (user)
PS> voli uninstall oven-sh.bun
   removed BUN_INSTALL - replayed from ledger
Environment

Env vars with consent + cleanup.

When a package wants an environment variable, voli asks - it never edits your environment behind your back. And because every change is written to the ledger, uninstall takes it back out again. Nothing lingers.

Reference

The whole CLI on one screen.

Fast, predictable, scriptable. Stable exit codes and --json on list, search and info from day one.

Manage packages
voli install <pkg>[@version] … Install one or more packages from the registry; pin a version with @. Transactional per package.
voli uninstall <pkg> … Remove a package and everything it touched - zero trace, replayed from the ledger.
voli update Refresh the signed package index - one small download (~250 KB), not a git clone.
voli upgrade [<pkg>|--all] Upgrade packages; respects pins. Running apps keep working via the atomic junction flip.
Explore
voli list Everything installed, with versions.
voli search <query> Full-text search over the local index - instant and offline.
voli info <pkg> Version, description, homepage, license and sources for a package.
voli which <bin> Resolve a shim to the real target it points at.
Maintain
voli pin / unpin <pkg> Freeze a package at its current version, excluding it from upgrade --all.
voli cleanup Remove non-current version dirs and stale download cache.
voli doctor Health checks: PATH sanity, env drift, broken shims, sync-folder root warnings.
voli config get|set <key> [value] Read or set configuration such as the install root.
voli setup / self-update Self-install onto the user PATH, and keep voli itself up to date.
Registry

Add your app in three steps.

The registry is declarative and open. No scripts to review - just a manifest.

01

Ship a zip

Publish a portable archive on GitHub Releases - the same one users would download by hand.

02

One TOML manifest

Open a PR with a single declarative manifest: name, version, source URL, SHA-256 and the shims to create.

03

CI signs & ships

Registry CI verifies the hash, rebuilds the index and Ed25519-signs it. Your app is live on the next voli update.

Comparison

How Voli differs from the others.

Same job, different architecture. The rows below are structural properties, not feature-checklist marketing.

  Voli Scoop Chocolatey winget
Runs without admin Always Yes Usually not Often not
Packages can run scripts Never - grammar can't express it Yes Yes (PowerShell) Yes (installers)
Uninstall leaves nothing Ledger-replayed Mostly Installer-dependent Installer-dependent
Upgrade while app is running Atomic junction flip Can break Can break Can break
Index update size ~250 KB signed snapshot git clone per bucket API calls API calls
Index signature Ed25519, enforced Git trust Feed trust MS-signed
Env vars need consent Prompted + reverted Script-dependent Script-dependent Installer-dependent
FAQ
Is it safe?

Safety is built into the format, not bolted on. Every artifact is SHA-256 verified before it's extracted, and the package index is Ed25519-signed - the public key is baked into the binary, and an unsigned or tampered index is rejected outright.

The manifest grammar cannot express code, so there is no post-install script for an attacker to hide something in. Extraction is also protected against zip-slip (archive entries can't escape their folder).

Does it need admin?

Never. Voli never touches HKLM or Program Files - apps live under your user profile, PATH changes are user-level, and the junctions it relies on need no elevation. If a command ever asks for admin, that's a bug.

Can it install Chrome?

Only if there's a portable build. Voli installs portable archives - no MSI/EXE installers and no vendor scripts - so anything that ships as a self-contained zip works great (CLIs, dev tools, portable apps). Big installer-only desktop apps like Chrome aren't a fit today. That's a deliberate trade-off for the no-admin, no-scripts, zero-trace guarantees, not an oversight.

How do I uninstall Voli itself?

The same way it installs - cleanly. Voli tracks its own PATH entry and install directory in the ledger, so removing its root folder and the single user-PATH entry it added takes everything with it. No registry residue, nothing left in Program Files, because it was never there in the first place.

voli, a dark-navy bear in a green forest holding a parcel with a yellow lightning bolt

Got a Windows machine?
Let the bear deliver.