Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Models in the registry

Every entry pins a Hugging Face repository, a commit revision, and a SHA-256 per file. The on-disk tree mirrors the repo: <cache>/<repo>/<revision>/<path>.

Readiness is rolled up per role, not per model — the registry carries alternates, and any one installed model fills its role.

Embedding — gates search’s vector arm

qwen3-embedding-4b (default)

Dense retrieval. 2,560-dim Matryoshka, 32K context. Qwen/Qwen3-Embedding-4B-GGUF, first-party, Apache-2.0.

VariantNotes
q8_08-bit. Near-lossless; the default.
q6_k6-bit. Smaller, very close to Q8_0.
q5_k_m5-bit. For a machine that cannot hold Q8_0.
q4_k_m4-bit. The floor.
f16Half precision. Unquantized reference.

qwen3-embedding-0.6b

Dense retrieval, 1,024-dim. Faster, materially weaker, and a different vector space. Qwen/Qwen3-Embedding-0.6B-GGUF.

VariantNotes
q8_08-bit. Near-lossless.
f16Half precision. Unquantized reference.

The two embedders have deliberately different widths. Changing embedder is a full re-embed rather than a config edit, and distinct dimensions are what make that failure loud instead of silent — the vector column is a fixed-size list of exactly dims floats, so a wrong width cannot be written at all.

Reranking — gates search’s final ordering

qwen3-reranker-0.6b

Second-stage reranking. 32K context. ggml-org/Qwen3-Reranker-0.6B-Q8_0-GGUF, Apache-2.0.

VariantNotes
q8_08-bit. The only published conversion.

A community conversion by the llama.cpp organisation, because Qwen publish GGUF for the embedder only. Digests pin exactly what is fetched.

It emits no vector — it is a causal LM scored from two logits. See Search.

Transcription — gates the transcribe stage

whisper-large-v3-turbo (default)

Speech to text. Near-large accuracy at about 8× the speed. ggerganov/whisper.cpp.

VariantNotes
q8_08-bit. Near-lossless; the default.
q5_05-bit. For a machine that cannot hold Q8_0.
f16Half precision. Unquantized reference.

whisper-tiny

39M parameters. A smoke test for the pipeline, not an archive.

VariantNotes
q5_15-bit. 32 MB.
f16Half precision.

Voice activity — gates the transcribe stage

silero-vad

Voice activity detection. Keeps Whisper from hallucinating over dead air. ggml-org/whisper-vad.

VariantNotes
v5.1.2885 KB. The version whisper.cpp documents.

Which runtime loads which

The file extension is what tells the two runtimes apart, and it is checked:

RoleRuntimeExtension
Embedding, Rerankingllama.cpp, via llama-cpp-2, in centinel.gguf
Transcription, Voice activitywhisper.cpp, in centinel-whisper.bin

The two cannot be linked into one binary — see Transcription.

Managing them

centinel models              # what is installed, what is missing
centinel models pull         # fetch what the pipeline needs
centinel models verify       # re-check digests on disk
centinel models prune        # remove files the registry no longer names
centinel models rm <id>

centinel models pull is the fix named by every error that reports a missing weight, and it is spelled in exactly one place in the code.

models is a Host op. Not even the scheduler may fire it — a multi-gigabyte download must never ambush a 3am run.