
【免费下载链接】code-codexLocal project file tree and preview companion for Codex Desktop项目地址https://gitcode.com/gh_mirrors/co/code-codex点击查看免费下载Code-Codex 是一款为 Codex Desktop 增加本地项目文件树、文件预览与受限编辑能力的非官方社区工具。它的架构很有看点Windows 侧由4 个 Rust crate分工协作发现、启动、协议桥接、工作区安全沙箱UI 侧则是一个注入式 TypeScript 包——构建后直接嵌入 Rust 可执行文件再通过 Chrome DevTools Protocol 注入到 Codex 渲染进程。下面带你逐层拆解这套双端协作的架构。[!NOTE] Code-Codex 与 OpenAI 无关是一个独立开源项目MIT 许可当前公开版本 v0.4.47工作区定义见 Cargo.toml。一分钟看懂五层架构与数据流向整个系统可以抽象成 5 层一次点击文件 → 打开预览的完整路径如下┌─────────────────────────── Windows 本地进程 ───────────────────────────┐ │ launcher总指挥 │ │ ├─ discovery定位官方 Codex Desktop 安装 │ │ ├─ cdp-clientWebSocket 连接 loopback 调试端口注入 UI 脚本 │ │ ├─ context-resolver向官方 App Server 解析当前线程的工作目录 │ │ └─ workspace-service受限文件操作列表/预览/改名/删除 │ └───────────────▲──────────────────────────────────────────────────────────┘ │ 本机 WebSocket仅 loopback不监听外网 ┌───────────────┴──────────────────────────────────────────────────────────┐ │ Codex 渲染进程内explorer-uiTypeScript │ │ 文件树、预览标签页、右键菜单、插件市场 UI │ └──────────────────────────────────────────────────────────────────────────┘四个 crate 在 crates/ 下各自的定位由工作区根 Cargo.toml 声明Rust 版本要求 1.85unsafe_code forbid、禁止unwrap安全基调从编译期就开始见 Cargo.toml。4 个 Rust crate 各自负责什么 launcher总指挥负责发现、启动与桥接crates/launcher/ 是唯一的可执行程序入口内部模块划分很清晰main.rs 开头就列出了全部职责模块discovery通过 Windows 包注册信息定位官方稳定版 Codex Desktop 的可执行文件失败时会给出可诊断的精确错误如Codex Desktop was not found见 discovery.rsprocess_guard预留本地调试端口、启动 Codex 并验证监听进程身份防止端口被抢或被冒充bridgeNativeBridge是渲染进程与本地服务之间的海关所有文件树、预览、设置请求都经过这里转发bootstrap把构建好的 UI 产物编译期嵌入二进制——include_str!(.../dist/explorer.js)并限制不超过 16 MiB见 bootstrap.rsstartup/fault diagnostics启动失败时给出稳定错误码如CC-START-MAIN-001和脱敏诊断报告源码见 startup_diagnostics.rs、fault_diagnostics.rs。cdp-client只做注入的极简 CDP 客户端crates/cdp-client/ 是架构中最克制的一块。它的模块注释开宗明义The client is deliberately limited to a loopback endpoint, Codex renderer targets,Runtime.addBinding, script injection, and outbound evaluation. It is not a general-purpose remote debugging client.见 lib.rs。也就是说它不是通用远程调试客户端只保留三件事连接本机调试端口、用Page.addScriptToEvaluateOnNewDocument注入 UI 脚本、用Runtime.addBinding注册一个名为__codeCodex的消息通道。同时内置多重安全上限单条绑定消息 96 KiB、CDP 消息 12 MiB、限速 120 次/秒、在途请求最多 16 个见 lib.rs。context-resolver不碰数据库的线程上下文解析Codex 桌面端由渲染进程持有当前活动线程的概念launcher 无法直接知道。crates/context-resolver/ 用官方 App Server 的 JSONL 协议解决拿到活动线程 ID 后调用thread/read失败时回退thread/list解析出该线程的cwd也就是文件树要挂载的工作区根目录。模块文档特别强调It does not inspect Codex databases.见 lib.rs即只走官方公开协议不逆向、不翻数据库这是它跨版本兼容策略的基础。workspace-service把文件操作关进安全沙箱 crates/workspace-service/ 是安全核心模块文档总结了它的边界lib.rs只暴露窄接口目录列表、文本预览最多 64 KiB 严格 UTF-8、保存、有限的新建/重命名/删除/导入路径逐段校验渲染进程传来的路径必须全部是相对路径逐组件验证capability no-follow通过保留的工作区根句柄打开文件拒绝符号链接逃逸实现见 path_guard.rs版本化保存保存必须携带完整预览返回的版本号且只能更新那个已存在的文件防止竞态覆盖白名单媒体 API图片、视频、PDF、Office、glTF 等按类型限额分块读取没有通用文件读取器watcher文件变更订阅驱动 UI 自动刷新。启动时序从点击图标到文件树出现 把四个 crate 串起来完整启动流程大致是发现launcher 通过 Windows 包注册定位官方 Codex 稳定版安装discovery.rs预留端口为本机调试监听预留端口并记录启动上下文main.rs 的StartupTrace会记录每个阶段耗时启动 Codex以带调试端口的参数拉起官方客户端随后用 process_guard 校验监听进程身份注入 UIcdp-client 连接渲染进程目标注入嵌入的explorer.js并注册__codeCodex绑定建立通道UI 侧读取一次性 bootstrap 配置token、binding 名等消费后立刻删除见 bridge.ts挂载文件树context-resolver 解析当前线程cwdworkspace-service 开始提供目录树、预览与编辑能力。任何一步失败都会落到带稳定错误码的诊断流程用户看到的是失败阶段 建议操作而不是笼统的弹窗。通信链路注入式 UI 如何与本地 bridge 对话 UI 与原生侧没有用 HTTP 或 IPC 框架而是走 CDP 绑定通道入口packages/explorer-ui/src/index.ts 中若 bootstrap 携带 token先建立ExplorerBridge再安装注入器消息UI 通过window.__codeCodex发送带能力令牌的 JSON 请求launcher 的NativeBridge校验后转发给 workspace-service / context-resolver回执响应与通知如文件变更走同一条通道推回渲染进程兼容检查bootstrap 中带supported/compatible标志不兼容时 UI 直接降级bridge.ts。这条链路配合 cdp-client 的限速与尺寸上限即使页面被恶意脚本干扰也拿不到超出工作区边界的文件能力。前端explorer-ui 如何寄生在 Codex 界面中 packages/explorer-ui/ 是一个依赖很轻的 TypeScript 包React 19 esbuild 构建见 package.json。它的寄生方式有三个巧妙点构建期嵌入npm run build产物dist/explorer.js被 launcher 在编译期include_str!进二进制运行期不需要任何外部文件版本适配器Codex 前端 DOM 会随版本变化UI 用 adapters/ 下的适配器如codex-26.715.ts做 DOM 探测与布局修正inject.ts负责挂载自定义元素和样式inject.ts插件化扩展文件预览、动态背景、Git 历史等 24 个插件独立按需下载核心包不含实现插件目录结构与校验清单见 releases/plugins/ 与 catalog.json。比如外观插件把整个 Codex 窗口背景替换成动态粒子场而这类渲染完全运行在渲染进程内插件包经市场下载后按 releases/ 中记录的 SHA-256 逐一校验不能安装任意第三方脚本。安全设计小结为什么只读也能被信任防线实现位置作用仅 loopback 调试端口cdp-client拒绝一切远程调试访问能力令牌 限速cdp-client防伪造请求与洪泛相对路径 capability 句柄path_guard.rs防路径穿越、符号链接逃逸64 KiB 预览 / 版本化保存workspace-service防大文件读取与竞态覆盖不逆向 Codex 数据库context-resolver跨版本稳定兼容unsafe_code forbidCargo.toml编译期消除不安全代码想在源码中继续深入工作区总览Cargo.toml、Cargo.lockRust 四件套crates/launcher/、crates/cdp-client/、crates/context-resolver/、crates/workspace-service/注入式 UIpackages/explorer-ui/含 file-preview/ 各类预览实现Windows 安装器源码WiX C 自定义操作installer/构建与打包脚本scripts/scripts/package.ps1可生成 EXE/MSI/ZIP 到 releases/更多架构与功能说明README.md 的仓库结构一节一句话总结launcher 负责把 Codex 拉起来并守住边界cdp-client 负责把 UI 送进去context-resolver 负责搞清楚当前在哪个项目workspace-service 负责只放行了事explorer-ui 负责让用户用得舒服——五者各司其职共同构成了这个文件树伴侣的完整架构。赞分享【免费下载链接】code-codexLocal project file tree and preview companion for Codex Desktop项目地址https://gitcode.com/gh_mirrors/co/code-codex点击查看免费下载相关推荐Shrimply架构深度解析142个Rust crate如何协作构建GPU优先的视频编辑器Shrimply架构深度解析142个Rust crate如何协作构建GPU优先的视频编辑器 在深入架构之前先用一句话介绍 Shrimply 它是一个用 R深入Codex Proxy RS架构9个Rust核心crate与请求生命周期设计完全解析深入Codex Proxy RS架构9个Rust核心crate与请求生命周期设计完全解析 Codex Proxy RS 是一款基于 Rust 的低风控、高性能PhotoSuite架构全解20多个Rust Crate如何构建可替换UI的Photoshop兼容图像引擎PhotoSuite架构全解20多个Rust Crate如何构建可替换UI的Photoshop兼容图像引擎 PhotoSuite 是一个用 Rust 编写的开上一篇如何快速给 AI 写作去AI味lieflat-less-ai-tone 三步上手教程从安装到首次改写只需 10 分钟下一篇Go 语言极速入门实战指南以 learnxinyminutes-docs 的 cs/go.md 为核心的全语法速览创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考