Register OpenAI-compatible local or private model servers, including the Gemma 4 aliases Meerkat supports.
Self-hosted models are configured as first-class Meerkat model IDs. Once an
alias such as gemma-4-31b is registered, users can pass it anywhere they would
pass a hosted model:
rkat run -m gemma-4-31b "Summarize this repository"rkat run --resume -m gemma-4-e4b "Keep going, but use the faster local model"rkat modelsrkat doctor
This guide covers the general self-hosting contract and the Gemma 4 worked
example. There is no separate Gemma page: Gemma 4 is one family under the same
self-hosted model system as Ollama, LM Studio, vLLM, or another private
OpenAI-compatible endpoint.
Transport, base URL, and API style for one serving endpoint
self_hosted.models.<alias>
The Meerkat-facing model ID, display metadata, capabilities, and upstream remote_model
realm.<realm>.{backend,auth,binding}
The credential binding for provider = "self_hosted"
The alias is the name users type. The remote_model is the model name returned
or expected by the serving stack.
Server entries carry connection facts only. The legacy bearer_token /
bearer_token_env server fields are rejected at config parse; credentials are
owned by the realm auth profile selected through the binding. A self-hosted
server with no realm binding fails closed at run time.
api_style = "chat_completions" is the conservative default for Gemma 4 and
other self-hosted tool-calling models. Use another API style only after the
specific serving stack has been validated with Meerkat tools, structured output,
and multimodal input.
Self-hosted credentials are realm-owned. Declare a backend, auth profile, and
binding for provider = "self_hosted" in the same realm config, and make it
the realm default (or select it per run with --auth-binding):
supports_thinking and supports_reasoning describe the behavior Meerkat
should expose through the configured transport. Gemma 4 is reasoning-capable,
but normalized reasoning controls and trace streaming still vary by serving
stack, so validate the behavior you plan to rely on.
Meerkat’s current self-hosted path does not expose self-hosted Gemma audio or a
self-hosted realtime transport. Treat these aliases as text, image-input, and
tool-capable models unless a dedicated self-hosted realtime path is documented.