English
主导航

Windows

在 Windows 上运行 Codex 的技巧

在 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 兼容性行为。

沙箱权限

在完全访问模式下运行 Codex 意味着 Codex 不受项目目录的限制,可能会执行意外的破坏性操作,从而导致数据丢失。为了更安全的自动化操作,请保留沙箱边界,并为特定例外使用 规则 ,或者设置您的 批准策略设置为从不 以让 Codex 尝试在无需请求提升权限的情况下解决问题,具体取决于你的 批准与安全设置.

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&lt;user> in Explorer.

故障排除与常见问题解答

如果你在排查受管理的 Windows 机器问题,请从原生沙盒模式、Windows 版本以及 Codex 显示的任何策略错误开始。大多数 Windows 原生支持问题源于沙盒设置、登录权限或文件系统权限,而不是编辑器本身。