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.
- 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 - 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
- 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" } ] } } } } - 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.