ommv0.2.148

MIT · Python 3.10+ · Windows, macOS, Linux

One hub for your GGUF files. Seven runners linked automatically.

One copy of each model on disk, linked into Ollama, LM Studio, Jan, AnythingLLM, Msty, KoboldCpp and text-generation-webui — and checked against your free memory before it downloads anything.

Install omm
$ curl -fsSL https://raw.githubusercontent.com/omm-hippo/omm/main/install.sh | sh

4.37 GB decimal = 4.07 GiB — omm list labels GiB as GB; bug filed upstream.

The state of the disk

Four runners. Four copies. 17.5 GB of the same weights.

Every runner ships its own models directory and downloads into it. Nothing on disk records that these four files are byte-identical, so nothing ever removes three of them.

mistral-7b-instruct-v0.2.Q4_K_M.gguf

  • -rw-r--r--4.37 GB~/.ollama/models/
  • -rw-r--r--4.37 GB~/.lmstudio/models/
  • -rw-r--r--4.37 GB~/.config/Jan/data/llamacpp/models/<model-id>/
  • -rw-r--r--4.37 GB~/.config/anythingllm-desktop/storage/models/ollama/
17.48 GB4 copies · 1 distinct file · 13.11 GB recoverable

Paths as omm resolves them on Linux

One hub

One file on disk. Seven runners think they own it.

omm writes the GGUF once into ~/.omm/models and links it into every runner directory it can resolve on the machine. Runners that are not installed are skipped rather than guessed at, and Windows falls back from hard link to symlink to an owned copy with a free-space check.

~/.omm/models/mistral-7b-instruct-v0.2.Q4_K_M.ggufollama~/.ollama/modelslmstudio~/.lmstudio/modelsjan~/.config/Jan/data/llamacpp/models/<model-id>/anythingllm~/.config/anythingllm-desktop/storage/models/ollamamsty~/.config/MstyStudio/modelskoboldcpp~/Applications/koboldcpp/modelstextgen-webui~/Applications/text-generation-webui/user_data/modelslinkednot installed — skipped

Localfit

It checks whether the model fits before it spends your bandwidth.

A scan reads total RAM, live availability and GPU memory, then holds back 10% of total RAM — never less than 1 GB — for the OS and the apps opened after the scan. The safe budget is whichever is smaller: what is left after that subtraction, or 80% of total RAM. Rerunning the scan re-derives both.

RAM 15.5 GB · Intel Core Ultra 7 155H · Windows 11
4.37 GB model
In use by other apps
5.7 GB
Reserved for apps/OS
1.6 GB+
Safe model budget — the smaller of the two
8.2 GB
Install cap — 80% of total RAM
12.4 GB

Benchmarks

Eight problems, fixed seed, median of repeated samples.

The quality pack is versioned and bilingual, runs through Ollama at temperature 0, and grades one number per item against a known answer. Generated text is never stored, and the result it reports is a median over repeated samples rather than a single lucky pass.

localfit-gsm8k-bilingual-smoke, pack version 1.1.0 — all eight items
#promptexpectedlocale
01Janet's ducks lay 16 eggs per day. She eats three for…18en
02A robe takes 2 bolts of blue fiber and half that much…3en
03Josh buys a house for $80,000 and spends $50,000 on…70000en
04James runs 3 sprints, 3 times a week. Each sprint is…540en
05웬디는 매일 닭 한 마리당 사료 3컵을 세 끼로 나누어 준다. 닭은…20ko
06카일라는 유리잔 16개를 산다. 일반 가격은 한 개에 5달러이고, 매…64ko
07시애틀에는 양이 20마리 있다. 찰스턴에는 시애틀의 4배가 있고,…260ko
08칼라는 200GB 파일을 분당 2GB로 받는다. 40%를 받은 순간…160ko
localfit-gsm8k-bilingual-smoke 1.1.0 · temperature 0, seed 0, Ollama only. Eight items. Not a leaderboard.

Signed catalogs

Every catalog it replaces is kept, hash and all.

catalog-trust pins an Ed25519 public key and a manifest URL, and refuses any recommendation artifact whose hash or signature does not match. The replaced snapshot is archived under its own sha256, so catalog-rollback puts the previous catalog back.

omm setting catalog-trust \
--manifest-url https://raw.githubusercontent.com/omm-hippo/omm/main/published/recommend-model.manifest.json \
--public-key <base64 ed25519 public key>
Signed catalog verification enabled (key <fingerprint>).
 
~/.omm/recommend-model.json
artifact_sha256 a07e9a5993b711ad86460e6e7f17d7c26755b2c670d837804f0d466b3e4211fa
signed_at 2026-08-19T03:43:59Z · schema_version 1
artifact_sha256 <incoming artifact>
signature checked against the pinned key
archived ~/.omm/catalog-history/a07e9a5993b711ad86460e6e7f17d7c26755b2c670d837804f0d466b3e4211fa.json
 
omm setting catalog-rollback
Rolled back recommendation catalog from a07e9a5993b711ad86460e6e7f17d7c26755b2c670d837804f0d466b3e4211fa.json.
A mismatched hash aborts with catalog artifact hash does not match manifest and the file on disk is left alone.

7 runners · 3 platforms

omm links into these seven. It does not replace any of them.

Where a platform has a package manager omm can drive, installation is automated. Everywhere else omm still links the model into the runner you installed yourself.

Runner
Automated on
Manual elsewhere
Ollama
  • macOS
  • Linux
  • Windows
LM Studio
  • macOS
  • Linux
  • Windows headless lms CLI
Jan
  • macOS Homebrew
  • Windows winget
  • Linux Flatpak
wherever that package manager isn't installed
AnythingLLM
  • macOS Homebrew
Windows, Linux
Msty
  • macOS Homebrew
Windows, Linux
KoboldCpp
  • macOS Apple Silicon
  • Linux x86_64
  • Windows x86_64
Intel Mac, other architectures
text-generation-webui
  • macOS any arch
  • Linux x86_64
  • Windows x86_64
ARM Linux/Windows

Install

One line. It verifies the signed commit before it installs anything.

Requires Python 3.10+ on Windows 10 22H2 or later, macOS, or Linux. The script bootstraps whatever is missing, then installs omm as an isolated pipx CLI.

$ curl -fsSL https://raw.githubusercontent.com/omm-hippo/omm/main/install.sh | sh
  • Open a new shell afterward so your PATH picks up omm.
  • Requires Python 3.10+. On Debian and Ubuntu the script installs python3, python3-venv, git and pipx for you through apt; on macOS and other distributions it checks for Python 3.10+ and git and stops if they are missing.

Need them first? python.org/downloads · git-scm.com/downloads

Other ways to install

macOS · Homebrew Tap

$ brew install omm-hippo/omm/omm

Any OS via PyPI, no signature verification — the distribution is omm-model, the command stays omm

$ pipx install omm-model

What the installer does

  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.