Models
Pick models in qialike, or bring your own provider keys.
qialike talks to providers through its own adapter layer. A model is always identified by two
things: a provider route (for example deepseek-official or qialike) and a model id
(for example deepseek-v4-flash). In configuration and in the docs the two are written together
as route/model-id, e.g. qialike/deepseek-v4-flash.
Default provider
There is currently no default provider.
Choosing a model
/models opens the model manager, which has two levels:
- Providers — one row per provider with its key state and model count on the right. Only providers whose API key is set appear here.
- Models —
Enteron a provider drills into its model sub-list.
All lists have live type-to-filter (a bordered ⌕ type to filter box on top); long lists support
PgUp/PgDn (page) and Home/End (first/last). Esc clears the filter first and then backs
out. Picking a model and pressing Enter saves it: the live session switches on the next request
and the choice is persisted as the default.
The bottom of the card shows the current selection, for example DeepSeek · DeepSeek V4 Flash.
For a gateway route with a live catalog, qialike fetches GET {baseURL}/models and falls back to
a static catalog on failure or timeout.
Reasoning effort
Models that declare reasoning effort add a third step to the picker: after the model, an
Effort list (Off / Low / High / Max for the built-in DeepSeek routes). ↑/↓ or a number
selects, Enter confirms, Esc goes back — the model choice completes only once an effort is
confirmed. The effort persists with the selection and rides on every request as thinking /
reasoning_effort.
From the main window, Ctrl+T (Alt+T where the terminal takes Ctrl+T) cycles the current
model’s declared effort levels, wrapping at the ends; each press persists and applies to later
requests, and the composer label shows the effort as a chip. Effort sets are model-declared and
provider-specific: DeepSeek offers Off/Low/High/Max while another gateway may declare
low/medium/high/xhigh/max. Providers without declared efforts skip the step.
Overriding the model per run
qialike --model deepseek-flash--model takes a provider/name override, e.g. deepseek-flash or
qialike/deepseek-v4-flash. The provider is part of the value; it is not restricted to your
saved selection.
Using the Bee gateway
Bee is qialike’s model API gateway. It exposes one base URL and speaks several protocols, so you configure it in qialike like any OpenAI-compatible provider:
- Create an API key in the qialike console — see Bee.
- Run
/models→+ Add provider→+ Add a custom providerand fill in the form: route id (e.g.qialike), display name, base URLhttps://qialike.com/bee/v1, the API key, and the model ids you want. - Save the key. The route is hot-registered, its models appear in the picker, and requests are routed through Bee.
The model ids are the ones Bee publishes:
curl -s https://qialike.com/bee/v1/models \ -H "Authorization: Bearer $QIALIKE_API_KEY"A reference to one of those models is written qialike/<model-id> — for example
qialike/deepseek-v4-flash or qialike/glm-5.2. Which endpoint Bee uses is its business: the
gateway routes each model family to the protocol it needs, so you point qialike at
https://qialike.com/bee/v1 and pick models by id.
Bring your own provider keys
The Add provider list carries the Chinese providers qialike supports, plus the built-in
deepseek-official endpoint: Qwen, GLM, Kimi, MiniMax, StepFun, Volcano Engine (Doubao),
Xiaomi MiMo, Ant Ling, and aggregation gateways such as SiliconFlow and Qiniu. Most are
OpenAI-compatible. Rows marked endpoint required need a deployment-specific base URL.
Three groups come from loadable sub-plugins, all enabled by default and removable as a whole —
write the matching switch in qialike.json and the templates plus any configured routes disappear
from /models and from the adapters:
| Sub-plugin | Switch | Providers |
|---|---|---|
tui-opencode-gateways | qialike-opencode: { enabled: false } | OpenCode Zen / Go |
tui-china-gateways | qialike-china-gateways: { enabled: false } | Qiniu, SiliconFlow (incl. cn endpoints) |
Configured OpenAI-compatible providers show the gateway’s live model list (a dynamic
GET {baseURL}/models, falling back to the template’s preset models on failure or timeout).
OpenCode Zen is a single entry showing all 63 models; picking any of them and saving routes
the request to the right protocol endpoint by model prefix — claude-/qwen- → Anthropic messages,
gpt-/grok-/muse- → OpenAI Responses, gemini- → Google generateContent, everything else →
chat/completions. All four auth paths are verified.
Pick a provider in Add provider and a sub-dialog sets or replaces its API key — the key
dialog says “replaces the current key” when one already exists. Setting a key on a dormant
template activates the route on the spot: its endpoint and model catalog are written to the
qialike-llm: settings section and its models appear in the picker.
Keys are stored in ~/.dsh/.credentials.yaml under the route’s derived credential reference
(route qialike → QIALIKE_API_KEY) and resolved per request; the key never reaches the
transcript or the model. If a key is already present in the environment under that name, it
shadows the store and wins — and an environment-supplied key cannot be deleted from the dialog,
which reports that instead.
To deactivate a provider without deleting the route, press Ctrl+D (Alt+D) on the first level:
it removes the key and hides the route from the picker. The hidden list persists in
qialike.json (hidden_providers); re-adding the provider from the catalog and setting its key
again clears the flag.
Custom providers by hand
The Add-provider form writes a settings section like this; you can also maintain it directly:
qialike-llm: providers: qialike: displayName: qialike baseURL: https://qialike.com/bee/v1 apiKeyEnv: QIALIKE_API_KEY models: - id: deepseek-v4-flash - id: glm-5.2api defaults to OpenAI-compatible; set it to openai-responses, anthropic-messages or
google-generative for a route that speaks one of the other protocols.
Image input
Models that declare image input (for example the DeepSeek vision route, GPT-4o, or Claude) accept
images attached to the conversation: a pasted local image path attaches the file, and the adapter
encodes it as image_url parts (OpenAI) or base64 source blocks (Anthropic). Models without the
declaration refuse the attachment.
Next steps
- Bee gateway — endpoints, pricing, privacy and teams
- Config — the
qialike-llmsettings section and where credentials live - Permissions — the file-effect boundary a model can reach