---
title: Modelverse at a glance
description: What the Modelverse model library is and is not, and the five-minute mental model.
---

Modelverse is the CLIKA model library, built on the [ClikaRT](/clikart) runtime. It is a catalog of model families, the `clikart-cli` executable, which inspects, fetches and runs any model in it, and the library behind both (C++ first, with Python and Kotlin bindings over the same surface). It is not a training framework, not a conversion pipeline, and not a hosted service. Models arrive as the checkpoint files their authors published; Modelverse knows which family they belong to and what that family can do.

## The mental model

Five ideas carry the whole product, in the order you meet them.

1. **The catalog is a registry of model families.** A family (Llama, Qwen, Whisper, CLIP, ...) declares its input and output modalities, the checkpoints it matches, and the commands it provides. The catalog is built into `clikart-cli`; listing it needs no network.

   ```bash
   clikart-cli list
   ```

2. **A model is a source you name.** A Hugging Face Hub repo id, a pasted Hugging Face URL, or a local directory all name a model. Identity resolution reads config files only, so asking what something is never downloads weights.

   ```bash
   clikart-cli info Qwen/Qwen2.5-0.5B-Instruct
   clikart-cli info ./my-model-dir
   ```

   A GGUF repo that ships several quantizations takes a selector, `<org>/<repo>:Q6_K`; with several options and no selection, `clikart-cli` refuses and prints the option table instead of guessing.

3. **The `clikart-cli` executable has four commands that work without naming a model: `list`, `devices`, `info`, and `fetch`.** Every other command runs on a model you name: `clikart-cli <model> <command>`. Which commands a model supports depends on what kind of model it is: a text-generation model has `prompt`, `serve`, and `bench`; a speech model has `transcribe`. `clikart-cli <model> --help` prints the commands a model supports:

   ```bash
   clikart-cli <source> --help    # that model's commands
   clikart-cli <source> prompt "The capital of France is"
   ```

4. **Serving is one of those commands.** `serve` hosts the model behind an OpenAI-compatible HTTP server, with streaming chat completions, a built-in web chat page, and per-modality routes (transcription, embeddings, depth and more). Existing OpenAI clients connect by changing their base URL.

   ```bash
   clikart-cli <source> serve --port 8000
   ```

5. **Everything `clikart-cli` does, the library does.** The executable is a thin layer over the `clika_modelverse` library: a snapshot call fetches, the registry loads a runnable model, a serving pipeline generates. Your application makes the same two calls in its own language:

   {/* CERTIFICATION: the Python arm's two lines were run against the pinned
   release's clika_modelverse wheel and loaded a GenerativeModel. The C++ arm
   and the CLI are the other shipped surfaces. The Kotlin arm shows the
   Modelverse Kotlin binding's shape; its artifact ships with the releases
   that carry it. */}

   <LangTabs>

   <LangTab value="cpp">

   ```cpp
   mv::hub::SnapshotResult snapped = mv::hub::snapshot("Qwen/Qwen2.5-0.5B-Instruct", opts);
   mv::GenerativeModel model = mv::ModelRegistry::builtin().load_generative(snapped.local_dir, load);
   ```

   </LangTab>

   <LangTab value="python">

   ```python
   snapped = mv.hub.snapshot("Qwen/Qwen2.5-0.5B-Instruct", cache_dir="models")
   model   = mv.ModelRegistry.builtin().load_generative(snapped.local_dir)
   ```

   </LangTab>

   <LangTab value="kotlin">

   ```kotlin
   val snapped = Hub.snapshot("Qwen/Qwen2.5-0.5B-Instruct", cacheDir = "models")
   val model   = ModelRegistry.builtin().loadGenerative(snapped.localDir)
   ```

   </LangTab>

   </LangTabs>

The [tutorial series](first-model/01-pick-a-model.md) turns these into working sessions, one idea per part.

## Platforms

Modelverse ships inside the ClikaRT release archive, one archive per platform: Linux (x86_64, arm64), Windows (x86_64, arm64), macOS and Android, and from Python it ships inside the `clika-runtime` wheel as `clika_runtime.modelverse`. Extract the archive and run in place; the manifest inside pins the exact runtime this build linked against, so a mismatched pair refuses with a readable error. The [ClikaRT system requirements](/clikart/system-requirements) apply unchanged; Modelverse adds no requirements of its own.
