{"_id":"@c0sc0s/codex-tags","_rev":"4-8c92d53253c68f77260ee73a0fa04bca","name":"@c0sc0s/codex-tags","dist-tags":{"latest":"0.7.0"},"versions":{"0.5.0":{"name":"@c0sc0s/codex-tags","version":"0.5.0","license":"UNLICENSED","_id":"@c0sc0s/codex-tags@0.5.0","maintainers":[{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"}],"homepage":"https://github.com/c0sc0s/codex-tags#readme","bugs":{"url":"https://github.com/c0sc0s/codex-tags/issues"},"bin":{"codex-tags":"bin/codex-tags.mjs"},"dist":{"shasum":"dde07b2a1b4fd800d6164ee06ce3102f304bd298","tarball":"https://registry.npmjs.org/@c0sc0s/codex-tags/-/codex-tags-0.5.0.tgz","fileCount":48,"integrity":"sha512-iTN0tbvrKsmWTfXJfafvpp5SJnQqaqPSiGhT2Flb1VXpK5nsWxA7aGuV3bsPhY3uy5Po1Wtr/CJsBOYwnY5gUg==","signatures":[{"sig":"MEUCIQDHwaw0qEvQa+EIyJnytUD2aAIpN8sjFeG5pOIDk2pidgIgJpmNiNOsC5P1PLOcxjT4p2zejya/RGrunD4NnRwfU4k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6669962},"type":"module","engines":{"node":">=22"},"gitHead":"431e4eaef1a510f29b08c2245064b117c87cbc46","scripts":{"test":"node --test runtime/test/*.test.mjs && vitest run runtime/test/*.test.ts","build":"node scripts/build.mjs","check":"node scripts/check.mjs","qa:app":"node runtime/qa-runtime.mjs","verify":"npm run build && npm run check && npm run typecheck && npm test","dev:apply":"npm run build && node scripts/manage.mjs install && node scripts/manage.mjs apply","typecheck":"tsc --noEmit","test:package":"node scripts/test-package.mjs","prepublishOnly":"npm run verify && npm run test:package"},"_npmUser":{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"},"repository":{"url":"git+https://github.com/c0sc0s/codex-tags.git","type":"git"},"_npmVersion":"10.9.7","description":"One-command installer and lifecycle CLI for Codex Tags.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"better-sqlite3":"13.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"motion":"13.1.0","preact":"10.29.8","vitest":"5.0.0","esbuild":"0.28.2","happy-dom":"20.14.0","typescript":"7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/codex-tags_0.5.0_1788772195285_0.8702239207991298","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@c0sc0s/codex-tags","version":"0.6.0","license":"UNLICENSED","_id":"@c0sc0s/codex-tags@0.6.0","maintainers":[{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"}],"homepage":"https://github.com/c0sc0s/codex-tags#readme","bugs":{"url":"https://github.com/c0sc0s/codex-tags/issues"},"bin":{"codex-tags":"bin/codex-tags.mjs"},"dist":{"shasum":"6046c12082163fe26b2a5dac0790ff4e2411ee33","tarball":"https://registry.npmjs.org/@c0sc0s/codex-tags/-/codex-tags-0.6.0.tgz","fileCount":78,"integrity":"sha512-HAMY5FCg9fwVnyBEYud6xX2IMpfXyHxvAmeYhf1PjXPsFXXU6ZQiWYR/FvPe8sWRMVXMuC73V79AETHKVIK1aQ==","signatures":[{"sig":"MEYCIQCu2g+cB73FtAtE5FhIvAqEr+K1PjMxbuH/E70auvn1WQIhAKnulVNJhXPkgEsPv+ylGwiaG3YTWszrj1i6fTZ33KXG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC+muUYuY2A+7cSaAzYnGzd0kwMa6jL14B1FMRrR6C9fQIhAJhEvd5Hi49Bh4iBPdhN5v7yy30axuX3bpAfvV1+EwaV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6749420},"type":"module","_from":"file:/var/folders/g_/0q25xl7s4h75d5fy3txyhn000000gn/T/codex-npm-release-AFFaRm/c0sc0s-codex-tags-0.6.0.tgz","engines":{"node":">=22"},"scripts":{"test":"node --test runtime/test/*.test.mjs && vitest run runtime/test/*.test.ts","build":"node scripts/build.mjs","check":"node scripts/check.mjs","qa:app":"node runtime/qa-runtime.mjs","verify":"npm run build && npm run check && npm run typecheck && npm test","dev:apply":"npm run build && node scripts/manage.mjs install && node scripts/manage.mjs apply","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.loader.json","test:package":"node scripts/test-package.mjs && node scripts/test-loader-package.mjs","prepublishOnly":"npm run verify && npm run test:package"},"_npmUser":{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"},"_resolved":"/var/folders/g_/0q25xl7s4h75d5fy3txyhn000000gn/T/codex-npm-release-AFFaRm/c0sc0s-codex-tags-0.6.0.tgz","_integrity":"sha512-HAMY5FCg9fwVnyBEYud6xX2IMpfXyHxvAmeYhf1PjXPsFXXU6ZQiWYR/FvPe8sWRMVXMuC73V79AETHKVIK1aQ==","repository":{"url":"git+https://github.com/c0sc0s/codex-tags.git","type":"git"},"_npmVersion":"10.9.7","description":"One-command installer and lifecycle CLI for Codex Tags.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"better-sqlite3":"13.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"motion":"13.1.0","preact":"10.29.8","vitest":"5.0.0","esbuild":"0.28.2","happy-dom":"20.14.0","typescript":"7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/codex-tags_0.6.0_1788781793853_0.7478426171034165","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@c0sc0s/codex-tags","version":"0.6.1","license":"UNLICENSED","_id":"@c0sc0s/codex-tags@0.6.1","maintainers":[{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"}],"homepage":"https://github.com/c0sc0s/codex-tags#readme","bugs":{"url":"https://github.com/c0sc0s/codex-tags/issues"},"bin":{"codex-tags":"bin/codex-tags.mjs"},"dist":{"shasum":"c9080f47d03915f3e7b04046b33b40e9e516382a","tarball":"https://registry.npmjs.org/@c0sc0s/codex-tags/-/codex-tags-0.6.1.tgz","fileCount":78,"integrity":"sha512-atVNPyBP/3dO/l9ykPFxSkprxfVm6E7wOtWC+qMMbVY43hE+bujuEQtsTVKu1uYuGB/uB6EcYMzOQLjqajMXbg==","signatures":[{"sig":"MEUCIQDiKgVRYCpQ9GFgzmPjccEeDAv5Bm2zYIxYGyxe1VcD5AIgLS9oFWb23tkVENVtpRVfMECGiSWLhPjsK0FHKiUNOGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD4kpN2nXjWL525Od9HOUhLiscIJkerWIxCxaJYtJwBTQIhAMVf/5D1z6EKxQcrMqvz6RP5G/V14Rx5L5TZbMSKvRuX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6750027},"type":"module","_from":"file:/tmp/codex-tags-release-MQ38xF/c0sc0s-codex-tags-0.6.1.tgz","engines":{"node":">=22"},"scripts":{"test":"node --test runtime/test/*.test.mjs && vitest run runtime/test/*.test.ts","build":"node scripts/build.mjs","check":"node scripts/check.mjs","qa:app":"node runtime/qa-runtime.mjs","verify":"npm run build && npm run check && npm run typecheck && npm test","dev:apply":"npm run build && node scripts/manage.mjs install && node scripts/manage.mjs apply","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.loader.json","test:package":"node scripts/test-package.mjs && node scripts/test-loader-package.mjs","prepublishOnly":"npm run verify && npm run test:package"},"_npmUser":{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"},"_resolved":"/tmp/codex-tags-release-MQ38xF/c0sc0s-codex-tags-0.6.1.tgz","_integrity":"sha512-atVNPyBP/3dO/l9ykPFxSkprxfVm6E7wOtWC+qMMbVY43hE+bujuEQtsTVKu1uYuGB/uB6EcYMzOQLjqajMXbg==","repository":{"url":"git+https://github.com/c0sc0s/codex-tags.git","type":"git"},"_npmVersion":"10.9.7","description":"One-command installer and lifecycle CLI for Codex Tags.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"better-sqlite3":"13.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"motion":"13.1.0","preact":"10.29.8","vitest":"5.0.0","esbuild":"0.28.2","happy-dom":"20.14.0","typescript":"7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/codex-tags_0.6.1_1788785508871_0.24369770530949353","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"_id":"@c0sc0s/codex-tags@0.7.0","bin":{"codex-tags":"bin/codex-tags.mjs"},"bugs":{"url":"https://github.com/c0sc0s/codex-tags/issues"},"dist":{"shasum":"4aec7153c2e5331b3586f47c3ca4a0e792119388","tarball":"https://registry.npmjs.org/@c0sc0s/codex-tags/-/codex-tags-0.7.0.tgz","fileCount":91,"integrity":"sha512-8uAI1X9kDeue6eIIL0drqX/tHpuq0NNjDXDlPr2hSpdFgX4YQiRW6CTRleeWkDmQ8DJdFFNoWkcwtR74nWAC9w==","signatures":[{"sig":"MEUCIQCxtQ7UJ3KZLU1ovDUyxJTkTIjBj/RLziQYY8TSCL3HwgIgPYiEH7XCSuV3GtTzLKo7uRKNjQDVhgYBwHaZo8pwrCc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA4Vhast44b9+xFotOKTLI9HwRjjPheSMmQpltleEDnTAiBbrWqHH4IMKV8dZS/F2jHjDK92sAPQpF7FxfENo0nxDg=="}],"unpackedSize":15416139},"name":"@c0sc0s/codex-tags","type":"module","engines":{"node":">=22"},"gitHead":"3db3b9c24fb46793d0a5f52315b1afe5e64f76f9","license":"UNLICENSED","scripts":{"test":"node --test runtime/test/*.test.mjs && vitest run runtime/test/*.test.ts","build":"node scripts/build.mjs","check":"node scripts/check.mjs","qa:app":"node runtime/qa-runtime.mjs","verify":"npm run build && npm run check && npm run typecheck && npm test","dev:apply":"npm run build && node scripts/manage.mjs install && node scripts/manage.mjs apply","typecheck":"tsc --noEmit && tsc --noEmit -p tsconfig.loader.json","test:package":"node scripts/test-package.mjs && node scripts/test-loader-package.mjs","prepublishOnly":"npm run verify && npm run test:package"},"version":"0.7.0","_npmUser":{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"},"homepage":"https://github.com/c0sc0s/codex-tags#readme","repository":{"url":"git+https://github.com/c0sc0s/codex-tags.git","type":"git"},"_npmVersion":"10.9.7","description":"One-command installer and lifecycle CLI for Codex Tags.","directories":{},"maintainers":[{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"}],"_nodeVersion":"22.22.2","dependencies":{"better-sqlite3":"13.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"motion":"13.1.0","preact":"10.29.8","vitest":"5.0.0","esbuild":"0.28.2","happy-dom":"20.14.0","typescript":"7.0.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/codex-tags_0.7.0_1788853411760_0.4130978928766136"}}},"time":{"created":"2026-09-07T09:09:55.112Z","modified":"2026-09-08T07:43:32.152Z","0.5.0":"2026-09-07T09:09:55.573Z","0.6.0":"2026-09-07T11:49:54.055Z","0.6.1":"2026-09-07T12:51:49.097Z","0.7.0":"2026-09-08T07:43:32.021Z"},"bugs":{"url":"https://github.com/c0sc0s/codex-tags/issues"},"license":"UNLICENSED","homepage":"https://github.com/c0sc0s/codex-tags#readme","repository":{"url":"git+https://github.com/c0sc0s/codex-tags.git","type":"git"},"description":"One-command installer and lifecycle CLI for Codex Tags.","maintainers":[{"name":"c0sc0s","email":"yuwenjieshuai@gmail.com"}],"readme":"<p align=\"center\"><img src=\"assets/banner.png\" alt=\"Codex Orbit — 你的 Codex，你的运行轨道。\" width=\"100%\"></p>\n<p align=\"center\"><a href=\"README.md\">English</a> · <b>简体中文</b></p>\n<p align=\"center\"><a href=\"#开始使用\">开始使用</a> · <a href=\"#命令\">命令</a> · <a href=\"docs/development.md\">本地开发</a> · <a href=\"docs/architecture.md\">架构设计</a></p>\n\n为 Codex 提供本地会话管理增强：按标签整理会话、搜索正文，并让 Agent 按你的分类规则命名。\n\n**macOS · Node.js 22+ · 中英文界面**\n\n> **0.7.0** — 新增一键更新与可记忆的侧边栏排序选择。运行 `npx @c0sc0s/codex-tags@latest update` 更新。\n\n> **早期版本** — 自动化检查已通过。全新账户冷启动及手动授权后的首次命名仍需完整端到端验收，详见[验证范围](docs/compatibility.md)。\n\n## 功能\n\n- **融入侧边栏：** 标签筛选、低干扰的标题标签，以及 Tags 会话看板。\n- **本地搜索：** 搜索标题和已索引的用户/助手正文，高亮关键词。\n- **自定义分类：** 默认 Feature、Bug、Design、Research 四类；可自定义颜色和可选分类描述。\n- **Agent 辅助命名：** 使用 `[Tag]标题`，不带日期；首次提交时获得最新分类规则。\n- **三个插件 Skill：** `doctor` 检查健康状态，`initial` 分类已有活跃会话，`rename` 命名当前会话。\n- **中英文界面：** 跟随 Codex 当前语言，不翻译用户自己的标签。\n\n## 开始使用\n\n### 1. 安装 CLI 和插件\n\n先完成正在运行的任务。如果 Codex 已打开但未启用 Tags，请手动退出，再执行：\n\n```bash\nnpx @c0sc0s/codex-tags@latest\n```\n\n### 2. 授权 Hook\n\n打开 **Codex → Plugins → Codex Tags**，检查并信任/启用 **SessionStart、UserPromptSubmit、SessionEnd**。\n\n**下次启动：** 使用 `~/Applications/Codex Tags.app`，可拖到 Dock 固定。它是 Codex Plugin Loader 的入口：启动官方 App 后，由 Loader 加载 Tags 等已配置模块，保留原路径以兼容 Dock；不会自动重启或安装启动守护进程。命名由 Agent 辅助完成，不保证每次确定性改名。\n\n<details>\n<summary>从源码开发或安装</summary>\n\n```bash\ngit clone https://github.com/c0sc0s/codex-tags.git\ncd codex-tags\nnpm ci\nnpm run verify\nnode bin/codex-tags.mjs install\n```\n\n随后按上面的步骤授权三个 Hook。\n\n</details>\n\n## 命令\n\n执行 `npx @c0sc0s/codex-tags@latest <命令>`；源码安装：`node bin/codex-tags.mjs <命令>`。\n\n| 命令 | 作用 |\n| --- | --- |\n| `install`、`on`、`enable` | 安装当前调用的包版本并开启全部组件 |\n| `off`、`restore`、`disable` | 停止注入并移除命名插件，保留数据 |\n| `status` / `doctor` | 只读查看状态 / 诊断是否就绪 |\n| `update` | 安装当前调用的版本；使用 `@latest` 才会获取最新版 |\n| `uninstall` | 移除自有组件和索引，保留标签设置 |\n| `uninstall --purge` | 进一步移除标签设置和自有缓存 |\n\n操作命令支持 `--json`。Hook 授权必须由用户在 Codex 中手动确认。\n\n## 隐私与兼容性\n\nCLI 安装本地代码，通过 Codex 插件命令注册插件；**不会**修改官方签名应用、会话记录或登录信息。本地 SQLite 索引只向界面返回有限的命中片段。\n\n注入依赖本机调试端口及 Codex 私有 DOM/数据库结构，不是官方侧边栏扩展 API；Codex 更新后可能需要适配。调试权限较高，请只在可信电脑上使用。详见[验证范围与限制](docs/compatibility.md)。\n\n## 开发\n\n```bash\nnpm run dev:apply   # 构建 → 更新安装文件 → 热应用\nnpm run verify     # 构建、语法、类型与回归测试\nnpm run test:package\n```\n\n快速调试需要 Codex 已激活且带调试端口运行；目前没有 HMR 服务。\n\n- [本地开发与调试](docs/development.md)\n- [安装与发布](docs/distribution.md)\n- [架构](docs/architecture.md) · [数据与命名协议](docs/protocol.md)\n- [后续规划](docs/roadmap.md) · [更新记录](CHANGELOG.md)\n\n本项目独立开发，不隶属于 OpenAI，也未经其背书。目前没有开放源代码许可授权（`UNLICENSED`）。\n\n独立基础包与模块开发接口见 [Codex Plugin Loader](docs/plugin-loader.md)：Loader 管理 CDP、独立服务进程和 RPC/事件，业务模块通过 SDK 实现功能。\n","readmeFilename":"README.zh-CN.md"}