# Claude Code、Codex 與 Copilot 訂閱

新手流程跑通後，如何改用既有的訂閱方案而非 API key 來執行 Agenvoy。

免費額度不夠用時，下一步不是再開一把按量計費的 API key，而是接上你可能已經在付的訂閱。這四個是備援／第二個模型的首選：費用本來就是每月固定，agent 多跑幾輪也不會讓帳單跳動。

| 供應商 | 計費來源 | 在選單裡的位置 |
|---|---|---|
| Codex | 你的 ChatGPT / Codex 訂閱 | **OAuth** 分頁 → `OpenAI Codex` |
| Grok (xAI) | 你的 xAI 訂閱 | **OAuth** 分頁 → `Grok (xAI)` |
| GitHub Copilot | 你的 GitHub Copilot 訂閱 | **OAuth** 分頁 → `GitHub Copilot` |
| Claude Code | 你的 Claude 訂閱，經本機 `claude` CLI | **OAuth** 分頁 → `Claude Code`（啟動時開啟才會出現） |

四者都不需要 API key。Codex 與 Grok 開啟瀏覽器授權頁，Copilot 走 device-code 流程；token 都與其他憑證一樣存進 OS keychain。Claude Code 沒有自己的登入流程：它直接執行你已安裝並登入的 `claude` CLI，因此必須在 Agenvoy 啟動時開啟。

## 加入 Codex

| 步驟 | 操作 |
|---|---|
| 1 | `/model` → **add** |
| 2 | 選單預設開在 **OAuth** 分頁（←/→ 切換分頁） |
| 3 | 選 **`OpenAI Codex`** —— 不是 **API Key** 分頁的 `OpenAI`，那是按量計費。v1.0.22 之前的路徑是 OpenAI → *OpenAI  method* → `Codex    subscription` |
| 4 | OAuth 視窗出現後，授權頁就緒時瀏覽器會自動開啟（按 **Enter** 可重新開啟），登入並授權 —— 這段流程有 15 分鐘時限 |
| 5 | 回到 TUI，從你的訂閱可用的模型清單選一個 |

## 加入 Grok (xAI)

| 步驟 | 操作 |
|---|---|
| 1 | `/model` → **add** |
| 2 | 停在 **OAuth** 分頁 |
| 3 | 選 **`Grok (xAI)`** |
| 4 | 與 Codex 相同的瀏覽器 OAuth 流程 |
| 5 | 選模型 |

## 加入 GitHub Copilot

| 步驟 | 操作 |
|---|---|
| 1 | `/model` → **add** |
| 2 | 停在 **OAuth** 分頁 |
| 3 | 選 **`GitHub Copilot`** |
| 4 | 視窗顯示驗證網址與使用者代碼，按 **Enter** 以瀏覽器開啟該頁，輸入代碼並授權。同樣有 15 分鐘時限 |
| 5 | 從你的 Copilot 方案提供的模型中選一個 |

## 加入 Claude Code

| 步驟 | 操作 |
|---|---|
| 1 | 安裝 `claude` CLI 並以你的 Claude 帳號登入；它必須在 `PATH` 上 |
| 2 | 先 `agen stop`，再以 `agen --enable-claude-code` 啟動。daemon 執行中時此旗標會被拒絕。之後不帶旗標啟動的 TUI 沿用 daemon 的設定 |
| 3 | `/model` → **add**，停在 **OAuth** 分頁選 **`Claude Code`** —— 完成步驟 2 且找到 binary 之前這一列不會出現 |
| 4 | 沒有瀏覽器步驟。從 `claude` CLI 回報的、你的訂閱可用的模型清單選一個 |

快取與 session 沿用等細節見 [Claude Code Provider](/zh/docs/providers-claude-code)。

> Codex、Grok 或 Copilot 已經授權過的話，流程會先問 `<Provider> token exists  re-login?`。選 **`No   keep existing`** 沿用既有 token 並直接跳到模型清單 —— 只有要換帳號時才選 `Yes  re-authenticate`。

註冊多個模型之後，TUI 內 **Shift+W** / **Shift+S** 可切換 session 模型（`auto` 表示交由 dispatcher 挑選），`/model dispatch` 與 `/model summary` 則用來明確指定 dispatcher 與 summary 模型。
