Agents

Three values, and any agent works.

The endpoint is plain OpenAI-compatible, so anything that lets you set a custom base URL will run Qwen3.8-27B on our hardware. Configurations below are the ones we have checked. Everything else: use the three values and the provider type OpenAI Compatible.

The three values
base URLhttps://api.llmtech.eu/v1
model idunsloth/Qwen3.8-27B-NVFP4
API keyyour key, or the trial key

A shared trial key is published on the quickstart page so you can evaluate before asking anyone for anything. It allows 2 concurrent requests. Production keys are issued by hand the same day: artem@llmtech.eu.

editors and coding agents

Clinealready in the catalogue

Cline ships us in its built-in provider list, so there is nothing to configure by hand. Open the settings, pick LLM Tech as the API provider, paste your key. The model, base URL and capabilities come with the entry.

If your Cline is older than late August 2026 and does not list us yet, use OpenAI Compatible with the three values above, or set the key in the environment:

export LLMTECH_API_KEY="your-key"

Kilo Code

Same approach: pick OpenAI Compatible, then base URL https://api.llmtech.eu/v1 and model unsloth/Qwen3.8-27B-NVFP4. Kilo builds its provider catalogue from the same upstream source as Cline, so a built-in entry is a matter of time.

Continue

In config.yaml:

models:
  - name: Qwen3.8-27B (LLM Tech)
    provider: openai
    model: unsloth/Qwen3.8-27B-NVFP4
    apiBase: https://api.llmtech.eu/v1
    apiKey: your-key
    capabilities:
      - tool_use
      - image_input
    roles:
      - chat
      - edit

Both capabilities are declared deliberately: tool calling works, and so does image input, which most listings for this model get wrong.

aider

export OPENAI_API_BASE="https://api.llmtech.eu/v1"
export OPENAI_API_KEY="your-key"

aider --model openai/unsloth/Qwen3.8-27B-NVFP4

The openai/ prefix tells aider to treat it as an OpenAI-compatible route rather than looking the name up in its own table.

Zed

In settings.json. The key itself goes into the system keychain or the environment variable LLMTECH_API_KEY, not into this file:

{
  "language_models": {
    "openai_compatible": {
      "llmtech": {
        "api_url": "https://api.llmtech.eu/v1",
        "available_models": [
          {
            "name": "unsloth/Qwen3.8-27B-NVFP4",
            "display_name": "Qwen3.8-27B (LLM Tech)",
            "max_tokens": 262144,
            "capabilities": {
              "tools": true,
              "images": true,
              "parallel_tool_calls": true,
              "prompt_cache_key": true
            }
          }
        ]
      }
    }
  }
}

Claude Code

Claude Code speaks the Anthropic API, not the OpenAI one, so it needs a translating proxy. LiteLLM is the usual choice:

# litellm_config.yaml
model_list:
  - model_name: qwen38
    litellm_params:
      model: openai/unsloth/Qwen3.8-27B-NVFP4
      api_base: https://api.llmtech.eu/v1
      api_key: os.environ/LLMTECH_API_KEY
litellm --config litellm_config.yaml --port 4000

export ANTHROPIC_BASE_URL="http://localhost:4000"
export ANTHROPIC_MODEL="qwen38"
claude

Worth the extra step for one reason: our first business customer found this endpoint through Claude Code, which read the model page and recommended it.

chat front-ends

Open WebUI

Admin panel, Settings, Connections, add an OpenAI API connection with base URL https://api.llmtech.eu/v1 and your key. The model list is served by /v1/models, so the model appears on its own.

LibreChat

In librechat.yaml, as a custom endpoint:

endpoints:
  custom:
    - name: "LLM Tech"
      apiKey: "${LLMTECH_API_KEY}"
      baseURL: "https://api.llmtech.eu/v1"
      models:
        default: ["unsloth/Qwen3.8-27B-NVFP4"]
        fetch: true
      titleConvo: true
      modelDisplayLabel: "Qwen3.8-27B"

Anything else

Pick the provider type OpenAI Compatible and fill in the three values. The endpoint implements chat completions with streaming, usage accounting in the stream, tool calling and structured outputs, so clients generally need no special handling. GET /v1/models is public and needs no key, if your client discovers models that way.

what to expect
context window262,144 tokens
max output32,768 tokens
tool callingyes, with structured outputs and JSON mode
image inputyes — itemised at usage.prompt_tokens_details.multimodal_tokens
reasoning controlenable_thinking, reasoning_effort
over the concurrency capimmediate 429 with Retry-After, never a silent queue

Reasoning is billed as output. For routine tool-call turns, setting reasoning_effort to low, or disabling thinking outright, is usually the largest single saving available.

the one thing worth tuning
Prompt caching

Repeated prompt prefixes bill at $0.04 per million instead of $0.25. For an agent, whose system prompt and tool definitions repeat on every turn, this is where the bill is actually decided. Two details are specific to this model:

cache block size1,584 tokens — prompts under ~5K usually get no cache at all
materialisationlazy — 1st request creates nothing, 2nd creates, 3rd reads

So a prefix has to reach the same endpoint three times before it starts paying off. What follows from that:

On our own production traffic this runs at about 88% hits, which puts the effective input price near $0.07 per million rather than $0.25.

Get the trial key Ask for a production key