# Mux

> [!NOTE]
> AI Gateway requires the [AI Governance Add-On](https://coder.com/docs/ai-coder/ai-governance.md).
> As of Coder v2.32, deployments without the add-on will not be able to
> access AI Gateway.

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.

Mux 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](https://coder.com/docs/admin/users/sessions-tokens.md#generate-a-long-lived-api-token-on-behalf-of-yourself)**.

## Configuration

<div class="tabs">

### OpenAI

1. Open Mux settings (`Cmd+,` / `Ctrl+,`).
2. Go to **Providers** → **OpenAI**.
3. Set **API Key** to your Coder API token.
4. Set **Base URL** to `https://coder.example.com/api/v2/aibridge/openai/v1`.

### Anthropic

1. Open Mux settings (`Cmd+,` / `Ctrl+,`).
2. Go to **Providers** → **Anthropic**.
3. Set **API Key** to your Coder API token.
4. Set **Base URL** to `https://coder.example.com/api/v2/aibridge/anthropic`.

</div>

_Replace `coder.example.com` with your Coder deployment URL._

## Environment variables

Mux reads provider configuration from its settings UI and also from environment variables.
Environment variables are useful in CI or when running Mux inside a Coder workspace.

> [!NOTE]
> Mux 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.

```sh
# OpenAI-compatible traffic (GPT, Codex, etc.)
export OPENAI_API_KEY="<your-coder-api-token>"
export OPENAI_BASE_URL="https://coder.example.com/api/v2/aibridge/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/aibridge/anthropic"
```

## Running Mux in a Coder workspace

If you want to run Mux inside a Coder workspace (for example, as a Coder app), you can install it with the [Mux module](https://registry.coder.com/modules/coder/mux) and pre-configure AI Gateway via environment variables on the agent:

```tf
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/aibridge/openai/v1"
    ANTHROPIC_API_KEY  = data.coder_workspace_owner.me.session_token
    ANTHROPIC_BASE_URL = "${data.coder_workspace.me.access_url}/api/v2/aibridge/anthropic"
  }
}

module "mux" {
  source   = "registry.coder.com/coder/mux/coder"
  version  = "~> 1.0" # See the module page for the latest version.
  agent_id = coder_agent.main.id
}
```

## Advanced: providers.jsonc

If you prefer a file-based config, edit `~/.mux/providers.jsonc`:

```jsonc
{
  "openai": {
    "apiKey": "<your-coder-api-token>",
    "baseUrl": "https://coder.example.com/api/v2/aibridge/openai/v1"
  },
  "anthropic": {
    "apiKey": "<your-coder-api-token>",
    "baseUrl": "https://coder.example.com/api/v2/aibridge/anthropic"
  }
}
```

**References:** [Mux provider environment variables](https://mux.coder.com/config/providers#environment-variables)
