The configuration surface
In Cline’s settings, choose the provider named OpenAI Compatible. It then shows a Base URL field, an API Key field and a Model ID field. Cline does not append/v1. Its model-refresh handler appends only /models
to whatever you type, so the value you paste has to carry the version segment
itself:
Base URL
.clinerules in a
project is an instructions file Cline reads into its prompt, not a place
credentials go.
The model id
Model ID is the field, and it takes an arbitrary string, so a pinned id goes in as it is:Model ID
Cline will show you our catalog
This is the one behaviour on this page worth knowing in advance. When you change the Base URL or the API Key, Cline callsGET on /models under the base URL
you gave it, with your key on an Authorization header, and populates the Model
ID dropdown from what comes back.
That call is GET /v1/models. So the dropdown fills with our
catalog rather than with a vendor’s list, already in the pinned provider/model
shape, and picking from it gives you a valid id without typing one. It also means
the list is only as long as what your key can call, which is the intended
behaviour rather than a truncated view.
The model metadata Cline asks you for
The OpenAI Compatible provider has a Model Configuration section, and the fields in it are ones Cline cannot discover for a model it does not recognise: Supports Images, Context Window Size, Max Output Tokens, Input Price and Output Price per million tokens, and Temperature. Two of those matter here. Max Output Tokens is the spend rate cap lever. Cline sendsmax_tokens on
its requests by default, and that figure is what sizes the amount we hold against
your balance before the call. Setting it to something realistic for the work,
rather than leaving it at whatever it defaults to, is what keeps the cap from
binding. See rate limits and spend
controls.
The price fields are Cline’s own display, not our billing. They drive the
cost figure Cline shows you in its chat. What a request actually cost is in your
usage record, which is computed from the rates in force when the request ran.
Filling them in wrongly gives you a wrong number in the extension and changes
nothing about the charge.
Take the context window and maximum output for a model from
GET /v1/models, which publishes both per model, rather than guessing.
What we did not verify
- That a Cline session against this API succeeds. Nothing was run.
- Whether Cline has any feature that calls an embeddings endpoint. Cline’s own writing says it indexes no codebase and uses no embeddings or vector store, reading files directly instead, and we found no embeddings call while reading the provider path. We did not audit the whole extension for one, so we do not state it as a fact about the current version. If a feature of it fails against this API, no embeddings endpoint is the first thing to check.
- Whether the extension’s documentation still matches its source. It listed a capability toggle we could not find in the component, so where the two disagree we went with the source and you may see a different set of fields.
- Anything about prompt caching on this provider path. We found no caching mechanism in it and no setting for one, which is an absence rather than a confirmed negative.