# Windows 上用 Codex

## 原生还是 WSL2

| | Windows 原生 | WSL2 |
| --- | --- | --- |
| Codex 在哪里跑命令 | PowerShell，用 Windows 沙箱隔离 | Linux 环境，用 Linux 沙箱隔离 |
| 适合 | 普通的 Windows 项目；桌面版默认用这个 | 依赖 Linux 工具链，或者项目本来就在 WSL 里 |
| 要求 | 推荐 Windows 11；Windows 10 要 1809 或更新的版本 | 只支持 WSL2。WSL1 从 Codex 0.115 起不再支持 |

拿不准就先用原生，遇到 Linux 专属的工具再换 WSL2。

## 原生：沙箱

Codex 在 Windows 上用沙箱限制命令能读写哪些文件、能不能联网。沙箱有三种实现，Codex 会自动选：

- `mxc`：推荐。兼容的设备上不需要管理员设置。
- `elevated`：`mxc` 用不了时的首选。第一次要管理员批准设置，之后命令本身不以管理员身份运行。在 CLI 里可以用 `/setup-default-sandbox` 完成设置。
- `unelevated`：最后的退路，公司策略挡住了管理员设置时用。网络隔离比 `elevated` 弱。

想手动指定，在 `config.toml` 里写：

```toml title="%USERPROFILE%\\.codex\\config.toml"
[windows]
sandbox = "elevated" # 或 "unelevated"
```

桌面版要在输入框下面选「Ask for approval」，沙箱才会生效。确实需要管理员权限的命令，右键 ChatGPT 桌面版选「以管理员身份运行」，Codex 会继承这个权限。

**报错 1385**：Windows 策略不允许沙箱用户启动命令。公司电脑先找 IT 确认登录权限；要马上用的话，临时改成 `unelevated`。排查日志在 `%USERPROFILE%\.codex\.sandbox\sandbox.log`。

## PowerShell 禁止运行脚本

报错类似这样：

```text
npm.ps1 cannot be loaded because running scripts is disabled on this system.
无法加载文件 C:\Users\...\codex.ps1，因为在此系统上禁止运行脚本。
```

PowerShell 默认不允许运行脚本。只给当前用户放开，不需要管理员权限：

```powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
```

不想改策略的话，用 `codex.cmd` 代替 `codex`。改之前可以先看微软的[执行策略说明](https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies)。

## PowerShell 7 和中文乱码

Windows 自带的是 PowerShell 5.1，中文输出容易乱码，一些命令的行为也和新版不同。建议装 PowerShell 7：

```powershell
winget install --id Microsoft.PowerShell -e
```

装好后用「PowerShell 7」（`pwsh`）打开终端。还乱码的话，运行 `notepad $PROFILE` 打开 PowerShell 的配置文件，加上这两行：

```powershell
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
```

不建议打开系统设置里的「Beta 版: 使用 Unicode UTF-8 提供全球语言支持」，它会影响其他软件。

桌面版的内置终端可以在设置里换成 PowerShell、命令提示符、Git Bash 或 WSL，只对新开的终端生效。

## 装上常用工具

Codex 干活时用得到这些工具。Git 是必须的，桌面版的改动审查靠它：

```powershell
winget install --id Git.Git
winget install --id OpenJS.NodeJS.LTS
winget install --id Python.Python.3.14
winget install --id GitHub.cli
```

装完 GitHub CLI 运行一次 `gh auth login`，桌面版里和 GitHub 相关的功能才能用。

## 用 WSL2

1. 用管理员身份打开 PowerShell，安装 WSL（默认装 Ubuntu），装完按提示重启电脑：

   ```powershell
   wsl --install
   ```

2. 打开 WSL，先装上 Codex 的沙箱依赖 bubblewrap，再安装并启动 Codex：

   ```bash
   sudo apt install bubblewrap
   curl -fsSL https://chatgpt.com/codex/install.sh | sh
   codex
   ```

**项目放在哪**：

- Codex 跑在 WSL 里（WSL 里的 CLI，或者桌面版的 agent 切到了 WSL）：项目放在 Linux 目录下，比如 `~/code/项目名`。放在 `/mnt/c/...` 下会慢，还容易遇到权限和软链接问题。
- 用 Windows 原生的桌面版，项目在 WSL 里也要用：官方建议项目放在 Windows 盘上，在 WSL 里通过 `/mnt/c/...` 访问。直接从 `\\wsl$` 打开的项目，Git 有时识别不到。

**桌面版改用 WSL**：打开设置，把 agent 从 Windows native 切到 WSL，然后重启 ChatGPT 桌面版，重启后才生效。

**让 WSL 和 Windows 共用配置**：Windows 上的桌面版和 CLI 用 `%USERPROFILE%\.codex`，WSL 里的 CLI 默认用 Linux 的 `~/.codex`，登录、配置和历史会话都不共用。想共用的话，在 WSL 的 `~/.bashrc`（或 `~/.zshrc`）里加一行，把「你的用户名」换成 Windows 的用户名：

```bash
export CODEX_HOME=/mnt/c/Users/你的用户名/.codex
```

**VS Code 配合 WSL**：在 WSL 里进入项目目录，运行 `code .`，VS Code 会以 WSL 模式打开，左下角显示 `WSL: Ubuntu`。这时 Codex 插件也运行在 WSL 里。不想用 WSL 窗口的话，也可以在 VS Code 设置里打开 `chatgpt.runCodexInWindowsSubsystemForLinux`，让插件在 WSL 里运行 Codex。

---

本页按 OpenAI 官方文档整理，核对于 2026 年 10 月。OpenAI 更新很频繁，按钮名称和菜单位置可能略有出入，以你看到的界面为准。