不要用 experimental_use_profile 当 nvm 开关
默认 false。打开后生成子进程会跑用户 shell profile。这不是 shell_snapshot,也不是 allow_login_shell。实验键,优先用 set 钉 PATH。
远端或本机命令找不到 nvm / Homebrew 时,有人会抄这一行:
[shell_environment_policy]
experimental_use_profile = true
它的含义是:生成子进程时使用用户 shell profile。官方默认 false。这会把 rc 里的 export、别名和密钥一并拉进 agent 命令,filters 先收窄的变量也可能被 profile 再写回来。
对照另外两个键,不要抄混:
features.shell_snapshot:默认开,复用启动时拍下的环境。环境陈旧就关快照。allow_login_shell:管 shell 工具能不能要 login shell(读~/.profile/~/.zprofile)。默认 true。experimental_use_profile:实验键,source 用户 profile。不是稳定的 PATH 修复。
要给子进程固定工具路径:
[shell_environment_policy]
set = { PATH = "/usr/bin:/usr/local/bin:/home/you/.nvm/versions/node/current/bin" }
桌面 Remote / SSH 仍优先把 PATH 写进远端 ~/.profile,并保持 allow_login_shell = true。不要在仓库 .codex/config.toml 里给全组打开 experimental_use_profile。改完新开会话,再用 codex features list 和一条 echo $PATH 核对。