> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hostlinku.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Xum

> Register Hostlinku as a custom provider in Xum (formerly Mux) to run multiple coding agents in parallel with a single API key

[Xum](https://xum.cdr.dev/config/providers) (formerly **Mux**) runs multiple coding agents in parallel, each with its own isolated workspace, from your desktop or browser. Xum supports **custom providers** with your choice of API format-the cleanest way to add Hostlinku without changing the default OpenAI/Anthropic provider.

### Save the API key to a file

```bash theme={null}
mkdir -p ~/.config/hostlinku
printf '%s' 'sk-isi-api-key-kamu' > ~/.config/hostlinku/api-key
chmod 600 ~/.config/hostlinku/api-key
```

### Add Hostlinku as a provider

Edit `~/.xum/providers.jsonc` and add a new provider:

```jsonc theme={null}
{
  // Semua model katalog lewat Chat Completions
  "hostlinku": {
    "providerType": "openai-compatible",
    "displayName": "Hostlinku",
    "baseUrl": "https://api.hostlinku.com/v1",
    "apiKeyFile": "~/.config/hostlinku/api-key",
    "models": ["claude-sonnet-4-6", "gpt-5-5", "deepseek-v4-flash"],
  },
  // Opsional: model Claude lewat Anthropic Messages (prompt caching penuh)
  "hostlinku-claude": {
    "providerType": "anthropic-messages",
    "displayName": "Hostlinku (Anthropic)",
    "baseUrl": "https://api.hostlinku.com",
    "apiKeyFile": "~/.config/hostlinku/api-key",
    "models": ["claude-sonnet-4-6", "claude-haiku-4-5"],
  },
}
```

For `anthropic-messages`, Xum adds `/v1` on its own, so the base URL is written **without** `/v1`. The provider ID (`hostlinku`, `hostlinku-claude`) must be in lowercase and cannot be the same as the name of the default provider.

### Select a model

Open the model picker (or `/model`) and select a model from the **Hostlinku** group. `models` is just a list of suggestions-you can still type in other slugs from the [catalog](https://docs.hostlinku.com/en/models.md) directly. The request appears in the console → **Request Log**.

## Alternative: the built-in OpenAI provider

If you prefer to use only one provider, configure the built-in **OpenAI** provider to use Hostlinku with the Chat Completions wire format (**Settings → Providers → OpenAI**, or in `providers.jsonc`):

```jsonc theme={null}
{
  "openai": {
    "apiKey": "sk-isi-api-key-kamu",
    "baseUrl": "https://api.hostlinku.com/v1",
    "wireFormat": "chatCompletions",
  },
}
```

Why chatCompletions?

OpenAI's default wire format provider is the Responses API, while Responses on Hostlinku are *stateless* ([details](https://docs.hostlinku.com/en/responses.md)). Chat Completions supports all catalog models-including Claude-without that limitation.

## Troubleshooting

| Symptoms | Solutions |
| - | - |
| `401` | The contents of the `apiKeyFile` are incorrect (contain newlines or spaces) or the key has been revoked. |
| `404` | `anthropic-messages` with a duplicate `/v1` - set the base URL to `https://api.hostlinku.com`. |
| Provider not displayed | The provider ID contains uppercase letters or periods, or conflicts with a built-in provider name. |
| `404 model_not_found` | Incorrectly typed slug - copied from `GET /v1/models`. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.