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
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_KEYpip 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.