在当前的软件开发领域,AI 编码助手已经成为提升效率的关键工具。 Claude Code 无疑是其中的热门选择,而 OpenAI 的 Codex 与 Google 的 Gemini 也各自拥有稳定的开发者用户群。
但是,当你尝试同时使用多个这样的工具时,配置的复杂性便会凸显。不同的认证流程、各异的基础 URL、以及各自为政的模型与配置方式,都让整体体验变得割裂。Bifrost 在其 CLI-agents 文档中,将自身定位为解决此类碎片化问题的方案:它通过一个网关(gateway)为支持的 agents 提供“通用模型访问”,并集成了 MCP 与可观测性功能。
这正是 Bifrost CLI 的吸引力所在。
与其将 Claude Code、Gemini 和 Codex 视为三个独立的终端工作流,Bifrost CLI 允许你从一个统一的界面启动它们,并将所有流量路由至 Bifrost 网关。根据官方文档,Bifrost CLI 围绕一个交互式的初始化流程构建:你选择网关、运行适配层(harness)、模型,然后无需手动拼接任何配置即可启动会话。
更广义地说,Bifrost 的目标不仅仅是“在一个地方打开多个工具”,而是“通过同一个网关支撑的工作流,在受支持的 agents 上灵活使用不同的供应商与模型组合”。
在本文中,我将演示如何通过 Bifrost CLI 从一个界面同时管理 Claude Code、Gemini 和 Codex,并探讨其真正的价值:它如何让我们在同一工作流中更灵活地思考“代理选择”与“模型选择”。

为什么需要一个统一界面?
过去几个月,AI 编码代理已成为我开发工作流中不可或缺的一部分。Claude Code 备受瞩目,Codex 对于 OpenAI 生态的开发者而言仍是熟悉的选择,而 Gemini CLI 也逐渐成为终端开发者的选项之一。
问题在于,同时使用多个编码代理意味着要面对多套不同的安装与配置流程。
每个工具都有自己关于认证、基础 URL、模型选择和配置的假设。即便每一套设置单独来看都不复杂,但当需要在工具间切换,或在真实项目中测试不同的“模型+代理”组合时,这些摩擦会迅速累积。
这正是 Bifrost CLI 的价值所在。
吸引我的并不仅仅是“用一个命令启动不同的编码代理”。更重要的是,Bifrost 通过其网关站在这些代理之前,这意味着工作流不仅是“在 Claude Code、Gemini 和 Codex 间切换”,更包括了“从一个界面灵活地选择与路由模型”。Bifrost 官方将其称为 通用模型访问:任何在 Bifrost 中配置的供应商或模型,都可以与受支持的代理搭配使用。

对我而言,Bifrost CLI 的吸引力很简单:不再将 Claude Code、Gemini 和 Codex 视为彼此完全独立的终端环境,而是将它们纳入同一个工作流的一部分。
这便将核心问题从“我该用哪个编码 CLI?”,转变为更务实的:“如何在不同编码代理与模型之间切换,而不必每次都重新配置一切?”
什么是 Bifrost?网关为何重要?
在深入探讨 Bifrost CLI 之前,先理解 Bifrost 本身是什么会更有帮助。
Bifrost 是一个 AI 网关。简单来说,它位于你的应用程序或工具与底层模型供应商之间。它并非让每个工具直接连接每个供应商,而是在前端提供了一层统一的抽象。官方文档将其描述为一个面向多家供应商、兼容 OpenAI 的 AI 网关,支持可观测性、治理、缓存、故障切换与负载均衡等功能。
这一点很关键,因为 Bifrost CLI 并非一个自带模型的“独立外壳”。它的工作方式是将编码代理连接到你已经运行的 Bifrost 网关上。
Bifrost CLI 快速入门
根据 CLI 快速入门指南,流程通常从启动 Bifrost 网关开始:
npx -y @maximhq/bifrost
这会在本地启动网关,默认监听 http://localhost:8080。然后在另一个终端中启动 CLI:
npx -y @maximhq/bifrost-cli
安装完成后,你可以直接运行:
bifrost
运行 Bifrost CLI 前,你需要确保 Claude Code、Gemini CLI 和 Codex CLI 已经安装并能正常运行。
如果尚未安装,可按以下步骤快速安装:
-
安装 Claude Code:
curl -fsSL https://claude.ai/install.sh | bash
安装后,启动命令为 claude。

-
安装 Codex CLI:
npm install -g @openai/codex
安装后,启动命令为 codex。

-
安装 Gemini CLI:
npm install -g @google/gemini-cli
安装后,启动命令为 gemini。

请注意:你需要为每个 LLM 供应商准备相应的订阅或 API Key 才能使用其服务。
回到 Bifrost CLI,在新终端中启动 bifrost 后,你可以选择要使用的编码代理。以下界面展示了选择过程:

这里的价值不仅仅在于能从一个界面打开多个代理,而在于它们都连接到了同一个控制层。这为更灵活的工作流(如模型访问、可观测性及代理配置)打开了大门。
可以这样理解:
- Bifrost 网关 = 路由与控制层
- Bifrost CLI = 通过该网关启动编码代理的交互式工作流层
Bifrost CLI 有何不同?
通常,尝试一个新的编码代理总会遇到配置上的摩擦,例如环境变量、针对特定供应商的基础 URL、API Key、模型配置等。
Bifrost CLI 用一个交互式流程取代了大量重复工作:你只需运行一个命令,选择你的设置,剩下的由 CLI 处理。文档将其描述为“一个交互式终端工具,将编码代理连接到 Bifrost 网关,无需手动配置”。
实际操作时,启动 CLI (bifrost) 后,它会引导你完成一系列设置,包括网关 URL、可选的虚拟密钥、要使用的适配层以及要启动的模型。CLI 会自动为每个支持的代理配置基础 URL、API Key 和模型设置,并从网关获取可用模型列表。

另一个优点是,体验不会在首次启动后就结束。Bifrost CLI 提供了一个持久化的、支持标签页的终端 UI。这让它更像一个真正的工作流层,而非一次性启动器。
一个实用的安全细节是:CLI 会将虚拟密钥存储在操作系统的密钥环中,而非明文的配置文件;同时将基础 URL、适配层、模型等通用默认项写入 CLI 配置。
所以,我对 Bifrost CLI 的简单总结是:
- 提供了一个进入 Claude Code、Gemini 和 Codex 的统一入口
- 允许在同一流程中选择模型
- 消除了大量重复的配置摩擦
- 通过持久化的工作流,使会话切换更加自然
通过 Bifrost CLI 使用 Claude Code
在 Bifrost CLI 中从 Claude Code 开始是个不错的选择,因为它是目前备受关注的编码代理。
你不再需要将 Claude Code 当作一个需要独立配置的环境。相反,你启动 Bifrost CLI,选择 Claude Code 作为适配层,选取模型,然后在交互式终端界面中调整其余会话设置。
流程如下:
- 在一个终端启动网关:
npx -y @maximhq/bifrost
- 在另一个终端启动 CLI:
bifrost
- 当 Bifrost CLI 打开后,你可以在终端界面中直接配置会话。正如启动页所示,你可以查看或修改 Base URL、Harness、Model、Virtual Key 与 Worktree,而无需编辑配置文件。
这是体验的关键:Bifrost CLI 将设置过程转变为引导式启动流程。在此界面中,你可以使用快捷键:
u:修改基础 URL
v:新增或更新虚拟密钥
h:切换适配层
m:选择不同模型
w:为 Claude Code 启用工作树模式
Enter:启动
通过 Bifrost CLI 使用 Claude Code 的完整流程:
- 启动 Bifrost 网关
- 运行
bifrost
- 确认选择 Claude Code 作为适配层
- 在 Bifrost CLI 界面中选择模型
- 在同一终端 UI 中调整所需设置
- 按
Enter 启动

这种灵活性才是更大的看点。与其将 Claude Code 视为“固定配置”,不如将其视为“我想使用的界面”,而将模型层的选择与路由交给 Bifrost 处理。
通过 Bifrost CLI 使用 Codex
当 Claude Code 能够通过 Bifrost CLI 正常工作时,接下来尝试 Codex。这时,“一个界面”的故事更具说服力,因为你不仅在复用相同的启动流程来运行另一个编码代理,也在复用同一个“由网关支撑的模型工作流”。
在手动配置中,Codex 需要通过将其基础 URL 指向 Bifrost 的兼容端点(通常是 http://localhost:8080/openai/v1)并提供 Bifrost 虚拟密钥来配置。
但通过 Bifrost CLI,你无需直接编辑 Codex 的配置文件。只需打开同一个 Bifrost 终端 UI,将适配层切换到 Codex,选择模型,然后从同一个交互式界面启动。
Codex 在这个设置中特别有用的一点是:Bifrost 并不把它限定在 OpenAI 托管的模型上。官方文档展示了如何使用其他供应商的模型启动 Codex,例如:
codex --model anthropic/claude-sonnet-4-5-20250929
codex --model gemini/gemini-2.5-pro
这清楚地表明:Bifrost 不只是个简单启动器。Codex 仍是代理界面,但底层模型可以来自其他供应商。
使用步骤很简单:
- 打开同一个 Bifrost CLI 界面
- 将适配层切换为 Codex
- 选择模型(例如
anthropic/claude-sonnet-4-5-20250929)
- 在就绪界面上直接启动


实用提醒:Codex 文档提到,为 Bifrost 网关配置 Codex 前,建议先运行 /logout 命令。此外,使用非 OpenAI 模型时,这些模型需要支持 Codex 期望的工具调用能力。
通过 Bifrost CLI 使用 Gemini
当切换到 Gemini 时,Bifrost CLI 的价值更加直观。你不需要学习第三套设置,也无需管理另一条单独的配置路径。你仍然使用同一个 Bifrost 界面、同一个启动流程、同一个模型选择工作流。唯一的变化是适配层。
这才能真正被称为“一个界面”。
实际操作:
- 在终端1启动网关:
npx -y @maximhq/bifrost
- 在终端2启动 CLI:
bifrost
- 按
h 将适配层切换到 Gemini
- 按
m 选择模型
- 按回车启动

这也让 Bifrost 的“大局观”更清晰。一旦将 Gemini CLI 通过 Bifrost 路由,其所有流量都会经过 Bifrost 网关,从而可以访问该网关设置中配置的任何供应商/模型,并获得可观测性与治理能力。
这意味着 Gemini 并不限于谷歌托管的模型。官方文档展示了使用 provider/model-name 格式运行来自其他供应商的模型,例如 openai/gpt-5 或 anthropic/claude-sonnet-4-5-20250929。
兼容性前提:Gemini CLI 文档指出,非 Google 的模型必须支持工具调用能力,因为 Gemini CLI 依赖此能力进行文件操作、终端命令与代码编辑。
尽管如此,整体体验正是我所期望的:保留同一个 Bifrost 界面,通过几次按键切换到 Gemini,选择模型,然后无缝继续工作。
面向代理与模型的统一界面
在使用 Bifrost CLI 管理了 Claude Code、Codex 与 Gemini 之后,我最大的体会是:真正的价值远不止“把多个编码代理放在一起”。
更重要的收益在于:Bifrost 提供了一个同时跨越“代理”与“模型”的统一界面。
这听起来是个细微差别,但它确实改变了工作流。通常,编码代理与底层模型是强绑定的。而通过 Bifrost,这种绑定变得更加灵活:你交互的编码代理与真正处理请求的模型,不必像过去那样固定匹配。Bifrost 文档明确将此称为受支持代理间的“通用模型访问”。
这就是为什么用“一个界面”来描述 Bifrost CLI 非常贴切。它提供了一个一致的流程,用于:
- 选择编码代理
- 选择模型
- 在不重建配置的情况下改变这些选择
- 在同一终端工作流中于不同会话间切换
在实践中,这意味着你可以因为喜欢 Claude Code 的界面而使用它;当想对比行为时可以切换到 Codex;或在需要时转向 Gemini,而无需从头开始。同时,你可以将模型选择作为一个独立的决策来考量。
对我而言,这带来了三点实际收益:
- 更容易比较不同代理的行为:无需分别为每个工具搭建环境,你可以在同一界面中切换,将精力集中在它们的表现上。
- 更容易试验不同的模型选择:想在某个编码代理中尝试其他模型?Bifrost 让这看起来是工作流的常规环节。
- 长期降低配置摩擦:即便单独配置每个工具不算难,跨工具重复设置也会令人厌倦。Bifrost CLI 通过单一的交互式流程、可记忆的设置以及为重启/切换设计的持久化终端 UI 来替代这些重复劳动。
若要用一句话概括其核心价值:
Bifrost CLI 不只是在一个地方启动 Claude Code、Gemini 与 Codex——它提供了一个能更自由地混搭“代理选择”与“模型选择”的统一工作流。
这使得这套方案不仅仅是“方便”,而是“真正有用”。
总结
通过 Bifrost CLI 整合使用 Claude Code、Codex 与 Gemini 后,最大的收获是它带来了超越“便利性”的价值。
Bifrost CLI 真正改变的是工作流范式。你不再需要为每个编码代理维护独立的配置路径,而是在一个统一的界面中工作,将底层的路由与控制交给 Bifrost 网关。这让跨代理切换、试验不同模型组合变得无比轻松,整体体验也更为一致。Bifrost 文档描述的 通用模型访问,在实际使用这三个代理后,显得非常贴切。
如果你已经对 Claude Code 感兴趣,同时也希望在同一个终端工作流中灵活接入 Gemini 与 Codex,那么 Bifrost CLI 会让这一设想变得切实可行,极大提升了开发者的工具管理效率。在 云栈社区 的 运维/DevOps 板块,你也能找到更多关于高效命令行工作流与自动化实践的分享。