Codex 目录结构与配置说明详解(windows为例) Codex 目录结构与配置说明详解(windows为例)这份文档基于当前目录C:\Users\用户名\.codex的实际内容整理目标是帮助使用者从“能看懂目录”进一步走到“能理解 Codex 的运行机制、能力加载方式、会话持久化方式以及哪些配置可以改、哪些文件最好不要手改”。codex客户端下载:https://pan.quark.cn/s/d1dd498567ec1. 先看整体.codex是什么.codex可以理解为 Codex Desktop/CLI 的“本地工作中枢”。它通常承担下面几类职责保存全局配置比如默认模型、模型供应商、MCP Server、项目信任级别。保存认证信息和本地状态比如 API Key、窗口状态、最近工作区。保存会话索引、对话回放、任务目标、日志、自动化任务等运行数据。缓存技能、插件、浏览器集成、图片生成结果、临时文件等扩展能力。存放与沙箱、浏览器控制、Node REPL、Computer Use 相关的运行时元数据。可以把它想象成下面这条链路启动 Codex读取 AGENTS.md 与 config.toml装载认证与全局状态初始化模型供应商与 MCP Servers加载 Skills / Plugins / Vendor Imports执行对话、工具调用、自动化任务写入 sessions / sqlite / jsonl / logs / cache2. 顶层目录和文件速览下面这些是当前.codex根目录里最值得关注的部分。路径类型作用AGENTS.md规则文件给代理补充行为约束比如输出风格、命令输出截断规则、代码注释要求。config.toml核心配置Codex 的总控配置入口决定默认模型、供应商、MCP Server、项目信任等。auth.json敏感配置存储认证信息例如OPENAI_API_KEY。.codex-global-state.jsonUI/全局状态保存窗口位置、最近工作区、线程关联信息、待处理 follow-up 等。session_index.jsonl会话索引保存线程 ID、标题、更新时间用于快速列出历史对话。sessions/会话回放按年月日分层存储实际对话回放文件通常是rollout-*.jsonl。state_5.sqlite主状态库保存线程、任务、动态工具、后台作业等结构化状态。logs_2.sqlite日志库保存运行日志、线程关联日志、模块名、文件行号等。goals_1.sqlite目标库保存 thread goal、预算、tokens 使用量、耗时等。sqlite/codex-dev.db自动化库保存 automations、automation runs、inbox items 等桌面端自动化数据。skills/已安装技能当前环境可直接使用的系统技能和本地技能。plugins/插件缓存已缓存的插件包及其版本化目录。vendor_imports/外部技能源缓存存储导入或同步下来的技能仓库及索引缓存。browser/浏览器控制配置保存浏览器能力相关配置与 session 白名单。computer-use/Computer Use 配置保存桌面操作能力的本地配置。generated_images/产物目录存放生成图片的最终文件。ambient-suggestions/建议缓存保存基于项目上下文生成的环境建议缓存。node_repl/Node REPL 状态保存活跃执行记录。rules/规则文件当前看到的default.rules更像命令放行规则集。.sandbox*、.tmp、tmp运行时目录沙箱、临时插件、命令运行器等基础设施目录。3. 核心入口文件config.toml这是最核心的人工可读配置文件。当前实例里它主要承担 4 类职责模型选择例如默认model_provider、model、review_model、model_reasoning_effort、上下文窗口与自动压缩阈值。模型供应商定义当前配置里存在多个 provider例如OpenAI和CodexPlusPlus。每个 provider 会定义base_urlwire_api是否需要 OpenAI Auth某些情况下的实验性 bearer tokenMCP Server 注册当前配置里已经注册了chrome-devtoolsnode_replpascal这意味着 Codex 不只是纯聊天它会把浏览器控制、持久 Node 执行环境、Pascal 场景编辑等能力作为工具接入。项目信任列表[projects....]这类段落表示哪些本地路径被标记为trusted。被信任的项目通常会影响工具可访问范围本地操作安全策略线程与工作区的绑定体验AGENTS.md这是对代理行为的“额外约束层”。在当前目录下它至少承担这些作用规定代码输出时要加合适注释。规定命令输出要做长度截断避免上下文被大输出淹没。对当前工作区形成比通用系统提示更贴近本地环境的补充规则。可以把它理解成“这个目录对代理的本地使用手册”。auth.json当前只观察到了OPENAI_API_KEY这个键名。它是敏感文件建议不要提交到 Git 仓库。不要随意分享。不要把完整内容直接贴到聊天记录或文档里。.codex-global-state.json这是 GUI/桌面态相关的全局状态文件。当前可见的键名表明它主要保存窗口位置与尺寸最近工作区根目录线程可写根路径follow-up 队列远程连接回填状态工程排序项目与线程之间的提示映射它更像“客户端外壳状态”而不是模型行为配置。4. 会话与历史是怎么存的session_index.jsonl这是历史线程的轻量索引。每一行通常包含idthread_nameupdated_at它的作用是快速列出“最近有哪些线程”而不必每次都扫描完整会话回放。sessions/当前目录结构是按时间分层的sessions/ 2026/ 05/ 28/ rollout-2026-05-28T00-12-59-....jsonl rollout-2026-05-28T15-15-17-....jsonl这说明 Codex 会把详细会话回放按“年/月/日”归档。rollout-*.jsonl可以理解为线程执行过程的流水记录通常比session_index.jsonl更细适合排查某次会话到底发生了什么回看工具调用链分析代理行为state_5.sqlite这是结构化主状态库。当前表名显示它至少管理下面几类对象threadsjobsagent_jobsthread_dynamic_toolsthread_spawn_edgesstage1_outputsremote_control_enrollments从字段看threads里保存的信息已经很完整包括线程 ID、标题、创建/更新时间cwdmodel_providermodelreasoning_effortsandbox_policyapproval_modetokens_usedgit_branchgit_shapreview这意味着 Codex 的线程并不只是“对话文本”而是一个带有工作区、模型、Git、工具状态上下文的对象。logs_2.sqlite当前只看到一个主要表logs字段包含时间戳日志级别target/module/file/linethread_idprocess_uuidestimated_bytes它主要用于问题排查和运行观测。goals_1.sqlite当前看到的主表是thread_goals字段包含thread_idgoal_idobjectivestatustoken_budgettokens_usedtime_used_seconds这说明 Codex 的 goal 模式不是临时文本而是持久化对象。5. 自动化、提醒和收件箱sqlite/codex-dev.db当前库里看到的表包括automationsautomation_runsinbox_itemslocal_app_server_feature_enablement这很像 Codex Desktop 里的“自动化中控库”automations保存定时或心跳自动化本体automation_runs保存每次运行结果与线程关联inbox_items像是给桌面端展示的待处理事项如果你在 Codex 里创建“定时提醒”“定期执行任务”“稍后继续这个线程”大概率会落到这类结构里。6. Skills、Plugins、Vendor Imports 是怎么协同的这是理解 Codex 扩展机制最关键的一部分。skills/当前可见两类内容skills/.system/skills/find-skills/其中skills/.system/里已经存在imagegenopenai-docsplugin-creatorskill-creatorskill-installer每个 skill 目录通常包含SKILL.mdagents/assets/references/scripts/也就是说Skill 不是单一提示词文件而是一套“说明 参考资料 脚本 资源”的组合包。plugins/当前看到的是缓存结构plugins/cache/openai-primary-runtime/plugin/version/ plugins/cache/openai-bundled/chrome/version/以documents、presentations、spreadsheets这些插件为例每个版本目录中通常有.codex-plugin/plugin.jsonskills/assets/README.md其中plugin.json当前能看到的字段包括nameversiondescriptioninterfaceskillsauthorrepositoryhomepagekeywordslicense这说明 Plugin 更像“可安装分发单元”它可以把 Skill 一起打包交付。vendor_imports/当前结构显示这里缓存了一个技能仓库vendor_imports/ skills-curated-cache.json skills/ .git/ README.md skills/ .curated/ aspnet-core/ chatgpt-apps/ cli-creator/ ...这意味着vendor_imports更偏向“上游来源缓存”用来同步或导入第三方/官方技能源本身可能保留 Git 元数据通过skills-curated-cache.json做本地索引简化理解skills/是当前环境直接可用的技能plugins/是版本化插件包缓存vendor_imports/是技能来源仓库或导入缓存7. 浏览器、Computer Use、Node REPL 这些能力怎么落地browser/当前包含config.tomlsessions/browser/config.toml当前只看到一类配置允许来源白名单。[origins] allowed [http://127.0.0.1:4173]这说明浏览器集成能力会对允许连接的前端来源做限制。browser/sessions/*.toml则像浏览器控制会话的本地状态文件。computer-use/当前只有一个config.json字段包括accentColordirectionlocalestrings这更像 Computer Use 界面层或本地化层配置而不是业务逻辑。computer-use-turn-ended/当前目录下是大量以 UUID 风格命名的空文件。它很像“某个 Computer Use 回合已经结束”的标记目录用于去重恢复状态避免重复处理同一轮桌面操作node_repl/当前看到node_repl/ active_execs/ exec-id.json执行元数据里包含的键名有execIdkernelPidnodeReplPidsandboxsessionIdstartedAtMsturnIdversion这说明 Node REPL 是一个真正持续运行的执行环境而不是一次性脚本。8. 生成产物、建议缓存和小功能目录generated_images/每个子目录对应一次生成任务里面可以看到类似generated_images/task-id/ig_xxxxx.png也就是最终图片产物通常直接落在这里。ambient-suggestions/当前每个哈希目录里都有ambient-suggestions.json。键名显示它会记录projectRootgeneratedAtMscurrentSuggestionIdssuggestions可以把它理解为“针对某个项目根目录生成过的一组环境建议缓存”。pets/当前每个宠物目录里有pet.json字段包括iddisplayNamedescriptionkindspritesheetPath这更像桌面端陪伴/形象层资源不属于核心执行链路但属于产品外壳的一部分。cache/当前cache/codex_apps_tools/*.json里能看到schema_versiontools这很像桌面端或应用层工具定义缓存。9. 沙箱和临时目录.sandbox/当前包含requests/sandbox.logsetup_marker.jsonsetup_error.jsondeny_read_acl_state.jsonrequests/*.json里能看到这些字段commandcwdenv_mappolicy_json_or_presettimeout_msstdin_pipestdout_pipestderr_pipe这说明即使当前会话未必强制使用沙箱Codex 仍保留了一套完整的“命令请求与策略记录机制”。.sandbox-bin/这里放的是沙箱运行器或桥接可执行文件例如codex-command-runner.exe不同版本的codex-command-runner-*.execodex.exe它更偏底层基础设施。.sandbox-secrets/这里目前看到sandbox_users.json说明它与沙箱身份或访问控制有关。.tmp/与tmp/这两个目录用于临时运行数据。当前看到的内容包括插件克隆目录marketplace 临时目录plugins.sha过程性路径目录这类目录通常不适合手动维护问题排查时可以看但不建议常规改动。10.rules/default.rules是什么当前rules/default.rules的内容是大量prefix_rule(pattern[...], decisionallow)这说明它更像“命令前缀允许规则集”用于记录已经放行的命令模式避免重复确认给运行器提供规则匹配依据它不是传统意义上的产品主配置更像执行安全层的辅助规则文件。11. 哪些文件可以改哪些最好别直接改相对适合人工维护config.tomlAGENTS.mdskills/下你自己维护的技能目录某些你明确知道用途的插件配置文件可以查看但修改前要很清楚后果.codex-global-state.jsonrules/default.rulesbrowser/config.tomlcomputer-use/config.json不建议手动编辑auth.jsonsession_index.jsonlsessions/**/*.jsonlstate_5.sqlitelogs_2.sqlitegoals_1.sqlitesqlite/codex-dev.db.sandbox/**node_repl/active_execs/*.jsongenerated_images/中的产物文件原因很简单这些文件多数是程序运行时持续读写的持久化数据人工改错一个字段就可能导致线程损坏、索引错乱、会话无法恢复。12. 用“机制视角”再总结一次如果你想真正理解 Codex可以按下面这条思路记忆config.toml决定 Codex 用谁做模型、接哪些工具、信任哪些项目。AGENTS.md决定代理在当前环境里怎么表现。skills/、plugins/、vendor_imports/共同组成能力扩展层。browser/、computer-use/、node_repl/、MCP 配置共同组成工具执行层。session_index.jsonl、sessions/、几个 sqlite 数据库共同组成持久化层。generated_images/、ambient-suggestions/、cache/、.tmp/这类目录组成缓存与产物层。一句话概括.codex不是简单的配置目录而是 Codex 在本地的“配置中心 扩展中心 状态中心 会话档案馆 工具运行痕迹仓库”。13. 当前实例的几个观察点基于当前目录的实际内容还能看出一些很有代表性的特征当前默认模型链路已经不是单一 OpenAI 配置而是支持多 provider 切换。当前环境已经接入 MCP Server说明这个 Codex 已经具备浏览器操作、Node 执行、Pascal 编辑等扩展能力。当前环境存在插件缓存和技能导入缓存说明它不是“只会聊天”的纯净实例而是已经演化为一套可扩展代理工作台。当前已经累积了较多会话历史和自动化基础设施说明.codex更适合被当作长期运行的用户配置主目录而不是一次性临时目录。14. 如果你接下来想继续深入推荐按这个顺序继续研究先读config.toml理解 provider、MCP、project trust。再读skills/.system/*/SKILL.md理解技能如何被组织。看plugins/cache/*/.codex-plugin/plugin.json理解插件如何打包技能。看session_index.jsonl与sessions/YYYY/MM/DD/*.jsonl理解历史线程如何索引与归档。最后再看几个 sqlite 库的表结构理解 Codex 如何把“线程、目标、自动化、日志”做成可恢复的本地状态。如果你愿意这份文档之后还可以继续扩展成“.codex目录结构树完整版”“config.toml字段逐项注释版”“会话 JSONL / SQLite 字段关系图”“如何安全迁移.codex到另一台机器”