Codex 在 Windows 上会变笨吗?以及为什么我决定放心使用 CLI

最近我一直在纠结两个问题。

第一个问题是:同样使用 Codex,在 Windows 和 macOS 上,到底有多大差别?

我经常看到别人推荐在 macOS 上使用 AI 编程工具。久而久之,我也产生了一种模糊的印象:是不是 Codex 到了 Windows 上,能力就会打折?即便模型本身没有差别,Windows 的环境会不会带来很多额外麻烦?

第二个问题是:Codex CLI 和桌面软件之间,到底是什么关系?

如果 CLI 只是桌面版的简化版本,那重要任务似乎还是应该留在桌面端完成。但如果 CLI 本身就是完整的 Codex,只是交互方式不同,那么我完全可以在终端里通过连续对话,把一个任务放心地交给它。

我把这两个问题完整地问了 AI。看完回答以后,我发现自己以前混淆了两组概念:

模型能力,不等于环境适配能力。

任务执行能力,也不等于任务管理能力。

理解了这两点,很多困惑就解开了。

Codex 到了 Windows 上,并不会变笨

先说最直接的结论。

如果使用的是同一个模型、相近的配置和权限,Codex 的代码理解、问题分析、文件修改、命令执行和测试能力,并不会因为操作系统从 macOS 换成 Windows 就突然下降一个等级。

它面对的仍然是同一个任务,也仍然可以阅读仓库、修改代码、运行测试、分析错误和操作 Git。

真正发生变化的,是它手里的工具和脚下的环境。

假设我们让两位能力相同的工程师完成同一个任务,其中一位熟悉办公室里所有设备,另一位却要不断确认插座、门禁、文件柜和工具放在哪里。最后的工作质量未必不同,但完成过程一定会有差别。

Codex 也是如此。

在 macOS 上,大量开发工具天然处于 Unix 环境中。bashzshsshchmodmakegrepsed 等命令,与 Linux 服务器、开源项目文档和 CI 脚本使用的语言比较接近。

因此,Codex 根据项目 README 或通用开发经验生成一条命令,往往可以直接执行。

到了 Windows 原生环境,它面对的则可能是 PowerShell、盘符路径、反斜杠、执行策略、NTFS 权限、换行符、符号链接,以及某些依赖所需的 Visual Studio Build Tools。

这并不意味着 Codex 不会处理这些问题。

它只是需要把更多精力花在环境转换上。

所以,与其说 macOS 上的 Codex 更强,不如说:

macOS 给 AI 编程工具提供了一条更平整、更接近主流服务器环境的道路。

模型没有变聪明,路上的减速带少了。

为什么大家仍然更愿意推荐 macOS

现在 Windows 已经不是 Codex 的实验性附属平台了。

截至 2026 年 7 月,官方 Windows 桌面应用已经支持原生 PowerShell 沙箱,也可以切换到 WSL2;worktree、计划任务、Git、内置浏览器、文件预览、插件和 Skills 等核心工作流也已经具备。官方目前推荐以 Windows 11 作为 Windows 端的主要使用环境。

但“正式支持”与“日常阻力完全相同”不是一回事。

很多 Web、Python、Node.js、Go、Rust、Docker 项目,最终运行环境都是 Linux。项目里的安装文档、Shell 脚本和持续集成流程,也往往按照 Linux 或 Unix 习惯编写。

macOS 恰好把成熟的桌面环境和 Unix Shell 放在了一起。使用者不必经常考虑:

  • 当前是在 PowerShell 还是 Bash 中执行
  • 项目应该放在 Windows 盘还是 WSL 文件系统
  • Git、Node 和 Python 装在了哪一侧
  • 路径和权限应该按哪一套规则处理

这就是很多人推荐 macOS 的现实原因。

它不是让 Codex 获得了额外智力,而是减少了人、AI 和项目之间的翻译成本。

当然,这个结论不能反过来变成“Windows 不适合使用 Codex”。

如果开发的是 .NET、WPF、WinUI、Windows Service,或者必须调用 Windows SDK、注册表、IIS,那么 Windows 原生环境反而更合适。为了追求所谓的 Unix 体验,强行把这些项目塞进 WSL,只会制造新的边界。

真正合理的选择是:

让开发环境尽量接近项目最终运行和验证的环境。

Windows 原生项目,就在 Windows 原生环境中完成。

面向 Linux 部署的 Web 和后端项目,可以考虑 Windows 11 加 WSL2,并把仓库、Git、语言运行时和 Codex CLI 都放在 WSL 内。

需要特别避免的是“半套环境”:Windows Git、WSL Node、Windows Python 和 WSL Shell 同时操作一个项目。很多看似是 Codex 的问题,其实是两套工具链互相踩到了边界。

CLI 不是桌面端的阉割版

这是我这次最想确认的问题。

我以前会下意识地觉得:桌面软件看起来功能更多,因此能力应该更强;CLI 可能只是一个适合执行简单命令的轻量入口。

但实际并不是这样。

Codex CLI 本身就是一个完整的执行型 Agent。

进入项目目录后运行:

1
codex

我可以直接告诉它:

1
2
3
检查这个仓库,定位登录后偶发 401 的原因。
找到根因后直接修复,补回归测试,运行相关测试,
最后说明改动、验证结果和仍然存在的风险。

接下来,它可以搜索代码、阅读文件、执行命令、修改实现、运行测试,再根据测试结果继续修正。

CLI 也支持恢复历史会话、代码审查、图片输入、Web 搜索、MCP、Skills、Plugins 和子代理。codex exec 还可以把 Codex 接入脚本、CI 或其他自动化流程。

所以,CLI 并不是“只能聊天,不能干活”。

恰恰相反,从“进入一个仓库,把一件开发任务做完”这个角度看,CLI 已经是完整工具。

而且对服务器、容器、SSH 远程环境和自动化脚本来说,CLI 往往比桌面端更自然。

这也改变了我的一个使用习惯:以后遇到单仓库、目标明确的开发任务,我不必因为担心 CLI 能力不足,而专门回到桌面软件里操作。

桌面端强的不是模型,而是任务管理

既然 CLI 已经足够完整,为什么还需要桌面端?

因为桌面端解决的是另一层问题。

它更像一个管理多个 AI 工作任务的工作台。

例如,我可以同时打开多个任务,让它们处理不同项目;可以通过可视化 diff 审阅修改;可以预览文件和网页;也可以让 Codex 在独立 worktree 中工作,不影响我正在使用的本地目录。

其中,Codex 自动管理的 worktree 是桌面端比较重要的专属工作流。

当然,CLI 也可以执行 git worktree 命令。但桌面端会把聊天、代码目录、任务状态和 Handoff 绑定在一起,帮助使用者在本地目录与后台 worktree 之间移动任务。这不是多了一条 Git 命令,而是多了一套并行任务管理机制。

计划任务也是类似的区别。

桌面端可以创建和管理后台任务,查看每次运行的结果,并让任务在项目目录或独立 worktree 中执行。CLI 可以配合 cron、Windows Task Scheduler 或 CI 做出类似自动化,但调度系统需要由使用者自己维护。

还有一个很实际的差别:内置浏览器目前属于桌面端能力,CLI 没有同等的共享浏览器界面。如果任务需要打开本地网页、观察渲染结果、点击操作并反复验证,桌面端会更方便。

因此,我现在会这样理解二者:

CLI 负责把事情做完,桌面端负责组织、隔离、观察和调度多件事情。

这显然不只是 TUI 和 GUI 的区别,但也不是“弱版本”和“强版本”的区别。

我最后形成的选择

如果我的任务是:

  • 在一个仓库里实现功能
  • 定位和修复 Bug
  • 补测试或做重构
  • 修改脚本、CI 或 Dockerfile
  • 审查一个分支
  • 通过 SSH 在服务器上工作

我会放心地把 CLI 作为默认入口。

如果我的任务是:

  • 同时推进多个项目
  • 让多个任务并行运行
  • 不想手工管理 worktree
  • 需要可视化审阅大量修改
  • 需要操作和验证网页
  • 需要计划任务、后台运行和集中通知

我会使用桌面端。

至于 Windows 和 macOS,我也不再把它理解成“哪台电脑上的 Codex 更聪明”。

真正应该问的是:

我的项目更接近哪一种环境?为了让 AI 顺利完成任务,我需要付出多少环境适配成本?

这可能也是 AI 编程工具越来越强以后,一个容易被忽略的问题。

模型能力决定它理论上能做到什么。

而 Shell、权限、路径、依赖、工具链和项目结构,决定它在现实中能不能顺利做到。

很多时候,我们以为自己在选择一台更适合 AI 的电脑,其实是在选择一个摩擦更少的工作环境。

而我们以为自己在选择一个更强的 Codex 客户端,其实是在选择:这一次,我需要的是一个执行者,还是一个任务管理台。


资料说明:本文依据截至 2026 年 7 月的官方资料整理。产品能力仍可能继续变化,可参考 Windows 桌面应用Windows 沙箱WSL 使用说明Codex CLI 命令Worktrees计划任务

RoverTang 支付宝支付宝
RoverTang 微信微信