配置文件 config.toml
配置文件放在哪里
通常位于:~/.codex/config.toml
💡
项目长期规则建议写到仓库内的 AGENTS.md,个人偏好放到本机 config.toml。
最小配置示例
下面是一个学习用示例,实际字段请以官方 config reference 和当前 CLI 版本为准:
代码块
JSON
model = "gpt-5.1-codex-max"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[profiles.readonly]
approval_policy = "on-request"
sandbox_mode = "read-only"
[profiles.build]
approval_policy = "on-request"
sandbox_mode = "workspace-write"
这个示例表达三件事:
•
默认允许在当前工作区写文件。
•
高风险命令仍需要审批。
•
额外保留一个只读 profile,适合新仓库分析。
常见配置项按用途理解
推荐 profiles
只读学习
适合打开陌生仓库、生成项目地图、梳理测试命令。
代码块
YAML
[profiles.readonly]
sandbox_mode = "read-only"
approval_policy = "on-request"
任务示例:
代码块
Bash
codex --profile readonly
代码块
Plain Text
请只读分析当前仓库。不要修改文件,不要运行会写入文件的命令。
日常编码
适合修测试、补文档、小范围实现。
代码块
YAML
[profiles.coding]
sandbox_mode = "workspace-write"
approval_policy = "on-request"
任务示例:
代码块
Plain Text
请修复这个失败测试。修改范围限制在 `src/parser` 和对应测试文件,修复后运行 `pnpm test parser`。
审查与发布前检查
适合 PR review、发布前风险扫描、diff 总结。
代码块
YAML
[profiles.review]
sandbox_mode = "read-only"
approval_policy = "on-request"
任务示例:
代码块
Plain Text
请 review 当前 diff,优先指出 bug、回归风险和缺失测试。不要修改文件。
配置变更的验证方法
每次改完配置,不要直接上复杂任务。用一个短任务验证:
代码块
Plain Text
请告诉我当前工作区、审批策略和你准备采用的验证方式。不要修改文件。
再检查:
•
Codex 是否能正确读取当前目录。
•
是否会在执行命令前解释意图。
•
是否遵守只读或工作区写入边界。
•
是否按预期触发审批。
切换 provider 后历史会话不可见怎么办
有些用户在修改根级 model_provider 后,会发现旧会话在 Codex Desktop 或 CLI 的 /resume 里突然不可见。常见原因不是会话文件丢失,而是 ~/.codex 里的会话 metadata、SQLite 状态和项目路径缓存仍停留在旧 provider。
这个工具主要同步这些位置里的 provider / 可见性 metadata:
•
~/.codex/sessions
•
~/.codex/archived_sessions
•
~/.codex/state_5.sqlite
•
.codex-global-state.json 中的项目根路径缓存
先做两个判断:
•
如果 CLI /resume 能看到旧会话,但 Desktop 项目侧仍为空,可能是 Codex Desktop 最近 50 条会话的首屏显示限制,不一定是 provider metadata 问题。
•
如果最近刚切换过 model_provider,并且多个入口都找不到旧会话,再考虑使用同步工具。
Windows GUI 流程
Windows 用户可以优先使用上游 Release 里的图形界面版本:
打开 codex-provider-sync Releases,下载 CodexProviderSync.exe。
双击运行后,先确认顶部 Codex Home 路径指向你的 .codex 目录。
点击 Refresh,查看当前 provider、rollout、SQLite 和项目可见性诊断。
在 provider 列表里选择目标 Provider。
如果希望同时改写 config.toml 根级 model_provider,再勾选右侧对应选项。
点击 Execute 执行同步。
如果结果不符合预期,用 Restore Backup 从工具生成的备份目录恢复。
GUI 会默认保留最近几份由本工具创建的备份。若 state_5.sqlite 被占用,先关闭 Codex、Codex App 或 app-server 后再重试。
macOS 或 CLI 流程
CLI 版本需要 Node.js 24+。如果你使用 Node 20/22,可能会遇到 node:sqlite 不存在的问题。
代码块
YAML
npm install -g git+https://github.com/Dailin521/codex-provider-sync.git
codex-provider status
建议先只运行 status,确认它看到的 provider、rollout、SQLite 和项目可见性诊断符合预期。确认后再选择操作:
代码块
YAML
codex-provider sync
常用命令含义:
能力边界
它只处理“历史会话可见性”相关 metadata,不是账号切换器,也不是认证修复工具:
•
不处理登录、认证、auth.json 或第三方切号工具。
•
不修改消息历史、会话标题和对话内容。
•
不修改 updated_at,也不会通过改变历史排序绕过 Desktop 最近 50 条限制。
•
含 encrypted_content 的旧会话跨 provider 或 account 后,通常只能恢复列表可见性;继续对话或 compact 仍可能报 invalid_encrypted_content。
上游说明请看 README 和 GUI 中文说明。如果你只是想稳定使用 Codex,优先理解本页前面的 config.toml 配置方式;遇到 provider 切换后的历史会话不可见,再把这个工具作为排障选项。
团队配置建议
适合进仓库的内容:
•
AGENTS.md
•
推荐测试命令
•
代码风格和目录说明
•
PR 模板
•
文档截图规范
适合留在个人机器的内容:
•
默认模型偏好
•
本地路径
•
token、密钥、私有服务地址
•
个人 MCP 服务
•
私有 automation 配置
排障清单