{"_id":"@aipno/opencode-token-monitor","_rev":"2-5641a16c7aa95a5293b0c423c15b7582","name":"@aipno/opencode-token-monitor","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.5":{"name":"@aipno/opencode-token-monitor","version":"1.0.5","keywords":["opencode","plugin","opencode-plugin","tokens","usage","monitor","tui"],"license":"Apache-2.0","_id":"@aipno/opencode-token-monitor@1.0.5","maintainers":[{"name":"aipno","email":"aipno@iswxl.cn"}],"dist":{"shasum":"82544115b362b41c85ac5017169bb08851b84eb5","tarball":"https://registry.npmjs.org/@aipno/opencode-token-monitor/-/opencode-token-monitor-1.0.5.tgz","fileCount":15,"integrity":"sha512-GHERxIIPavpPOuMLEo8qGo1/+hfj1jdkI81URKOtD5q0QEBOvG042HkeX4mpisFQrfgF86VmW9NfOQ5RVKEgHw==","signatures":[{"sig":"MEYCIQDMEh5WW8BQG1vmLgIYYClSMFvrOMxMJyKPTlnrQvM9LAIhAP8aYU4CEWxhXGOeiW/uh4BIZT89vjDQHNDMjvyZ/Fij","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43599},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tui":{"types":"./dist/tui.d.ts","import":"./dist/tui.jsx"},"./package.json":"./package.json"},"gitHead":"2896a229fa3bf5078151c28420529eade2784bd9","scripts":{"build":"tsc","prepublishOnly":""},"_npmUser":{"name":"aipno","email":"aipno@iswxl.cn"},"_npmVersion":"11.16.0","description":"Real-time token usage monitoring plugin for OpenCode with sidebar display","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"solid-js":"^1.9.14","typescript":"^5.7.0","@types/node":"^22.0.0","@opentui/core":"^0.2.9","@opentui/solid":"^0.2.9","@opencode-ai/plugin":"latest"},"_npmOperationalInternal":{"tmp":"tmp/opencode-token-monitor_1.0.5_1785041425080_0.23343803992235146","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@aipno/opencode-token-monitor","version":"1.0.6","description":"Real-time token usage monitoring plugin for OpenCode with sidebar display","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./tui":{"types":"./dist/tui.d.ts","import":"./dist/tui.jsx"},"./package.json":"./package.json"},"sideEffects":false,"scripts":{"build":"tsc","prepublishOnly":""},"engines":{"node":">=18"},"keywords":["opencode","plugin","opencode-plugin","tokens","usage","monitor","tui"],"publishConfig":{"access":"public"},"license":"Apache-2.0","devDependencies":{"@opencode-ai/plugin":"latest","@opentui/core":"^0.2.9","@opentui/solid":"^0.2.9","@types/node":"^22.0.0","solid-js":"^1.9.14","typescript":"^5.7.0"},"gitHead":"2896a229fa3bf5078151c28420529eade2784bd9","_id":"@aipno/opencode-token-monitor@1.0.6","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-P4q2+ZnpgmJEM+PijDoZrrQVZi+zfQ3ysxkPP9N97moBp83YZs8yU1H6F4yCW4eIW2VpxnJQgwSdIzzJA7G3wg==","shasum":"b08b7b566b288997c3db95dd077b0350d7ae1a33","tarball":"https://registry.npmjs.org/@aipno/opencode-token-monitor/-/opencode-token-monitor-1.0.6.tgz","fileCount":15,"unpackedSize":43599,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDcTOSBf+sp0ywE7Vg6ST10rKC8jWOtobJ1ZkapPCxvmwIhALazJg7Sn/yDZxKDv3uklaYoAt710Pe6QkKMmqniJhCl"}]},"_npmUser":{"name":"aipno","email":"aipno@iswxl.cn"},"directories":{},"maintainers":[{"name":"aipno","email":"aipno@iswxl.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opencode-token-monitor_1.0.6_1785042133834_0.8039639755819608"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-26T04:50:24.970Z","modified":"2026-07-26T05:02:14.112Z","1.0.5":"2026-07-26T04:50:25.231Z","1.0.6":"2026-07-26T05:02:13.981Z"},"license":"Apache-2.0","keywords":["opencode","plugin","opencode-plugin","tokens","usage","monitor","tui"],"description":"Real-time token usage monitoring plugin for OpenCode with sidebar display","maintainers":[{"name":"aipno","email":"aipno@iswxl.cn"}],"readme":"# opencode-token-monitor\n\nOpenCode CLI 实时 Token 用量监控插件，侧边栏显示统计数据。\n\n## 功能\n\n- **侧边栏面板** — 会话级实时统计（请求数、Token、缓存命中率、成本）\n- **按模型分组** — 每个模型的 Token 用量、缓存命中率进度条\n- **性能指标** — TTFT / TPS / 端到端延迟\n- **可折叠** — 面板和模型区块均可点击折叠\n- **持久化** — 性能日志写入 `~/.opencode/token-monitor.jsonl`\n- **中英双语** — 自动跟随系统语言\n\n## 安装\n\n将本目录放置到 `~/.config/opencode/plugins/` 下：\n\n```\n~/.config/opencode/plugins/opencode-token-monitor/\n├── package.json\n├── src/\n│   ├── index.ts        # 服务端入口\n│   ├── tui.tsx         # TUI 侧边栏入口\n│   ├── sidebar.tsx     # 侧边栏面板组件\n│   ├── perf-tracker.ts # 性能追踪\n│   ├── formatter.ts    # 格式化工具\n│   └── i18n.ts         # 国际化\n└── README.md\n```\n\n或在 `opencode.json` 中作为 npm 包引用（需先发布）：\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\"opencode-token-monitor\"]\n}\n```\n\n## 技术架构\n\n参考 [opencode-tokenwatch](https://github.com/TTWK/opencode-tokenwatch) 的实现：\n\n- 使用 opencode TUI 插件 API（`api.slots.register`）注入侧边栏\n- SolidJS + `@opentui/core` + `@opentui/solid` 渲染 JSX 组件\n- 监听 `message.updated` / `message.part.updated` 事件实时采集数据\n- `api.kv` 持久化会话数据，切换会话时自动恢复\n\n## 数据文件\n\n| 文件 | 路径 | 说明 |\n|------|------|------|\n| JSONL 日志 | `~/.opencode/token-monitor.jsonl` | 原始请求性能日志 |\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}