LiteLLM

LiteLLM reaches OpenCheap as an OpenAI-compatible endpoint: an openai/ model name, an api_base and your key. The same works in the Python SDK and in the proxy.

A native OpenCheap provider is proposed upstream.

What you need

  • Base URLhttps://api.opencheap.si/v1
  • API keyA kl_live_… key from the console, kept in OPENCHEAP_API_KEY.
  • ModelAn id from Models, for example claude-sonnet-5.

The Python SDK

import os
import litellm

response = litellm.completion(
    model="openai/claude-sonnet-5",
    api_base="https://api.opencheap.si/v1",
    api_key=os.environ["OPENCHEAP_API_KEY"],
    messages=[{"role": "user", "content": "Say hello in five words."}],
)
print(response.choices[0].message.content)

The openai/ in front is LiteLLM's own prefix: it picks the OpenAI-compatible route, and claude-sonnet-5 is what OpenCheap receives. Add stream=True to stream. Tool calls and acompletion take the same three arguments.

The proxy

List the models the proxy offers in its config. The first entry names one model; the second lets a client ask for any OpenCheap id as opencheap/<id>.

model_list:
  - model_name: claude-sonnet-5
    litellm_params:
      model: openai/claude-sonnet-5
      api_base: https://api.opencheap.si/v1
      api_key: os.environ/OPENCHEAP_API_KEY
  # any other model, as opencheap/<id>
  - model_name: opencheap/*
    litellm_params:
      model: openai/*
      api_base: https://api.opencheap.si/v1
      api_key: os.environ/OPENCHEAP_API_KEY
pip install 'litellm[proxy]'
export OPENCHEAP_API_KEY=<your key>
export LITELLM_MASTER_KEY=sk-<a key of your own for the proxy>
litellm --config config.yaml --port 4000

curl http://localhost:4000/v1/chat/completions \
  -H "Authorization: Bearer $LITELLM_MASTER_KEY" -H "Content-Type: application/json" \
  -d '{ "model": "opencheap/gpt-oss-120b", "messages": [{ "role": "user", "content": "Hello" }] }'

Clients of the proxy use LITELLM_MASTER_KEY (or a virtual key LiteLLM issues); your OpenCheap key stays on the proxy. With the wildcard entry, the proxy's own /v1/models shows LiteLLM's list of names under opencheap/, not OpenCheap's: ask for any id from the Models page and it is passed through.

What was checked

Run on October 28, 2026 with LiteLLM 1.106.4: the SDK call above, with streaming, with a tool call, with acompletion, and with the openai/opencheap/claude-sonnet-5 spelling; and the proxy with the config above, answering claude-sonnet-5 and opencheap/gpt-oss-120b through /v1/chat/completions.