Connect OpenClaw to DMC: Install via curl or npm, save your token to ~/.openclaw/.env, configure OpenAI/Anthropic/Google providers, and access 500+ models.
~/.openclaw/.env so the daemon can use it without hardcoding in the config file:~/.openclaw/openclaw.json:| Provider | API Format | Endpoint Called | Base URL |
|---|---|---|---|
DMC-openai | openai-completions | POST /v1/chat/completions | https://dmc.cc/v1 |
DMC-openai-responses | openai-responses | POST /v1/responses | https://dmc.cc/v1 |
DMC-claude | anthropic-messages | POST /messages | https://dmc.cc/v1 |
{
"agents": {
"defaults": {
"model": {
"primary": "DMC-claude/your-claude-model-id"
}
}
},
"models": {
"mode": "merge",
"providers": {
"DMC-openai": {
"baseUrl": "https://dmc.cc/v1",
"apiKey": "${DMC_KEY}",
"api": "openai-completions",
"models": [{ "id": "your-chat-model-id", "name": "OpenAI-compatible text model" }]
},
"DMC-openai-responses": {
"baseUrl": "https://dmc.cc/v1",
"apiKey": "${DMC_KEY}",
"api": "openai-responses",
"models": [{ "id": "your-responses-model-id", "name": "Responses API model" }]
},
"DMC-claude": {
"baseUrl": "https://dmc.cc/v1",
"apiKey": "${DMC_KEY}",
"api": "anthropic-messages",
"models": [{ "id": "your-claude-model-id", "name": "Claude family model" }]
}
You can keep only the providers you need, or keep all four and use `provider/model` references to route between different formats.
Replace each `your-...-model-id` placeholder with the current model ID from the [DMC Models page](https://dmc.cc/models/) corresponding to the provider block.
<Note>
For models requiring OpenAI Responses API, use `DMC-openai-responses` (`api: "openai-responses"`). For models using the traditional chat completions path, use `DMC-openai` (`api: "openai-completions"`). Both share the same `baseUrl` (`https://dmc.cc/v1`); the only difference is which downstream endpoint OpenClaw calls.
</Note>
<Note>
This configuration does **not require** an `auth-profiles.json` file. Provider keys are resolved via the `${DMC_KEY}` environment variable from `models.providers.*.apiKey`. You only need `auth-profiles.json` when you want per-profile credential rotation between multiple keys.
</Note>
</Step>
</Steps>
## Verification
<Steps>
<Step title="Restart and Verify">
After adding `.env` or changing provider configuration, restart the gateway:
```bash theme={null}
openclaw gateway restartopenclaw models status will resolve the primary model to DMC-claude/your-claude-model-id and DMC providers should not show authentication warningsopenclaw models list --provider DMC-claude will list your configured modelsopenclaw doctor will report no configuration or verification errors for DMC providers