C 盘快满,翻了一下才发现 .codex 目录攒了不少东西:缓存、会话记录、插件、鉴权信息。挪到 D 盘,顺便为以后跨设备同步配置留个口子。

Codex CLI 的主目录路径由 CODEX_HOME 环境变量控制,读取顺序在启动时定死。改环境变量比建 symlink 更直接:不用管文件系统链接的权限问题,卸载重装时也不会因为符号链接失效导致路径解析出错。

步骤

  1. 找到旧目录:

    $env:USERPROFILE\.codex
    
  2. 把内容整体搬到新位置:

    robocopy "$env:USERPROFILE\.codex" "D:\Codex\.codex" /E /COPYALL
    
  3. 设置 CODEX_HOME 环境变量,User 和 Machine 两级都写,避免某些以系统身份启动的终端或计划任务只读 Machine 级变量而读不到:

    [System.Environment]::SetEnvironmentVariable("CODEX_HOME", "D:\Codex\.codex", "User")
    [System.Environment]::SetEnvironmentVariable("CODEX_HOME", "D:\Codex\.codex", "Machine")
    
  4. 重开一个终端(环境变量改了对已打开的终端不生效),验证:

    $env:CODEX_HOME
    codex --version
    

    确认 auth.json 还在新目录下,登录状态没丢,跑一次命令确认会话记录写到了新路径。

  5. 确认无误后删掉旧目录 C:\Users\<user>\.codex

结果

全程没踩大坑。唯一容易忘的是第 4 步:改完环境变量得开新终端再验证,不然会误以为没生效,回头折腾半天查错。