Integration guides

OpenClaw

A self-hosted AI gateway that connects chat entry points like Telegram, Discord and Slack to a coding agent; the model source is customizable — just set it to XylemNode.

Site / download
  1. 01

    Install

    Install globally with npm (Node 22.14 or newer recommended). After installing, run openclaw setup once for basic initialization, then check the version to confirm.

    npm install -g openclaw
    openclaw --version
  2. 02

    Find the config file

    OpenClaw keeps its config in a single JSON5 file (comments and trailing commas allowed). If it doesn't exist, run openclaw setup to generate it; to relocate it, set OPENCLAW_CONFIG_PATH.

    Windows
    %USERPROFILE%\.openclaw\openclaw.json
    macOS
    ~/.openclaw/openclaw.json
    Linux
    ~/.openclaw/openclaw.json
  3. 03

    Write the provider config

    Add XylemNode as a model source and set it as the default. baseUrl uses the OpenAI-compatible format and needs /v1; keep api set to openai-completions; the key can be written directly or referenced with ${ENV_VAR}.

    {
      "agents": {
        "defaults": {
          "model": { "primary": "xylemnode/gpt-5.6-sol" }
        }
      },
      "models": {
        "mode": "merge",
        "providers": {
          "xylemnode": {
            "baseUrl": "https://api.xylemnode.com/v1",
            "apiKey": "sk-your-key",
            "api": "openai-completions",
            "models": [
              { "id": "gpt-5.6-sol", "name": "GPT-5.6 Sol" }
            ]
          }
        }
      }
    }
  4. 04

    Restart the gateway and verify

    Restart the gateway after changes so they take effect, then list models to confirm XylemNode loaded; openclaw doctor can health-check your config.

    openclaw gateway restart
    openclaw models list
    
    # Health-check the config
    openclaw doctor

Config reminders

First, baseUrl must include /v1 and api must be openai-completions — hard requirements of the OpenAI-compatible format. Second, single fields can be changed by command, e.g. openclaw config set models.providers.xylemnode.baseUrl "…"; but the models array can only be added by hand in the file.

Common questions

OpenClaw says No API provider registered, or a changed URL and key have no effect

Two separate traps. The first is an incomplete config: leave the api field out of the provider block and it throws No API provider registered for api: undefined — there is an issue in the repository specifically about that message not telling you what is missing. A custom provider needs api: "openai-completions" spelled out, with mode: "merge" on the models object around it. The second is subtler: the first agent run writes the provider into ~/.openclaw/agents/<agentId>/agent/models.json, and in merge mode the apiKey and baseUrl already in that file are preserved unconditionally, so new values you later set in the global openclaw.json never reach the agent — it shows up as an inexplicable 401, and an open issue pins it to that merge logic. Delete the models.json in the affected agent's directory and let it regenerate from the new config. Don't count on environment variables either: the embedded agent has been reported to ignore OPENAI_BASE_URL and friends, so the config file is the only source that counts.