Codex Skill Statistics
在 VS Code 中查看本机 Codex Skill 的调用次数、最近调用时间和使用排行榜。数据在本地收集和保存,无需账号、服务器、Skill 或 hook。
安装和使用
- 在 VS Code 扩展面板右上角菜单中选择 从 VSIX 安装…,选择本目录生成的
codex-skill-statistics-0.1.0.vsix。
- 点击活动栏的统计图标,打开 Skill 使用统计。
- 首次后台扫描完成后查看结果。点击 完整表格 在编辑区打开更宽的统计页面。
也可以从命令面板运行 Skill Statistics: 打开完整统计表格。
点击表格中的技能名称,可直接在 VS Code 编辑器打开对应的 SKILL.md。鼠标悬停可查看文件路径;文件已移动或卸载时会提示。
扩展发布者为 taylor12138,标识为 taylor12138.codex-skill-statistics。支持本地 VSIX 安装;Marketplace 发布与可用状态以商店页面为准。
功能
- 侧边栏和独立 Webview 表格。
- 确认调用次数、推断使用次数、最近调用和最近推断使用时间。
- 搜索、按次数 / 最近时间 / 名称排序、全部 / 近 7 天 / 近 30 天筛选。
- 首次历史回填、文件变化后的增量读取、低频补扫。
- CSV 导出,以及统计事件的备份导入 / 导出。
- 多窗口只允许一个窗口写入,其他窗口读取同一份数据。
- 独立数据目录,扩展卸载时不主动清理,重装后继续使用。
CSV 导出包含当前时间范围内的全部行,搜索和排序仅作用于页面展示。
正常情况下通过原生文件监听在记录落盘后约 1~2 秒更新。监听不可用时,自动改用目录与近 48 小时有变化的会话文件状态检查,更新通常需要数秒;其他历史文件仍由低频补扫覆盖。不会每次重新读取全部历史。
统计口径
确认调用:会话记录中出现结构化的 Skill 加载 / 注入消息。
推断使用:工具调用成功,且可识别其执行了读取 SKILL.md 的命令。支持常见 cat / sed / head / tail 等命令、直接文件读取工具,以及 Codex code mode 中静态可解析的 tools.exec_command。不会执行记录中的任何命令。
同一回合、同一路径的 Skill 只计一次。确认加载与对应读取同时出现时,只记确认调用。不同路径的同名 Skill 不会直接合并。
输入 $skill-name 但没有加载证据、普通聊天提及、Skill 清单、搜索文件、写文件,都不直接计为确认调用。
这些数字是根据本机记录得到的加载 / 使用证据,不代表任务成功次数。Codex 记录格式变化、历史被清理、混合工具批次失败、动态脚本读取等情况可能造成遗漏。分叉会话目前采取保守跳过策略,避免历史回放重复计数。没有记录不代表从未使用。
数据位置和卸载重装
默认读取 CODEX_HOME 或 ~/.codex 下的 sessions 与 archived_sessions。
默认保存到:
~/.codex-skill-stats/
events.jsonl # 调用事件,不保存聊天正文
state.json # 已扫描文件位置,可重建
writer.lock # 多窗口写入锁
卸载扩展不会主动删除这个目录。重装使用同一目录时会读取已有事件,并补扫仍存在的 Codex 历史。扩展未运行期间没有后台采集进程。
如果事件文件丢失,可以从仍存在的原始记录重建;如果统计数据和原始记录均丢失,只能依赖备份恢复。请不要把统计目录设置到扩展安装目录或项目仓库内。
尾部未完成的事件行会先备份再修复;文件中部损坏会停止写入并提示,不静默丢弃历史。
设置
在 VS Code 设置中搜索 skillStatistics:
| 设置 |
默认 |
说明 |
skillStatistics.codexHome |
环境变量或 ~/.codex |
本机 Codex 数据目录 |
skillStatistics.dataDirectory |
~/.codex-skill-stats |
独立统计目录 |
skillStatistics.additionalSkillDirectories |
[] |
额外 Skill 根目录 |
skillStatistics.rescanIntervalSeconds |
60 |
补扫间隔,最少 15 秒 |
修改设置后重新加载窗口。自动发现用户技能、当前本机工作区技能,以及能够确定来源的插件技能;多个缓存版本无法确定当前版本时不猜测,可手动添加目录。已在历史中出现但未发现安装目录的技能也会显示。
扩展只支持本机数据。在远程工作区中仍只统计本机 Codex,不读取 SSH、WSL 或容器记录。独立页面不会嵌入或修改 Codex Settings。
维护命令
- 刷新统计:立即补扫。
- 重建扫描索引(保留事件):重新扫描全部可用历史,事件去重;可找回之前清除的历史统计。
- 导出备份 / 导入备份:保存或合并经过校验的调用事件。
- 清除统计数据:明确确认后清空当前统计,从已扫描位置继续记录;操作前在数据目录生成恢复备份。原始 Codex 历史不变。
- 打开数据目录:定位持久化数据。
如果统计文件损坏,先保留原文件和备份,再修复或移走损坏文件,重新加载扩展。不要在采集运行时手动编辑事件文件。
本地开发
npm ci
npm test
npm run package
使用 VS Code 打开这个目录,按 F5 启动扩展开发窗口。
在已安装 VS Code 的 macOS 上,可运行隔离的真实宿主测试:
npm run compile
node scripts/test-host.mjs
其他系统可以通过 VSCODE_EXECUTABLE 指定 VS Code 可执行文件。宿主测试使用临时用户目录和合成记录,不安装到日常 VS Code,不修改日常 Codex 数据。
运行时只使用打包后的 JavaScript;npm、TypeScript、jsdom 和打包工具仅供开发使用。
隐私
扩展不发送网络请求,不包含遥测,不读取 Codex 的认证文件。只保存技能路径、会话 / 回合标识、时间和证据类型等必要字段。备份和 CSV 中包含本地路径,请按需分享。
License
MIT