[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80966":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":13,"stars30d":13,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":13,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":14,"fork":14,"defaultBranch":15,"hasWiki":16,"hasPages":14,"topics":17,"createdAt":10,"pushedAt":10,"updatedAt":18,"readmeContent":19,"aiSummary":20,"trendingCount":13,"starSnapshotCount":13,"syncStatus":21,"lastSyncTime":22,"discoverSource":23},80966,"codex-deck","WangHaowen99\u002Fcodex-deck","WangHaowen99","专为手机 SSH 和远程终端打造的 Codex 会话管理器 用一个 cdx 命令，把 Codex 历史会话和 tmux 运行现场整理成稳定、可恢复、可命名的工作台","",null,"Python",31,0,false,"develop",true,[],"2026-06-12 02:04:09","\u003Cdiv align=\"center\" id=\"codex-deck\">\n\n\u003Cimg src=\"_image\u002Fapp_icon.png\" alt=\"Codex Deck App Icon\" width=\"140\">\n\n# Codex Deck\n\n专为手机 SSH 和远程终端打造的 Codex 会话管理器  \n用一个 `cdx` 命令，把 Codex 历史会话和 tmux 运行现场整理成稳定、可恢复、可命名的工作台\n\n[![GitHub Stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FWangHaowen99\u002Fcodex-deck?style=flat-square&logo=github&color=yellow)](https:\u002F\u002Fgithub.com\u002FWangHaowen99\u002Fcodex-deck\u002Fstargazers)\n[![GitHub Forks](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002FWangHaowen99\u002Fcodex-deck?style=flat-square&logo=github&color=blue)](https:\u002F\u002Fgithub.com\u002FWangHaowen99\u002Fcodex-deck\u002Fnetwork\u002Fmembers)\n[![Branch](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdefault_branch-develop-2ea44f?style=flat-square&logo=git)](https:\u002F\u002Fgithub.com\u002FWangHaowen99\u002Fcodex-deck\u002Ftree\u002Fdevelop)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.x-3776AB?style=flat-square&logo=python&logoColor=white)](https:\u002F\u002Fwww.python.org\u002F)\n[![tmux](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftmux-required-1BB91F?style=flat-square)](https:\u002F\u002Fgithub.com\u002Ftmux\u002Ftmux)\n[![Codex CLI](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCodex_CLI-supported-111111?style=flat-square)](https:\u002F\u002Fdevelopers.openai.com\u002Fcodex)\n\n**中文** | **[English](README-EN.md)**\n\n\u003C\u002Fdiv>\n\n> 本项目以轻量、稳定、易部署为目标。核心场景是：通过手机或远程 SSH 长时间使用 Codex，不再被断线、原始 UUID、`codex resume --all` 难辨认等问题打断。\n\n\u003Cbr>\n\n## 📑 快速导航\n\n\u003Cdiv align=\"center\">\n\n|   |   |   |\n|:---:|:---:|:---:|\n| [🚀 快速开始](#-快速开始) | [🎯 核心优势](#-核心优势) | [🧭 工作流](#-工作流) |\n| [🧩 核心功能](#-核心功能) | [📁 数据与安全](#-数据与安全) | [⚙️ 安装部署](#️-安装部署) |\n| [📦 版本发布](#-版本发布) | [🛠️ 常用命令](#️-常用命令) | [🧹 卸载](#-卸载) |\n\n\u003C\u002Fdiv>\n\n\u003Cbr>\n\n## 🚀 快速开始\n\n一行安装：\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FWangHaowen99\u002Fcodex-deck\u002Fdevelop\u002Finstall.sh | bash\n```\n\n安装后直接运行：\n\n```bash\ncdx\n```\n\n新建并进入一个 Codex 工作台：\n\n```bash\ncdx new 写论文\n```\n\n之后随时恢复：\n\n```bash\ncdx enter 写论文\n```\n\n\u003Cbr>\n\n## 📦 版本发布\n\n### v0.1.15 - 最新对话置顶\n\n- 下载：[codex-deck-vscode-0.1.15.vsix](releases\u002Fcodex-deck-vscode-0.1.15.vsix)\n- 更新：VS Code 侧边栏按最近对话更新时间排序，最新有对话活动的 cdx 会话会自动置顶；无对话更新时间时回退到最近使用时间。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.15.vsix\n```\n\n### v0.1.14 - Fork Codex 会话\n\n- 下载：[codex-deck-vscode-0.1.14.vsix](releases\u002Fcodex-deck-vscode-0.1.14.vsix)\n- 更新：`cdx` 新增 `fork` 命令；VS Code 侧边栏右键新增 “Fork Session”，可基于已有 Codex 会话创建新的 cdx 会话并打开新终端。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.14.vsix\n```\n\n### v0.1.13 - 调用详情与压缩详情\n\n- 下载：[codex-deck-vscode-0.1.13.vsix](releases\u002Fcodex-deck-vscode-0.1.13.vsix)\n- 更新：tooltip 指标改为中文，并在提示中说明右键可查看固定详情页；侧边栏右键新增“查看调用失败原因”“查看工具调用详情”“查看压缩详情”，可检查失败原因、shell 命令、web 搜索、patch 修改、工具分布，以及每次压缩后的摘要和保留历史。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.13.vsix\n```\n\n### v0.1.12 - Agent 动作分析指标\n\n- 下载：[codex-deck-vscode-0.1.12.vsix](releases\u002Fcodex-deck-vscode-0.1.12.vsix)\n- 更新：`cdx list --json` 和 VS Code 侧边栏新增压缩次数、工具调用次数、缓存命中率和失败次数；tooltip 展示 shell \u002F web \u002F patch \u002F subagent 分布、编辑文件数、命令成功率、命令耗时、最近一轮耗时和首 token 延迟。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.12.vsix\n```\n\n### v0.1.11 - 指标显示兜底修复\n\n- 下载：[codex-deck-vscode-0.1.11.vsix](releases\u002Fcodex-deck-vscode-0.1.11.vsix)\n- 更新：VS Code 插件会在远端 `cdx` 还未返回指标字段时，从 Codex transcript 兜底解析总 token、对话轮数和上下文占比；侧边栏指标文案也改为更短格式，减少窄侧边栏裁剪。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.11.vsix\n```\n\n### v0.1.10 - 会话指标显示\n\n- 下载：[codex-deck-vscode-0.1.10.vsix](releases\u002Fcodex-deck-vscode-0.1.10.vsix)\n- 更新：`cdx list --json` 新增总 token 数、对话轮数和当前上下文占比；VS Code 侧边栏和 tooltip 同步显示这些会话指标。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.10.vsix\n```\n\n### v0.1.9 - 运行中橙点与稳定排序\n\n- 下载：[codex-deck-vscode-0.1.9.vsix](releases\u002Fcodex-deck-vscode-0.1.9.vsix)\n- 更新：VS Code 侧边栏中，Codex 运行中的会话改为橙色圆点，不再使用加载动画；会话列表按创建时间稳定排序，不再因为最近访问而跳到最上方。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.9.vsix\n```\n\n### v0.1.8 - 新会话绑定兜底修复\n\n- 下载：[codex-deck-vscode-0.1.8.vsix](releases\u002Fcodex-deck-vscode-0.1.8.vsix)\n- 更新：`cdx` 新增 shell snapshot 兜底绑定；Codex 新版本未执行 `SessionStart` hook 时，新建会话仍会自动拿到真实 Codex session id，从而恢复 VS Code 侧边栏红点\u002F绿点显示。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.8.vsix\n```\n\n### v0.1.7 - hooks 与运行状态同步发布\n\n- 下载：[codex-deck-vscode-0.1.7.vsix](releases\u002Fcodex-deck-vscode-0.1.7.vsix)\n- 更新：重新打包最新 VS Code 扩展；配合当前 cdx 运行时的 `[features].hooks` 和 `activity_state` 输出，恢复新建会话绑定后的红点\u002F绿点\u002F运行动画显示。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.7.vsix\n```\n\n### v0.1.6 - 运行中动画修复\n\n- 下载：[codex-deck-vscode-0.1.6.vsix](releases\u002Fcodex-deck-vscode-0.1.6.vsix)\n- 更新：修复运行中的 Codex 会话在 VS Code 侧边栏左侧没有动画的问题；运行时长改为在插件侧本地递增刷新。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.6.vsix\n```\n\n### v0.1.5 - Codex hooks 配置兼容\n\n- 下载：[codex-deck-vscode-0.1.5.vsix](releases\u002Fcodex-deck-vscode-0.1.5.vsix)\n- 更新：重新打包 VS Code 扩展版本；仓库同步 Codex 新版 `[features].hooks` 配置兼容修复。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.5.vsix\n```\n\n### v0.1.4 - 运行状态与任务时长\n\n- 下载：[codex-deck-vscode-0.1.4.vsix](releases\u002Fcodex-deck-vscode-0.1.4.vsix)\n- 更新：侧边栏显示 Codex 运行中加载动画与已运行时长；完成后按未读\u002F已读显示红点\u002F绿点，不再显示 live、bound、viewed 文本。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.4.vsix\n```\n\n### v0.1.3 - 点击即清除未读\n\n- 下载：[codex-deck-vscode-0.1.3.vsix](releases\u002Fcodex-deck-vscode-0.1.3.vsix)\n- 更新：VS Code 打开或复用会话终端时会调用 `cdx mark-viewed`，确保未读红点及时清除。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.3.vsix\n```\n\n### v0.1.2 - 复用 VS Code 终端\n\n- 下载：[codex-deck-vscode-0.1.2.vsix](releases\u002Fcodex-deck-vscode-0.1.2.vsix)\n- 更新：点击同一个 cdx 会话时复用已有 VS Code 终端，不再重复新建终端连接。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.2.vsix\n```\n\n### v0.1.1 - 未读提醒\n\n- 下载：[codex-deck-vscode-0.1.1.vsix](releases\u002Fcodex-deck-vscode-0.1.1.vsix)\n- 更新：cdx 会话列表和 VS Code \u002F Remote SSH 侧边栏支持未查看 Codex 结果提醒。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.1.vsix\n```\n\n### v0.1.0 - VS Code 扩展预览版\n\n- 下载：[codex-deck-vscode-0.1.0.vsix](releases\u002Fcodex-deck-vscode-0.1.0.vsix)\n- 用途：在 VS Code \u002F Remote SSH 侧边栏里查看、新建、进入、重命名和删除 Codex Deck 会话。\n- 安装：\n\n```bash\ncode --install-extension releases\u002Fcodex-deck-vscode-0.1.0.vsix\n```\n\n\u003Cbr>\n\n## 🎯 核心优势\n\n### 1. 为手机 SSH 设计\n\n`cdx` 的主流程是菜单和编号选择，不依赖复杂快捷键，也不要求你在窄屏里辨认一长串 Codex UUID。断线后重新 SSH 回来，再执行 `cdx enter \u003Cname>` 即可回到对应工作台。\n\n### 2. tmux 保留运行现场\n\n每个 Codex 会话都运行在独立 tmux session 里：\n\n- SSH 断开，Codex 仍在远端运行\n- 任务执行中断线，可以重新 attach\n- 当前 tmux 存在时优先回到现场\n- tmux 不存在时自动 `codex resume \u003Csession_id>`\n\n### 3. 用用途名管理，而不是用 UUID 管理\n\n你只需要记住：\n\n```text\n写论文\n股票研究\n项目重构\n长期助理\n```\n\n不用再从 `codex resume --all` 里猜哪一个是当前要找的会话。\n\n### 4. Codex 原始历史不被破坏\n\n`cdx delete` 只删除 Codex Deck 自己的映射，并关闭对应 tmux；不会物理删除 Codex 原始历史。即使误删 `cdx` 映射，仍然可以通过手动导入或绑定找回原始 Codex 会话。\n\n### 5. 映射可靠，支持手动修复\n\nCodex Deck 使用 Codex `SessionStart` hook 获取真实 Codex session id，并写入自己的注册表。它还提供：\n\n- 绑定已有 Codex 会话\n- 导入 Codex 原始会话\n- 解除绑定\n- 转移绑定\n- `doctor` 状态检查\n\n### 6. 单文件、少依赖、易部署\n\n主体是一个 Python 单文件脚本，只依赖：\n\n- Python 3\n- tmux\n- Codex CLI\n\n安装脚本只是把 `cdx` 放到本地 bin 目录，然后执行初始化。\n\n\u003Cbr>\n\n## 🧭 工作流\n\nCodex Deck 把三层状态统一起来：\n\n```text\ncdx_name -> cdx 内部 id -> tmux session -> Codex session id\n```\n\n实际行为：\n\n```text\ncdx enter 写论文\n  ├─ 如果 cdx_内部id 的 tmux 还活着：直接 attach\u002Fswitch\n  └─ 如果 tmux 不存在：新建 tmux，并运行 codex resume \u003Csession_id>\n```\n\n新建会话时：\n\n```text\n输入 cdx_name\n选择常用目录\n可选输入相对文件夹名\n创建 cdx 注册表记录\n启动 tmux + Codex\nCodex hook 回写真实 session id\n```\n\n\u003Cbr>\n\n## 🧩 核心功能\n\n| 功能 | 说明 |\n|:---|:---|\n| 会话列表 | 只展示 cdx 管理的会话，按最近使用时间排序 |\n| 新建会话 | 输入全局唯一用途名，选择常用目录，可选创建子目录 |\n| 进入会话 | 优先 attach 到 live tmux，否则自动 resume Codex |\n| 未读提醒 | transcript 晚于上次进入时间时，在 cdx 列表和 VS Code 插件里显示未查看结果 |\n| 运行状态 | VS Code 侧边栏显示 Codex 运行中动画和已运行时长 |\n| 鼠标滚动 | cdx 会刷新 tmux 鼠标模式并接管滚轮，避免滚轮事件被 Codex 当成上下键 |\n| UUID 查询 | 直接显示某个 cdx 会话绑定的 Codex session id |\n| 删除会话 | kill 对应 tmux，删除 cdx 映射，不删除 Codex 原始历史 |\n| 重命名 | 支持中文和空格，live 会话也可重命名 |\n| 常用目录 | 管理新建会话时可选的 root 目录 |\n| 手动映射 | 绑定、导入、解除、转移 Codex 原始会话 |\n| 状态检查 | 检查配置、hook、注册表、tmux、cwd、重复映射 |\n\n\u003Cbr>\n\n## 📁 数据与安全\n\nCodex Deck 使用 XDG 风格路径：\n\n```text\n~\u002F.config\u002Fcdx\u002Fconfig.json\n~\u002F.local\u002Fshare\u002Fcdx\u002Fsessions.json\n~\u002F.local\u002Fstate\u002Fcdx\u002Fcdx.log\n~\u002F.local\u002Fstate\u002Fcdx\u002Flock\n```\n\nCodex 集成写入：\n\n```text\n~\u002F.codex\u002Fconfig.toml   # 启用 features.hooks\n~\u002F.codex\u002Fhooks.json    # 安装 SessionStart hook\n```\n\n安全策略：\n\n- 注册表写入使用 `flock` 加锁\n- 写文件使用临时文件和原子替换\n- 删除 cdx 会话不删除 Codex 原始历史\n- hook 只有检测到 `CDX_SESSION_ID` 时才工作\n- 工具日志不记录 Codex 对话内容\n- 修改 `~\u002F.codex\u002Fconfig.toml` 前会创建时间戳备份\n\n\u003Cbr>\n\n## ⚙️ 安装部署\n\n### 一键安装\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FWangHaowen99\u002Fcodex-deck\u002Fdevelop\u002Finstall.sh | bash\n```\n\n默认安装到：\n\n```text\n~\u002F.local\u002Fbin\u002Fcdx\n```\n\n如果 `~\u002F.local\u002Fbin` 不在 `PATH` 中，加入 shell 配置：\n\n```bash\nexport PATH=\"$HOME\u002F.local\u002Fbin:$PATH\"\n```\n\n### 依赖检查\n\n```bash\npython3 --version\ntmux -V\ncodex --version\n```\n\n### 手动安装\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FWangHaowen99\u002Fcodex-deck.git\ncd codex-deck\ngit checkout develop\nchmod +x cdx install.sh\n.\u002Finstall.sh\n```\n\n### 指定安装目录\n\n```bash\nINSTALL_DIR=\u002Fusr\u002Flocal\u002Fbin .\u002Finstall.sh\n```\n\n### 跳过初始化\n\n```bash\nCDX_SKIP_INIT=1 .\u002Finstall.sh\n```\n\n之后手动初始化：\n\n```bash\ncdx init\n```\n\n\u003Cbr>\n\n## 🛠️ 常用命令\n\n```bash\ncdx                       # 打开菜单\ncdx list                  # 列出 cdx 会话\ncdx new [cdx_name]        # 新建会话；同名则进入\ncdx enter [cdx_name]      # 进入会话\ncdx mark-viewed [cdx_name] # 标记未读结果为已查看\ncdx uuid [cdx_name]       # 查看绑定的 Codex session id\ncdx uuid --all            # 列出所有 cdx 会话的绑定 UUID\ncdx delete [cdx_name]     # 删除 cdx 映射并 kill tmux\ncdx rename [OLD NEW]      # 重命名\ncdx roots                 # 管理常用目录\ncdx map                   # 手动映射\u002F导入 Codex 原始会话\ncdx doctor                # 只报告状态问题\ncdx init                  # 初始化并安装 hook\ncdx install-hook          # 安装\u002F刷新 Codex hook\n```\n\n\u003Cbr>\n\n## 🧪 状态检查\n\n```bash\ncdx doctor\n```\n\n检查内容包括：\n\n- 配置文件是否存在、JSON 是否有效\n- 注册表是否存在、JSON 是否有效\n- `hooks` feature 是否启用\n- `SessionStart` hook 是否安装\n- root 名和路径是否重复\n- Codex session id 是否重复绑定\n- tmux session 是否 live\n- `last_cwd` 是否还存在\n\n`doctor` 只报告，不自动修复。\n\n\u003Cbr>\n\n## 🧹 卸载\n\n删除命令：\n\n```bash\nrm -f ~\u002F.local\u002Fbin\u002Fcdx\n```\n\n删除 Codex Deck 数据：\n\n```bash\nrm -rf ~\u002F.config\u002Fcdx ~\u002F.local\u002Fshare\u002Fcdx ~\u002F.local\u002Fstate\u002Fcdx\n```\n\n如需手动清理 Codex hook，请编辑：\n\n```text\n~\u002F.codex\u002Fhooks.json\n~\u002F.codex\u002Fconfig.toml\n```\n\nCodex Deck 不会删除 Codex 原始 conversation 历史。\n","Codex Deck 是一个专为手机 SSH 和远程终端设计的会话管理器，通过简单的 `cdx` 命令即可将 Codex 历史会话和 tmux 会话整理成可命名、稳定且可恢复的工作台。项目采用 Python 开发，依赖于 tmux 技术来实现会话的持久化与管理。其核心功能包括一键创建、进入及恢复命名工作台，有效解决了因断线或 UUID 难辨认导致的工作中断问题。适用于需要长时间通过移动设备或远程访问进行编程、系统管理等任务的场景，特别适合经常使用 Codex 进行开发工作的用户。",2,"2026-06-11 04:03:02","CREATED_QUERY"]