ommv0.2.148

Install omm on Windows

The whole install is one line, but it has to run in the right program. This page names that program, gives you the command, and lists the messages the installer can print with what each one means.

01 / 08 · Windows

Open PowerShell

omm's Windows installer is a PowerShell script. It cannot run in Command Prompt, and it cannot run in Git Bash or a WSL shell — those are Unix shells and do not understand PowerShell commands.

  • Press the Windows key, type PowerShell, and open Windows PowerShell. Either Windows PowerShell 5.1 (built into Windows) or PowerShell 7 works.

  • Windows Terminal is fine as a window, but check the tab: open the arrow next to the plus sign and pick Windows PowerShell or PowerShell, not Command Prompt.

  • You do not need to run as Administrator to install omm.

If you are not sure what you have open, look at the prompt at the start of the line.

  • PS C:\Users\you>PowerShell — this is the one you want
  • C:\Users\you>not this one — Command Prompt — the install command will not work here
  • you@PC MINGW64 ~$not this one — Git Bash — the install command will not work here
  • Windows 10 22H2 or Windows 11 is the supported baseline, because that is what Ollama requires on Windows.

02 / 08 · Windows

Before you start

The installer fetches what it needs, but two of those bootstraps depend on winget being present.

  • Python 3.10+
    Required. If no suitable Python is on PATH, the installer asks winget to install Python 3.12 and then looks again.
  • git
    Required, because omm is installed from a verified Git checkout. If it is missing, the installer asks winget for MinGit.
  • winget
    Built into Windows 10 2004 and later and into Windows 11. On anything older it is absent, so install Python 3.10+ and git yourself first — the installer will not be able to.
  • Windows baseline
    omm is tested on Windows, macOS and Linux with Python 3.10+. Windows 10 22H2 / 11 is the supported Windows baseline.
  • NVIDIA extra
    The optional NVIDIA detector is installed only when nvidia-smi shows an NVIDIA driver is present. Nothing to do either way.

03 / 08 · Windows

Install

Paste the whole line, including the part before the semicolon, into PowerShell and press Enter.

PS > [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; irm https://raw.githubusercontent.com/omm-hippo/omm/main/install.ps1 | iex
  • The first half is not optional. It must run before irm: script-internal TLS settings are too late for its first download — by the time PowerShell reads a line of the script, the script has already been downloaded.
  • irm downloads the script and iex runs it. Both are PowerShell commands, which is why the tab has to be PowerShell.
  • Open a new PowerShell window afterward so your PATH picks up omm.

Or install the package

There is also a plain package install from PyPI. It skips the signed-commit check that the script above performs, and it is the right choice if you already manage your Python tooling.

PS > python -m pip install omm-model

For an isolated command-line installation, pipx is recommended

PS > pipx install omm-model
  • The distribution name is omm-model; the installed command and Python import remain omm.
  • Upgrade and remove it with the same tool that installed it: python -m pip install --upgrade omm-model, or pipx upgrade omm-model. Both preserve downloaded models and settings under OMM_HOME.
  • This does not go through the signed-commit verification described above; it relies on PyPI's own account security and TLS, the same trust model as installing any other PyPI package.
  • omm update only updates a canonical omm Git-source installation. On a pip or pipx install it changes nothing and prints the matching package manager command instead. The Git-only beta channel is likewise unavailable to package-managed installations.

04 / 08 · Windows

What the installer does

The one-line installer is not a plain download-and-run. It does three things in order, and it stops at the second one if the code it fetched is not the code omm signed.

  1. staging cloneThe release is cloned into a versioned staging directory, never over the copy you are currently running.
  2. signed commit verifiedThe staged commit is checked against a bootstrap trust anchor before any of it is executed.
  3. pipx switchOnly after that does pipx switch to the staged tree, so omm stays an isolated CLI.

Do not replace this with an unverified git clone plus pipx install if commit authenticity matters to you.

05 / 08 · Windows

After install

The installer's last line is Done. If 'omm' isn't found, open a new shell (pipx just updated your PATH). Take that literally.

  1. open a new PowerShell window

    pipx added its bin directory to your PATH, but a window that was already open keeps the PATH it started with. Close it and open a fresh one.

  2. run omm once

    A bare omm on a fresh install starts the setup wizard: a hardware summary, then a checklist of local AI runners. Checking one that omm can install on Windows runs its official installer with live progress; checking one it cannot automate here prints a link instead. You can re-run it any time with omm setup.

    PS > omm
  3. check what omm sees

    omm scan prints the hardware, runner and model summary it will base every fit decision on.

    PS > omm scan
omm scan --no-color, Windows 11
                      omm hardware scan
┌───────────────────────┬───────────────────────────────────┐
│ Field                 │ Value                             │
├───────────────────────┼───────────────────────────────────┤
│ OS                    │ Windows 11                        │
│ CPU                   │ Intel(R) Core(TM) Ultra 7 155H    │
│ RAM (total)           │ 15.5 GB                           │
│ RAM (available)       │ 0.7 GB                            │
│ Safe model budget now │ 0.0 GB                            │
│ Reserved for apps/OS  │ 1.6 GB+                           │
│ GPU                   │ Intel(R) Arc(TM) Graphics         │
│ VRAM                  │ Shared or unavailable from the OS │
└───────────────────────┴───────────────────────────────────┘

  Local AI runners
 Program  Status
 Ollama   installed
+ 6 program(s) not installed
A real capture from one Windows 11 machine under heavy load, which is why the safe budget reads 0.0 GB. Your own numbers will differ; the shape of the output will not.

06 / 08 · Windows

Runners on Windows

omm links one central copy of each model into every runner it finds. The setup wizard can install some of those runners for you — which ones depends on the operating system, because it only uses each vendor's own supported package.

  • OllamaAutomated
  • LM StudioAutomated — headless lms CLI
  • JanAutomated — winget
  • KoboldCppAutomated on 64-bit x86 (AMD64)
  • text-generation-webuiAutomated on 64-bit x86
  • AnythingLLMManual — install it yourself, omm still links to it
  • MstyManual — install it yourself, omm still links to it
  • Manual here means only that the wizard will not run the vendor's installer for you; it prints the download link, and once the app exists omm detects and links it like any other runner.
  • AnythingLLM has no winget package any more — the community manifest was withdrawn in 2025 — and no winget package targets the current Msty Studio app rather than its retired predecessor. That is why neither is automated on Windows.
  • Every runner already installed is listed in the wizard too, marked as installed rather than hidden, so the checklist always reflects what omm actually detects.
  • On Windows, Ollama is detected through its HTTP API first, so a freshly installed tray app is found even before this terminal receives the new PATH.

How omm exposes a model here

  • omm keeps one file in the hub and exposes it to each runner. On Windows it tries an unprivileged same-volume hard link first.

  • If that is not possible it tries a symbolic link, which needs Developer Mode turned on or an Administrator shell.

  • If neither works it falls back to an owned copy. Before copying, omm checks the destination's free space and reports that the model now consumes additional bytes.

  • File junctions never apply here, because the link targets are files, not directories.

07 / 08 · Windows

Storage, completion, uninstall

Where models are stored

The model hub and omm's own state default to a .omm folder in your user profile. Set OMM_HOME before installing, and on later runs, to put them on another drive.

Persist it for future windows

PS > [Environment]::SetEnvironmentVariable("OMM_HOME", "D:\omm", "User")

And set it in the window you have open now

PS > $env:OMM_HOME = "D:\omm"
  • Ollama's own model location follows OLLAMA_MODELS. LM Studio follows its home pointer; set OMM_LMSTUDIO_MODELS_DIR when LM Studio uses a custom directory omm cannot discover.

Shell completion

Install tab-completion once, then restart the shell.

PS > omm --install-completion powershell

Uninstall

This removes the omm command and the installer-managed source checkouts. Downloaded models and settings under OMM_HOME are preserved.

PS > irm https://raw.githubusercontent.com/omm-hippo/omm/main/uninstall.ps1 | iex
  • To remove the model hub and settings as well, download the script and run it with -Purge. Purge removes only known omm-owned paths and leaves unrelated files in a custom OMM_HOME untouched.
  • Installers mark custom homes so uninstallers can refuse ambiguous or unsafe locations, and shell profiles are never rewritten during uninstall.
  • If you installed from PyPI instead, use python -m pip uninstall omm-model or pipx uninstall omm-model. Both preserve models and settings.

08 / 08 · Windows

If something goes wrong

Every message below is one the installer, the uninstaller or the shell actually prints. Find yours, read why it happened, then do the last line.

  1. sh : The term 'sh' is not recognized as the name of a cmdlet, function, script file, or operable program.
    why
    You pasted the macOS and Linux command (the one with curl … | sh) into PowerShell. PowerShell has no sh.
    what to do
    Use the Windows command in step 3 of this page instead. The two operating systems get genuinely different commands, not two spellings of the same one.
    source
    README, Install section — two separate installer commands
  2. Windows detected. Run the native PowerShell installer instead:
    why
    The Unix installer ran under Git Bash, MSYS or Cygwin. It detects that it is on Windows and refuses rather than installing something broken.
    what to do
    Open PowerShell as described in step 1 and run the Windows command. The message prints the right command too.
    source
    install.sh:27-32
  3. 'irm' is not recognized as an internal or external command, operable program or batch file.
    why
    You are in Command Prompt. irm and iex are PowerShell commands.
    what to do
    Open PowerShell. In Windows Terminal, use the arrow next to the plus sign and start a PowerShell tab.
    source
    README, Install section — the command is PowerShell-only
  4. Invoke-RestMethod : The request was aborted: Could not create SSL/TLS secure channel.
    why
    Windows PowerShell 5.1 defaulted to a TLS version GitHub no longer accepts. The script cannot fix this from inside itself, because irm has to download it first.
    what to do
    Run the full line including the [Net.ServicePointManager] part before irm. If it still fails, a corporate proxy or an antivirus inspecting HTTPS is intercepting the connection — try another network.
    source
    install.ps1:1-5 (header comment); README Windows caveat
  5. Python not found. Install Python 3.10+ first: https://www.python.org/downloads/
    why
    No Python 3.10 or newer was found, and winget either is not installed or its install attempt failed.
    what to do
    Install Python from python.org, tick Add python.exe to PATH during setup, open a new PowerShell window, and run the install command again.
    source
    install.ps1:217
  6. git not found. Install git first (needed to fetch omm from GitHub): https://git-scm.com/downloads
    why
    Same situation for git: omm is installed from a verified Git checkout, so git has to exist.
    what to do
    Install git from the linked page, open a new PowerShell window, and run the install command again.
    source
    install.ps1:229 and install.ps1:234
  7. git 2.34+ is required to verify SSH commit signatures (found git version 2.30.0).
    why
    Your git is too old to check SSH commit signatures. The installer treats cannot verify exactly like a bad signature.
    what to do
    Update git, then run the install command again.
    source
    install.ps1:105
  8. Signature verification failed - refusing to install untrusted code.
    why
    The staged commit was not signed by a key in the installer's trust anchor — or git could not check the signature at all, as in the previous entry.
    what to do
    Update git and retry. If it still fails, do not work around it with a plain git clone: open an issue on the repository instead.
    source
    install.ps1:553
  9. git clone failed.
    why
    The staging clone could not reach github.com. Usually a proxy, a firewall, or no network.
    what to do
    Confirm you can open github.com in a browser from this machine, then run the install command again.
    source
    install.ps1:529
  10. Refusing to replace unrelated pipx environment 'omm'. Remove or rename that environment manually first.
    why
    An unrelated PyPI project also called omm already owns that pipx environment. The installer will not overwrite someone else's tool.
    what to do
    Run pipx uninstall omm if you do not need that other tool, or rename its environment, then run the install command again.
    source
    install.ps1:506
  11. Refusing to replace an unverified omm-model pipx environment.
    why
    An omm-model pipx environment exists but does not look like one omm created.
    what to do
    Run pipx uninstall omm-model, then run the install command again.
    source
    install.ps1:514
  12. Refusing unsafe OMM_HOME: C:\Users\you
    why
    OMM_HOME points at a drive root or at your user profile itself. Uninstalling from there could not be made safe.
    what to do
    Point OMM_HOME at a subdirectory, such as D:\omm. A related message, Refusing OMM_HOME that contains the current directory, means you are standing inside that folder — cd somewhere else first.
    source
    install.ps1:13 and install.ps1:18
  13. omm : The term 'omm' is not recognized as the name of a cmdlet …
    why
    The install finished, but this window still has the PATH it started with.
    what to do
    Open a new PowerShell window. The installer prints the same advice on its last line.
    source
    install.ps1:671
  14. Refusing unrecognized custom OMM_HOME (missing .omm-managed): D:\omm
    why
    You are uninstalling with a custom OMM_HOME that the installer never marked as its own, so the uninstaller cannot prove the folder is safe to touch.
    what to do
    Check that OMM_HOME points at the folder omm actually installed into, then run the uninstaller again.
    source
    uninstall.ps1:21

Still stuck? Open an issue with the exact message you saw and the output of omm scan.