omm

omm link

Re-verify and repair every installed model's links into every installed runner — or link the whole hub into a directory for an app omm doesn't support directly.

01 / 06

Overview

Reach for link after installing a new runner (so models installed before it get linked in too), or when scan's "aren't linked into an installed engine yet" note shows up. With no directory it always re-links every model into every installed runner — covering both never-linked and quietly-broken links, since it never trusts a cached linked flag. With a directory, it reuses the central file directly when possible instead of copying it, for an app that isn't one of the seven omm knows natively.

02 / 06

Options

Every flag this command accepts, and what it defaults to when you leave it out.

  • [directory]Default: none — repairs known app links

    An extra directory to link every installed model's file into, for an app omm doesn't support directly.

  • --engineNAMEDefault: every engine

    Only re-verify/repair links for this one engine.

  • --forceDefault: off

    Reclaim a destination omm doesn't recognize as its own by deleting and relinking it, instead of skipping it as a conflict.

03 / 06

Examples

From a plain search to something you'd put in a script.

Re-verify and repair every model's links into every installed runner.

$ omm link

Only repair links into Ollama.

$ omm link --engine ollama

Link every installed model into a directory for an unsupported app.

$ omm link ~/my-runner/models

04 / 06

A real run

Real omm link run, 2026-08-25: installed a real small model against a throwaway OMM_HOME, ran link for real (rewriting its actual Ollama symlink, exactly what link does), then uninstalled it immediately after capture — confirmed removed from the real ollama list too. "0 skipped (file missing)" is the message's real exact wording, not "missing" as an earlier version of this page guessed without running it.

06 / 06

If something goes wrong

Every message below is one this command actually prints. Find yours, read why it happened, then do the last line.

  1. --engine must be one of: anythingllm, jan, koboldcpp, lmstudio, mstystudio, ollama, textgenwebui (got 'bogus').
    why
    --engine only accepts a real engine key, and this run passed something else.
    what to do
    Use one of the seven listed in the message.
    source
    src/omm/cli.py:909-911
  2. --engine only applies without a directory argument.
    why
    --engine narrows which runner gets repaired; a directory argument means something different — linking into a location that isn't one of the seven known runners. The two can't be combined.
    what to do
    Use --engine alone to repair one runner's links, or a directory alone to link into a custom location.
    source
    src/omm/cli.py:6501-6502

Still stuck? Open an issue with the exact message you saw.

All commands