前言
用的codex cli,一直yes,yes 确实难受,还要一直盯着,稍微没注意,不知道等了多久没运行了
因此,昨天半夜在站里找了一圈
https://linux.do/t/topic/2311908
但是win cmd 报错 jq 没找到,折腾很久,还是算了 今天晚上才继续解决,因为不想点yes了
看终端好疲惫!
因害怕全自动代码生成把盘清空,而不敢开放所有权限; 想到使用 自动审批 来减少yes点击的频率 以及降低清空磁盘的风险。但是有很多 站点,都没有 codex-auto-review 这个模型,因此,如果要使用自动审批,就需要动点手段了
下述命令运行环境均为 win cmd
1. 准备文件
# 创建文件夹 放置文件
mkdir "%USERPROFILE%\.codex\model-catalogs" 2>nul
# 生成文件
codex debug models --bundled > "%USERPROFILE%\.codex\model-catalogs\_tpl.json"
# 查看文件大小
dir "%USERPROFILE%\.codex\model-catalogs\_tpl.json"
2. 设置审批模型
此处为 gpt-5.6-sol
如需修改为其他
-NotePropertyValue ‘gpt-5.6-sol’
将这个部分的名称修改即可
-NotePropertyValue ‘gpt-5.5’
powershell -NoProfile -ExecutionPolicy Bypass -Command "& { $p=Join-Path $env:USERPROFILE '.codex\model-catalogs\_tpl.json'; $o=Join-Path $env:USERPROFILE '.codex\model-catalogs\custom-models.json'; $tpl=Get-Content -Raw -Encoding UTF8 $p | ConvertFrom-Json; $m=$tpl.models[0] | ConvertTo-Json -Depth 40 | ConvertFrom-Json; $m.slug='gpt-5.6-sol'; $m.display_name='gpt-5.6-sol (proxy)'; $m.description='Main model via custom proxy'; $m.visibility='list'; $m.supported_in_api=$true; $m | Add-Member -NotePropertyName auto_review_model_override -NotePropertyValue 'gpt-5.6-sol' -Force; $json=([pscustomobject]@{models=@($m)} | ConvertTo-Json -Depth 40); [System.IO.File]::WriteAllText($o,$json,(New-Object System.Text.UTF8Encoding $false)); Write-Host OK; Write-Host $o }"
输出应为:
OK
C:\Users\xxx\.codex\model-catalogs\custom-models.json
验证是否成功
findstr /i "slug auto_review_model_override" "%USERPROFILE%\.codex\model-catalogs\custom-models.json"
powershell -NoProfile -Command "Get-Content -Raw ($env:USERPROFILE+'\.codex\model-catalogs\custom-models.json') | ConvertFrom-Json | Out-Null; 'JSON_OK'"
输出:
"slug": "gpt-5.6-sol"
"auto_review_model_override": "gpt-5.6-sol"
JSON_OK
3. 修改配置文件 config.toml
model_catalog_json = "C:\\Users\\你的用户名\\.codex\\model-catalogs\\custom-models.json"
approval_policy = "on-request"
approvals_reviewer = "auto_review" # 这个地方一定要加,不然用不了!!!
sandbox_mode = "workspace-write"
如果不行输入这个 json路径
那就:
powershell -NoProfile -ExecutionPolicy Bypass -Command "& { $c=Join-Path $env:USERPROFILE '.codex\config.toml'; $path=((Join-Path $env:USERPROFILE '.codex\model-catalogs\custom-models.json') -replace '\\','\\'); $line=\"model_catalog_json = `\"$path`\"\"; $t=Get-Content -Raw -Encoding UTF8 $c; if($t -match 'model_catalog_json\s*='){ $t=[regex]::Replace($t,'model_catalog_json\s*=\s*\".*?\"',$line,1) } else { $t=$line + [Environment]::NewLine + $t }; [System.IO.File]::WriteAllText($c,$t,(New-Object System.Text.UTF8Encoding $false)); Write-Host DONE; Write-Host $line }"
4.测试是否成功
如果就在此时正在运行的工作区,那就 重启 codex,再进行测试
否则,随便创建一个文件夹,为工作区,打开codex cli;让codex 在工作区外 写入文件,触发自动审批
成果

ps:如有疏漏,还望指正 ^-^^-^^-^