integrations · checked 2026-08-17

One base URL, the tools you already use.

Everything here speaks the OpenAI Chat Completions API, so connecting is a base URL and a key. Each configuration below was read from that tool's own documentation and run against this endpoint — including the two that do not work yet, which say so.

base url https://api.tiyuvta.ai/v1 model qwen/qwen3.8-27b

Connects directly

no proxy, no translation layer

Cline

VS Code agent
direct
  1. Open the Cline settings panel and set API Provider to OpenAI Compatible.
  2. Base URL, API Key and Model ID as below.
  3. Under Model Configuration, fill the numbers so Cline budgets correctly rather than guessing.
Base URL https://api.tiyuvta.ai/v1
API Key your tiyuvta key
Model ID qwen/qwen3.8-27b
Context Window 262144
Max Output Tokens 32768
Image Support on — the model takes images and video
Computer Use / tool calling on
Input / Output price $0.40 / $2.90 per million

What we checked. Configuration read from Cline's own OpenAI-Compatible page; the endpoint answers every request shape Cline sends, including tool calls and streamed usage. Cline docs

Cursor

editor
direct
  1. Settings → Models. Add a custom model with the id below.
  2. Put your tiyuvta key in the OpenAI API Key field, switch on Override OpenAI Base URL, and set it to the base URL below.
  3. Press Verify.
  4. Turn OFF the other models in that list. With the override set, Cursor can still route a request meant for another vendor's model through this base URL, and the failure looks like our endpoint rejecting a model it has never heard of.
Override OpenAI Base URL https://api.tiyuvta.ai/v1
Model name qwen/qwen3.8-27b

What we checked. Cursor sends ordinary Chat Completions, which this endpoint serves. The caveat below is Cursor's, not ours, and it is the one that wastes an afternoon. Cursor docs

opencode

terminal agent
direct
~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tiyuvta": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "tiyuvta",
      "options": {
        "baseURL": "https://api.tiyuvta.ai/v1",
        "apiKey": "{env:TIYUVTA_API_KEY}"
      },
      "models": {
        "qwen/qwen3.8-27b": { "name": "Qwen3.8 27B" }
      }
    }
  }
}

What we checked. Config shape read from opencode's providers page. The model key must match an id from GET /v1/models, which is why the snippet uses the exact id the catalogue returns. opencode docs

Pi

coding agent
direct
~/.pi/agent/models.json
{
  "providers": {
    "tiyuvta": {
      "baseUrl": "https://api.tiyuvta.ai/v1",
      "api": "openai-completions",
      "apiKey": "$TIYUVTA_API_KEY",
      "models": [
        {
          "id": "qwen/qwen3.8-27b",
          "name": "Qwen3.8 27B",
          "reasoning": true,
          "input": ["text", "image"],
          "contextWindow": 262144,
          "maxTokens": 32768,
          "cost": {
            "input": 0.40,
            "output": 2.90,
            "cacheRead": 0.10,
            "cacheWrite": 0
          }
        }
      ]
    }
  }
}

What we checked. Written against Pi's models.json reference. Every compat flag Pi offers for partial OpenAI endpoints was tested here and none is needed: the developer role, reasoning_effort and streamed usage all work, so the defaults are correct. Pi docs

OpenAI SDK

your own code
direct
python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.tiyuvta.ai/v1",
    api_key=os.environ["TIYUVTA_API_KEY"],
)

reply = client.chat.completions.create(
    model="qwen/qwen3.8-27b",
    messages=[{"role": "user", "content": "Explain KV caches in one sentence."}],
    # This model reasons first. A small budget is spent entirely on reasoning and
    # returns empty content with a 200 — give it room.
    max_tokens=1024,
)

What we checked. Two lines change: base URL and key. This is the path every other tool on this page is doing on your behalf. our docs

Aider

terminal pair
direct
shell
export OPENAI_API_BASE=https://api.tiyuvta.ai/v1
export OPENAI_API_KEY=$TIYUVTA_API_KEY

aider --model openai/qwen/qwen3.8-27b

What we checked. Aider routes OpenAI-compatible providers through LiteLLM, whose openai/ prefix path was exercised against this endpoint directly. Aider docs

What the endpoint supports

measured 2026-08-17, with a live key

Works

  • streamingSSE deltas, and usage arrives in the final chunk with stream_options.include_usage
  • tool callstyped function calls; a weather tool returned {"city":"Haifa"}
  • structured outputresponse_format json_object and json_schema, enforced during decoding
  • reasoningreasoning_effort in, and reasoning text streams as delta.reasoning before delta.content
  • developer roleaccepted, so clients that send it for reasoning models need no compat flag
  • max_completion_tokensaccepted as an alias for max_tokens, so no parameter mapping is needed
  • legacy completions/v1/completions answers, for clients that still use it
  • stop, temperature, top_paccepted and applied

Does not

  • n > 1rejected with n is not supported for n != 1. A client asking for several candidates per call gets an error, not one candidate.
  • embeddingsthere is no embeddings endpoint. Clients that expect one for search or memory need a second provider.

Both are listed because a client that needs one of them fails at the worst moment — mid-task — and the error reads like our fault. If either matters to you, say so before you build on it.

Not yet

two clients need an API shape we do not serve

Claude Code

needs Anthropic Messages (/v1/messages)
blocked
  • Claude Code speaks the Anthropic Messages format and points at a gateway with ANTHROPIC_BASE_URL plus a credential in ANTHROPIC_AUTH_TOKEN. This endpoint speaks Chat Completions, so something has to translate.
  • Anthropic's own gateway documentation says plainly that routing Claude Code to non-Claude models through a gateway is not supported by them. That is their position, and it applies whatever translator you put in the middle.
  • The usual advice — run a LiteLLM proxy — does not work here, measured today: the proxy's /v1/messages route forwards to the upstream's /v1/responses, which this endpoint does not serve, and the call 404s. The LiteLLM Python SDK does bridge correctly; the proxy does not.
  • claude-code-router is the other candidate. Version 3.0.21 starts, enforces its own API key, and keeps its configuration in SQLite rather than the JSON file that every published guide still shows — so those guides are stale. We have not completed an end-to-end call through it and will not claim one.

Claude Code documentation

Codex CLI

needs OpenAI Responses (/v1/responses)
blocked
  • Codex's provider configuration takes base_url, env_key and wire_api — and wire_api now accepts only responses. The chat value that older guides show is gone, so pointing Codex at a Chat Completions endpoint is no longer a configuration option.
  • Which leaves a translator, and the same measurement applies: the LiteLLM proxy's /v1/responses route also calls the upstream's /v1/responses rather than converting to Chat Completions, so it 404s against this endpoint.
  • The honest fix is on our side, not in a proxy: serve /v1/responses. It is on the engine's list.

Codex CLI documentation

We could have published a proxy recipe for both of these and it would have read well. It was tested instead, and it does not work — so it says so here until the endpoint serves those two shapes itself.

Also OpenAI-compatible

same base URL, same key, their own docs
ToolWhere the base URL goesDocs
Continue provider openai with apiBase docs.continue.dev
Zed OpenAI-compatible provider with a custom API URL zed.dev
Roo Code OpenAI Compatible provider, same three fields as Cline docs.roocode.com
Kilo Code OpenAI Compatible provider kilocode.ai
LibreChat custom endpoint in librechat.yaml librechat.ai
Open WebUI add an OpenAI-compatible connection docs.openwebui.com

These six are configured the same way as the cards above, from their own documentation. We have not run each one end to end, which is why they are a table and not a card: the cards are the ones we tested.

get a key

$10 of credit, one email, no card.

Enough to point your editor at it, run a real task, and see the numbers on your own work rather than ours.