在 Windows 上以原生方式使用 Codex Codex 应用,该 CLI,或该 IDE 扩展.
Windows 上的 Codex 应用支持核心工作流,例如并行代理线程、工作树、自动化、Git 功能、内置浏览器、构建产物预览、插件和技能。
根据你的操作环境和配置,Codex 可以通过三种实用方式在 Windows 上运行:
- 在 Windows 上原生运行,并配合更强的
elevated沙盒, - 在 Windows 上原生运行,并使用备用的
unelevated沙盒, - or inside 适用于 Linux 的 Windows 子系统 2 (WSL2),它使用 Linux 沙盒实现。
Windows 沙盒
当你在 Windows 上原生运行 Codex 时,代理模式会使用 Windows 沙盒来阻止工作文件夹之外的文件系统写入,并在未经你明确批准的情况下阻止网络访问。
原生 Windows 沙盒支持包含两种模式,你可以在
config.toml:
[windows]
sandbox = "elevated" # or "unelevated"
elevated 是首选的原生 Windows 沙盒。它使用专用的低权限沙盒用户、文件系统权限边界、防火墙规则以及沙盒中运行命令所需的本地策略更改。
unelevated 是原生的 Windows 备用沙箱。它使用派生自当前用户的受限 Windows 令牌来运行命令,应用基于 ACL 的文件系统边界,并使用环境级别的脱机控制,而不是专用的脱机用户防火墙规则。它的安全性弱于 elevated,但当管理员批准的设置被本地或企业策略阻止时,它仍然很有用。
如果两种模式都可用,请在排查设置问题时将 elevated。如果默认的本地沙箱在你的环境中不起作用,请使用 unelevated 作为备用方案。
默认情况下,两种沙箱模式还会使用专用桌面以增强 UI 隔离。仅当出于兼容性需要旧版 windows.sandbox_private_desktop = false 行为时,才设置 Winsta0\\Default 兼容性行为。
沙箱权限
Windows 版本矩阵
| Windows 版本 | 支持级别 | 备注 |
|---|---|---|
| Windows 11 | 推荐值 | Windows 上 Codex 的最佳基线版本。如果你正在标准化企业部署,请使用此版本。 |
| 最新的、完全更新的 Windows 10 | 尽力支持 | 可以使用,但不如 Windows 11 可靠。对于 Windows 10,Codex 依赖于现代控制台支持(包括 ConPTY)。实际上,需要 Windows 10 1809 版本或更高版本。 |
| 较旧的 Windows 10 版本 | 不推荐 | 更有可能缺少所需的控制台组件(如 ConPTY),并且在企业环境中更容易出现故障。 |
额外环境假设:
winget应当可用。如果缺少,请在设置 Codex 之前更新 Windows 或安装 Windows 包管理器。- 推荐的原生沙箱依赖于经管理员批准的设置。
- 某些企业托管的设备即使操作系统版本符合要求,也会阻止必要的设置步骤。
授予沙箱读取权限
当命令因 Windows 沙箱无法读取目录而失败时,请使用:
/sandbox-add-read-dir C:\absolute\directory\path
该路径必须是一个现有的绝对目录。命令执行成功后,在当前会话期间,后续在沙箱中运行的命令即可读取该目录。
默认使用原生 Windows 沙箱。原生 Windows 沙箱在保持同等安全性的同时,提供了最佳的性能和最高的速度。当您需要在 Windows 上使用原生 Linux 环境、工作流已建立在 WSL2 中,或者原生 Windows 沙箱模式均无法满足您的需求时,请选择 WSL2。
适用于 Linux 的 Windows 子系统
如果选择 WSL2,Codex 将在 Linux 环境中运行,而不是使用原生 Windows 沙箱。如果您需要在 Windows 上使用原生 Linux 工具,或者您的代码库和开发工作流已经存在于 WSL2 中,亦或是原生 Windows 沙箱模式在您的环境中均无法正常工作,此选项将非常有用。
WSL1 可通过 Codex 支持 0.114。从 Codex 0.115开始,Linux 沙盒已迁移至 bubblewrap 开始,因此不再支持 WSL1。
从 WSL 内部启动 VS Code
有关分步说明,请参阅 VS Code WSL 官方教程.
前提条件
- 已安装 WSL 的 Windows。要安装 WSL,请以管理员身份打开 PowerShell,然后运行
wsl --install(Ubuntu 是一个常见的选择)。 - 带有 WSL 扩展 installed.
从 WSL 终端打开 VS Code
# From your WSL shell
cd ~/code/your-project
code .
这会打开一个 WSL 远程窗口,并在需要时安装 VS Code Server,同时确保集成终端在 Linux 中运行。
确认你已连接到 WSL
-
查看显示以下内容的绿色状态栏:
WSL: <distro>. -
集成终端应显示 Linux 路径(例如
/home/...) 而不是C:\. -
你可以使用以下命令进行验证:
echo $WSL_DISTRO_NAME这会输出你的发行版名称。
如果你在状态栏中没有看到“WSL: …”,请按 Ctrl+Shift+P,选择
WSL: Reopen Folder in WSL,并将你的代码库保留在 /home/... (不
C:\) 以获得最佳性能。
如果 Windows 应用或项目选择器没有显示你的 WSL 仓库,请在文件选择器或资源管理器中输入
\wsl$ , 然后导航到你的发行版的主目录。
使用 Codex CLI 配合 WSL
在提升权限的 PowerShell 或 Windows Terminal 中运行以下命令:
# Install default Linux distribution (like Ubuntu)
wsl --install
# Start a shell inside Windows Subsystem for Linux
wsl
然后从你的 WSL shell 中运行以下命令:
# Install and run Codex in WSL
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex
在 WSL 内处理代码
- 在 Windows 挂载路径(如
/mnt/c/…)中工作可能比在 Windows 原生路径中工作慢。请将你的仓库保存在 Linux 主目录下(如~/code/my-app)以获得更快的 I/O 速度,并减少符号链接和权限问题:mkdir -p ~/code && cd ~/code git clone https://github.com/your/repo.git cd repo - 如果你需要从 Windows 访问文件,它们位于
\wsl$\Ubuntu\home<user>in Explorer.
故障排除与常见问题解答
如果你在排查受管理的 Windows 机器问题,请从原生沙盒模式、Windows 版本以及 Codex 显示的任何策略错误开始。大多数 Windows 原生支持问题源于沙盒设置、登录权限或文件系统权限,而不是编辑器本身。