Xum
Note
AI Gateway is part of AI Governance, which is included with a Premium license.
Xum (formerly Mux) makes it easy to run parallel coding agents, each with its own isolated workspace, from your browser or desktop; it is open source and provider-agnostic.
Xum can be configured to route OpenAI- and Anthropic-compatible traffic through AI Gateway by setting a custom provider base URL and using a Coder-issued token for authentication.
Prerequisites
- AI Gateway is enabled on your Coder deployment.
- A Coder API token.
Configuration
- Open Xum settings (
Cmd+,/Ctrl+,). - Go to Providers → OpenAI.
- Set API Key to your Coder API token.
- Set Base URL to
https://coder.example.com/api/v2/ai-gateway/openai/v1.
Replace coder.example.com with your Coder deployment URL.
Environment variables
Xum reads provider configuration from its settings UI and also from environment variables. Environment variables are useful in CI or when running Xum inside a Coder workspace.
Note
Xum treats environment variables as a fallback when a provider is not configured in settings. If you have already configured a provider in the UI, clear it (or update it) for env vars to take effect.
# OpenAI-compatible traffic (GPT, Codex, etc.)
export OPENAI_API_KEY="<your-coder-api-token>"
export OPENAI_BASE_URL="https://coder.example.com/api/v2/ai-gateway/openai/v1"
# Anthropic-compatible traffic (Claude, etc.)
export ANTHROPIC_API_KEY="<your-coder-api-token>"
export ANTHROPIC_BASE_URL="https://coder.example.com/api/v2/ai-gateway/anthropic"
Run Xum in a Coder workspace
To run Xum inside a Coder workspace (for example, as a Coder app), you can install it with the mux module (still published under its pre-rename name) and pre-configure AI Gateway via environment variables on the agent:
data "coder_workspace" "me" {}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
# ... other agent configuration
env = {
OPENAI_API_KEY = data.coder_workspace_owner.me.session_token
OPENAI_BASE_URL = "${data.coder_workspace.me.access_url}/api/v2/ai-gateway/openai/v1"
ANTHROPIC_API_KEY = data.coder_workspace_owner.me.session_token
ANTHROPIC_BASE_URL = "${data.coder_workspace.me.access_url}/api/v2/ai-gateway/anthropic"
}
}
module "mux" {
source = "registry.coder.com/coder/mux/coder"
version = "~> 1.5"
agent_id = coder_agent.main.id
}
Advanced: providers.jsonc
If you prefer a file-based config, edit ~/.xum/providers.jsonc:
{
"openai": {
"apiKey": "<your-coder-api-token>",
"baseUrl": "https://coder.example.com/api/v2/ai-gateway/openai/v1"
},
"anthropic": {
"apiKey": "<your-coder-api-token>",
"baseUrl": "https://coder.example.com/api/v2/ai-gateway/anthropic"
}
}
References: Xum provider environment variables

