---
title: "OpenClaw with EU-hosted models · Setup guide"
description: "Run the OpenClaw personal assistant on open-weight models processed in EU data centres by adding inference.eu as a custom provider in openclaw.json."
canonical: "https://inference.eu/integrations/openclaw/"
language: "en"
---

Agents · OpenClaw

# Use OpenClaw with open-source models hosted in the EU

OpenClaw is an open-source personal AI assistant that you run on your own machine or server and talk to through chat apps. It accepts custom OpenAI- and Anthropic-compatible providers, so you can run its agents on open-weight models at inference.eu and keep model processing in European data centres.

[Contact sales](https://inference.eu/contact/)[Setup](#setup)

1.  01API format: OpenAI and Anthropic
2.  02EU data centres
3.  03Covered by one DPA

## Set it up in a few minutes

1.  1

    Create an API key in your inference.eu account and make it available to the OpenClaw gateway as `INFERENCE_EU_API_KEY`.

2.  2

    Open `~/.openclaw/openclaw.json` and add an `inference-eu` entry under `models.providers` with the inference.eu base URL and `api` set to `openai-completions`.

3.  3

    List the models you want under `models`, each with the inference.eu `id` and a display `name`.

4.  4

    Set `agents.defaults.model.primary` to `inference-eu/kimi-k3` or another inference.eu model.

5.  5

    Restart the gateway and send your assistant a message to confirm that it answers through inference.eu.

~/.openclaw/openclaw.json

```
{
  agents: {
    defaults: { model: { primary: "inference-eu/kimi-k3" } },
  },
  models: {
    mode: "merge",
    providers: {
      "inference-eu": {
        baseUrl: "https://api.inference.eu/v1",
        apiKey: "${INFERENCE_EU_API_KEY}",
        api: "openai-completions",
        models: [
          { id: "kimi-k3", name: "Kimi K3" },
          { id: "glm-5.3", name: "GLM-5.3" },
          { id: "gpt-oss-120b", name: "gpt-oss-120b" },
        ],
      },
    },
  },
}
```

## What OpenClaw is

OpenClaw is a self-hosted AI assistant. A gateway process runs on your laptop, a home server or a VPS, and you reach your agents through messaging channels and a web chat. The agents can browse, run tools, manage files and work through scheduled tasks on your behalf.

Because OpenClaw runs on your own infrastructure, you choose the model provider. Alongside its bundled providers, it supports custom providers and proxies that speak the OpenAI Chat Completions or Anthropic Messages format. That is how you connect it to inference.eu.

## How the configuration works

OpenClaw reads its settings from `~/.openclaw/openclaw.json`, written in JSON5. Under `models.providers`, the `inference-eu` entry sets `baseUrl` to the inference.eu base URL ending in `/v1`, `api` to `openai-completions` and `apiKey` to `${INFERENCE_EU_API_KEY}`, which OpenClaw resolves from the environment. `mode: "merge"` keeps the bundled providers available next to yours.

Each model needs at least an `id` matching inference.eu. Agents refer to models as `provider/model`, so `agents.defaults.model.primary` becomes `inference-eu/kimi-k3`. Onboarding can write the same settings with `--custom-base-url` and `--custom-model-id`. For the Anthropic format, use `anthropic-messages` and the base URL without `/v1`.

## Which models to choose

OpenClaw agents plan over many steps, call tools and keep long conversations going across channels, so they need models with dependable tool calling and good long-context handling. `kimi-k3` is a strong primary model for general assistant work, and `glm-5.3` is a good alternative with careful multi-step reasoning.

For agents that mostly write or review code, `qwen3-coder-480b-a35b-instruct` is a good fit. `gpt-oss-120b` answers quickly and suits lightweight agents, triage and short replies in chat. If a model accepts images, add `input: ["text", "image"]` to its entry so attachments reach it as images.

## Troubleshooting

A 401 error means the gateway process cannot see the key. Services started by systemd or launchd do not read your shell profile, so set `INFERENCE_EU_API_KEY` in the service environment or under `env` in the config. A 404 usually comes from a `baseUrl` with an extra path.

"Unknown model" means `primary` points at an id missing from `models.providers.inference-eu.models`; add the entry, since agent aliases alone do not register a model. If an agent stops calling tools after a model switch, check the model supports tool calling and run `openclaw doctor` to catch stale settings.

## Keeping code and data in the EU

With inference.eu as the model provider, the messages, files and tool output your agents send are processed in EU data centres and never used for training. We sign a data processing agreement under Article 28 GDPR, publish our subprocessor list and bill in euros.

OpenClaw also talks to the messaging channels you connect and to any tools or websites your agents use; those services handle data under their own terms. Remove bundled providers you do not need from your agents' fallbacks, and host the gateway in the EU, so that model traffic and stored sessions stay in Europe.

## OpenClaw

Category

Agents

Maker

OpenClaw open-source project

API format

OpenAI and Anthropic

Processing

EU data centres

Website

[openclaw.ai](https://openclaw.ai/)

Documentation

[docs.openclaw.ai](https://docs.openclaw.ai/concepts/model-providers/custom-providers)

## OpenClaw: common questions

The questions buyers, developers and legal teams ask us most. Something missing? Ask us directly.

Yes. Add a provider under \`models.providers\` in \`~/.openclaw/openclaw.json\` with \`baseUrl\`, \`apiKey\`, \`api: "openai-completions"\` and a list of models. OpenClaw also supports Anthropic-compatible endpoints with \`api: "anthropic-messages"\`. Restart the gateway after saving.

Set \`agents.defaults.model.primary\` to \`inference-eu/\` followed by the model id, for example \`inference-eu/kimi-k3\`. Individual agents can override the default with their own model setting if they need a different one, for example a faster model.

Kimi K3 is a strong primary model for general assistant work with tools. GLM-5.3 is a good alternative, Qwen3 Coder 480B suits coding agents, and gpt-oss-120b handles quick chat replies and triage well.

The model id is missing from \`models.providers.inference-eu.models\`. Aliases under \`agents.defaults.models\` only add metadata; they do not register a model. Add an entry with the matching \`id\` and restart the gateway.

Background services do not load your shell profile, so \`INFERENCE\_EU\_API\_KEY\` is empty for the gateway. Set the variable in the systemd or launchd unit, or under \`env\` in \`openclaw.json\`, then restart the gateway.

Yes. With \`models.mode\` set to \`merge\`, your \`inference-eu\` provider is added next to the bundled catalogue. To keep all model traffic in the EU, make sure agents and fallbacks only reference \`inference-eu/\` models.

Yes, for models that accept images. Add \`input: \["text", "image"\]\` to the model entry so OpenClaw passes attachments from chat channels as native image input. Without it, images reach the model only as text references.

Model requests are processed by inference.eu in EU data centres. The messaging app you use carries your messages under its own terms, and the gateway stores sessions wherever you host it. Choose an EU host to keep stored data in Europe.

Yes. Set \`api\` to \`anthropic-messages\` in the provider entry and use the inference.eu base URL without the trailing \`/v1\`. Both formats reach the same models; the OpenAI format is the simpler default.

Yes. Choose a custom provider in onboarding and enter the inference.eu base URL, your key and a model id. In non-interactive mode, pass \`--custom-base-url\` and \`--custom-model-id\`. The result is the same entry you would write in \`openclaw.json\`.

[Ask a question](https://inference.eu/contact/)

## Related

[All integrations](https://inference.eu/integrations/)

-   [Hermes AgentRun Nous Research's Hermes Agent on open-weight models processed in EU data centres by setting a custom OpenAI-compatible endpoint in config.yaml.Agents](https://inference.eu/integrations/hermes-agent/)
-   [PiAdd inference.eu to Pi's models.json and run the minimal Pi coding agent on open-weight models processed in EU data centres.Coding agents](https://inference.eu/integrations/pi/)
-   [gooseAdd inference.eu as a custom OpenAI-compatible provider in the goose desktop app or CLI and run its agents on open-weight models processed in the EU.Agents](https://inference.eu/integrations/goose/)

## Move your AI workloads to EU infrastructure

Tell us which models you use and roughly how much traffic you have. We reply within one working day with pricing and next steps.

-   Reply within one working day
-   Pricing for your volume
-   DPA ready to sign
