openclaw-llmtr-provider

LLMTR OpenAI-compatible AI gateway provider for OpenClaw


Keywords
openclaw, openclaw-plugin, openclaw-provider, llm, provider, llmtr, turkey, ai-gateway
License
MIT
Install
npm install openclaw-llmtr-provider@1.1.0

Documentation

OpenClaw LLMTR provider

An OpenClaw provider plugin for LLMTR, an OpenAI-compatible AI gateway that serves over 230 models behind a single API key: global passthrough routes across Anthropic, OpenAI, Google, Qwen, Z.AI, Mistral, DeepSeek, MiniMax, Moonshot, Meta and NVIDIA, plus a Turkey-hosted set for workloads that need Turkish data residency or Turkish-language models.

Install

openclaw plugins install openclaw-llmtr-provider
openclaw gateway restart

Configure

Create an API key at llmtr.com, then set it:

export LLMTR_API_KEY="<your-llmtr-api-key>"

Or store it through OpenClaw's auth flow:

openclaw onboard --auth-choice llmtr-api-key

Use

Model refs are llmtr/<upstream-route-id>:

openclaw agent --local --model llmtr/anthropic/claude-sonnet-5 -m "Hello"
openclaw agent --local --model llmtr/zai/glm-5.2 -m "Hello"
openclaw models list --provider llmtr

Turkey-hosted routes are named llmtr/<name> upstream, so their refs collapse to a single prefix — the Trendyol model is llmtr/trendyol-asure-12b, not llmtr/llmtr/trendyol-asure-12b.

Setting Value
Provider id llmtr
Base URL https://llmtr.com/v1
Env var LLMTR_API_KEY
Default model llmtr/anthropic/claude-sonnet-5

Model catalog

The plugin refreshes its catalog from GET /v1/models and keeps only routes whose supported_operations include CHAT_COMPLETIONS, so embedding-only (voyageai, llmtr/embeddinggemma-300m), image (recraft, krea) and /v1/responses-only routes never appear. Context windows, output caps, modalities, pricing and reasoning support are read from the same response, so they track the gateway instead of being hard-coded. A snapshot of 49 routes ships with the plugin as the offline fallback.

Turkey-hosted:

  • llmtr/gemma-4
  • llmtr/qwen3-5-4b
  • llmtr/qwen3-6-35b
  • llmtr/trendyol-asure-12b
  • llmtr/muse-glimmer-30b-tr
  • llmtr/magibu-11b-v8
  • llmtr/medgemma-4b

Global passthrough (snapshot selection):

  • llmtr/anthropic/claude-opus-5, claude-sonnet-5, claude-opus-4.8, claude-haiku-4.5
  • llmtr/openai/gpt-5.4, gpt-5.4-mini, gpt-5.2
  • llmtr/google/gemini-3.7-flash, gemini-3.5-flash, gemini-3.1-pro-preview
  • llmtr/zai/glm-5.2, glm-5.1, glm-5, glm-5-turbo, glm-4.7, glm-4.6, glm-4.6v (vision)
  • llmtr/qwen/qwen3.7-max, qwen3.7-plus, qwen3.6-flash, qwen3.5-plus, qwen3-coder-plus
  • llmtr/deepseek/deepseek-v4-pro, deepseek-v4-flash, deepseek-reasoner, deepseek-chat
  • llmtr/moonshot/kimi-k3, kimi-k2.7-code, kimi-k2.6
  • llmtr/minimax/minimax-m3, minimax-m2.7, minimax-m2.7-highspeed, minimax-m2.5, minimax-m2.5-highspeed
  • llmtr/mistral/mistral-large-latest, mistral-medium-latest
  • llmtr/meta/muse-spark-1.2, llama-3.3-70b-instruct
  • llmtr/stepfun/step-3.7-flash, llmtr/mimo/mimo-v2.5-pro, llmtr/kwaikat/kat-coder-pro-v2.5, llmtr/nvidia/nemotron-3-super-120b-a12b

Adding a route that is not in the snapshot

Discovery surfaces every chat-capable route the gateway serves, so the list above is a floor rather than a limit. To pin one explicitly, or to override a published value, add it under models.providers.llmtr.models in your OpenClaw config:

{
  "models": {
    "providers": {
      "llmtr": {
        "models": [{ "id": "perplexity/sonar-pro", "contextWindow": 131072, "maxTokens": 32768 }]
      }
    }
  }
}

Check supported_operations in curl https://llmtr.com/v1/models first: routes LLMTR serves solely through /v1/responses reject chat-completions requests, as do embedding, image, video and audio routes.

Troubleshooting

  • 401/403 — verify the key in the LLMTR dashboard, and re-run openclaw onboard --auth-choice llmtr-api-key if the stored profile is stale.
  • An id that used to work now errors — LLMTR retires routes, and retired ids drop out of GET /v1/models first. llmtr/sincap and llmtr/trendyol-7b are both gone; llmtr/trendyol-asure-12b replaces the latter. Use the ids from openclaw models list --provider llmtr.
  • A model is on llmtr.com but not in OpenClaw — it is most likely a /v1/responses-only or non-chat route. Confirm with curl https://llmtr.com/v1/models and check supported_operations.
  • 502 or idle timeouts on Turkey-hosted llmtr/* routes — those run on smaller capacity and can be briefly unavailable. Retry, or fall back to a global route; the same key serves both.

Development

npm install
npm run build      # bundles index.ts -> dist/index.js
npm run typecheck
npm test

openclaw is an optional peer dependency: the plugin imports the host's openclaw/plugin-sdk/* subpath exports at runtime and is installed into an existing OpenClaw instance.

Relationship to openclaw/openclaw

This is a community-maintained package. A proposal to ship LLMTR as an official provider is open upstream at openclaw/openclaw#110917.

License

MIT