# CodeRouter

CodeRouter 是 cmux 背后的模型路由器。你的编程代理将请求发送到 CodeRouter，由它把每个请求转发到团队添加的某个订阅或 API 密钥。当某个账户被限流、被拒绝或不可用时，CodeRouter 会把工作转移到另一个账户，让代理继续运行。

## 为什么使用

-   汇集多个 ChatGPT、Claude 和 OpenCode Go 订阅以及 API 密钥，并与团队共享。
-   当某个账户达到用量上限时，代理仍能继续工作。
-   为 cmux Cloud 机器提供模型访问，而无需在机器上存储凭据。
-   按账户、按 API 密钥、按 Cloud 机器查看 token 用量。

## 支持的账户

每个账户为使用其提供商 API 的代理提供服务。Codex 和 Pi 共用一个池；Claude Code 使用另一个由 Claude 账户组成的池。

| 账户 | 服务对象 | 添加方式 |
| --- | --- | --- |
| ChatGPT 订阅（个人或团队工作区） | Codex, Pi | `cr add codex` |
| OpenAI API 密钥 | Codex, Pi | CodeRouter 控制台 |
| OpenRouter API 密钥 | Codex, Pi | CodeRouter 控制台 |
| OpenCode Go 订阅 | OpenCode | `cr add opencode` |
| Claude Max 或 Pro（Claude Code 设置令牌） | Claude Code | `cr add claude` |
| Anthropic API 密钥 | Claude Code | `cmux coderouter claude add api-key` |
| Amazon Bedrock 凭据 | Claude Code | `cmux coderouter claude add bedrock` |

CodeRouter 控制台也可以添加 API 密钥、Claude 令牌和 Bedrock 凭据。它会列出每个账户及其状态、冷却时间和活跃会话： [cmux.com/dashboard/coderouter](https://cmux.com/zh-CN/dashboard/coderouter)

## 路由机制

只要账户状态正常，每个代理会话都会固定在同一个账户上，从而保持提供商的提示缓存有效。新会话会分配给活跃会话最少的账户。

当提供商返回限流、拒绝凭据或没有响应时，CodeRouter 会让该账户进入冷却，并在另一个账户上重试请求。只有在任何模型输出到达代理之前才会重试，因此已经开始流式传输的响应绝不会被发送两次。

向提供商发出请求的是 CodeRouter 的托管服务。因此提供商流量来自 CodeRouter，而不是你的 Mac 或 Cloud 机器。

## 在 Mac 上快速开始

1.  安装 CodeRouter CLI。它会同时以 coderouter 和 cr 两个名称安装。你也可以运行 cmux cr，首次运行时它会提示安装。
2.  使用你的 cmux 账户登录。cr login 会打开浏览器；请批准其中显示的代码。
3.  添加订阅。cr add 会打开提供商菜单，cr add codex 会在浏览器中登录 ChatGPT。
4.  使用 cr codex、cr opencode 或 cr pi 通过 CodeRouter 运行代理。代理名称后面的参数会原样传给代理。

```
curl -fsSL https://cmux.com/coderouter/install.sh | sh
cr login
cr add codex
cr codex
```

## 在 cmux Cloud 机器上

每台 Cloud 机器在创建时就已连接到 CodeRouter。机器上的 Claude Code、Codex、OpenCode 和 Pi 无需登录和设置即可使用团队的账户。

[Cloud 机器上的代理是如何配置的](https://cmux.com/zh-CN/docs/coderouter/agents#cloud)

## 团队与共享

账户属于你当前登录的团队。cr org list 显示你的团队，cr org switch 切换 cr 使用的团队。cmux coderouter 命令接受 --team <id>。

添加到组织的账号会与团队共享，所有成员和团队的 Cloud 机器都可以使用。在控制台中，“设为私有”会将其限制为添加者本人可用，“与团队共享”则恢复共享。

在你的个人团队中，新账号是私有的，你的私有账号也供你自己的 Cloud 机器使用。组织的 Cloud 机器只使用共享账号，因此私有账号必须先共享，机器才能使用。

任何团队成员都可以添加、重命名、停用、转移和移除团队的共享账户。cr transfer 在你确认后将账户转移到另一个团队。

```
cr org list
cr org switch <name-or-id>
cr accounts
cr transfer [account] [--to <team>]
cr remove [account]
```

## 用量与限制

每个提供商按照处理请求的账户自身的套餐和限制进行计量。CodeRouter 会把工作分散到多个账户，但不会提高任何单个账户的上限。

cr 显示每个订阅的配额状态。加上 --watch 每 30 秒刷新一次，或加上 --json 供脚本使用。

cmux coderouter machines 显示每台 Cloud 机器 30 天内的 token 用量和 API 等值金额。在机器内部，cmux coderouter usage 会按天、工作区、代理和模型细分该机器的用量。

API 等值金额是按公开标价计算的估算值，不是账单。

```
cr
cr usage --watch
cmux coderouter machines
```

## 凭据与隐私

-   提供商凭据在存储前会被加密。任何 CodeRouter API 或控制台页面都不会返回已存储的凭据；账户只显示标签、邮箱或打码后的密钥。
-   cr add 和 cmux coderouter claude add 绝不会把提供商凭据作为命令参数接收，因为那样会留在 shell 历史中。它们从环境变量、标准输入或隐藏提示中读取凭据。
-   cr add codex 和 cr add opencode 会在浏览器中登录提供商。cr codex 仅在本次运行中把 CodeRouter 设置传给 Codex，不会改动你平时的 Codex 登录和配置。
-   Cloud 机器不保存任何凭据。机器上的代理把一个公开的占位密钥发送到 CodeRouter 的私有地址，由机器的网络边缘附加一个绑定到该机器的签名凭据。CodeRouter 会拒绝来自其他机器的该凭据，并在机器删除时将其吊销。
-   每个 CodeRouter 响应都带有一个标识该请求的 x-coderouter-request-id 标头。

## 后续步骤

-   [代理与模型：在 Mac 和 Cloud 机器上设置每个代理](https://cmux.com/zh-CN/docs/coderouter/agents)
-   [CLI 与故障排除：所有命令和常见错误](https://cmux.com/zh-CN/docs/coderouter/cli)
-   [cmux Cloud](https://cmux.com/zh-CN/docs/cloud)

Canonical: https://cmux.com/zh-CN/docs/coderouter

Documentation index: https://cmux.com/llms.txt
