{"_id":"@a-r-m-i-n/opencode-openai-usage","_rev":"6-f7f63b6c9ac3a85c0081a947fd3561c8","name":"@a-r-m-i-n/opencode-openai-usage","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@a-r-m-i-n/opencode-openai-usage","version":"0.1.0","keywords":["opencode","opencode-plugin","openai","chatgpt","tui"],"license":"MIT","_id":"@a-r-m-i-n/opencode-openai-usage@0.1.0","maintainers":[{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"}],"homepage":"https://github.com/a-r-m-i-n/opencode-openai-usage#readme","bugs":{"url":"https://github.com/a-r-m-i-n/opencode-openai-usage/issues"},"dist":{"shasum":"d36467b5225136d6b5033b20fd437ebd203cc984","tarball":"https://registry.npmjs.org/@a-r-m-i-n/opencode-openai-usage/-/opencode-openai-usage-0.1.0.tgz","fileCount":6,"integrity":"sha512-ECFX+q1/VBwk4KbDIPvMdMNMtPyQAd5aEn9nLn/QQhq2m08P0ARxAZVzpf57Ze7gg1UCQRTgKh+5EZvuXi9hoA==","signatures":[{"sig":"MEUCIQDxmwhub9ZQhdf3Je6FQkWU8Ra/f1QbO4oR7GPdz4y/jAIgTxcXJAtIcwW08GBO2Tr6YYAzZt9kRDmOHgEkSB4rs0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29798},"type":"module","exports":{".":"./dist/index.js","./tui":"./dist/tui.js"},"gitHead":"d7a11587bde3d880779e2dc3591b0c45e437da80","scripts":{"test":"node --import tsx --test ./src/lib/openai-usage.test.ts","build":"tsup ./src/index.ts ./src/tui.tsx --format esm --out-dir dist --clean --external @opencode-ai/plugin --external @opencode-ai/plugin/tui --external @opentui/core --external @opentui/keymap --external @opentui/solid --external solid-js","prepublishOnly":"npm run build"},"_npmUser":{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"},"repository":{"url":"git+https://github.com/a-r-m-i-n/opencode-openai-usage.git","type":"git"},"_npmVersion":"9.2.0","description":"OpenCode plugin that shows ChatGPT/OpenAI usage in the sidebar and command palette.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"solid-js":"1.9.12","@opentui/core":"0.2.16","@opentui/solid":"0.2.16","@opentui/keymap":"0.2.16","@opencode-ai/plugin":"1.15.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.6","typescript":"^5.8.3"},"_npmOperationalInternal":{"tmp":"tmp/opencode-openai-usage_0.1.0_1780302595442_0.9325039235386401","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@a-r-m-i-n/opencode-openai-usage","version":"0.1.1","keywords":["opencode","opencode-plugin","openai","chatgpt","tui"],"license":"MIT","_id":"@a-r-m-i-n/opencode-openai-usage@0.1.1","maintainers":[{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"}],"homepage":"https://github.com/a-r-m-i-n/opencode-openai-usage#readme","bugs":{"url":"https://github.com/a-r-m-i-n/opencode-openai-usage/issues"},"dist":{"shasum":"15e3a83014fb2abb3caaa72e4dce2e0ed0d77637","tarball":"https://registry.npmjs.org/@a-r-m-i-n/opencode-openai-usage/-/opencode-openai-usage-0.1.1.tgz","fileCount":6,"integrity":"sha512-UXIuqUubWYDJd7FWCbYgydEoc8+vfjH35yunLqUi77/LyOGsmAPrVqGG8j98h9UUThKGWsLcKy+eOp2DLFXJLg==","signatures":[{"sig":"MEUCIQDnQeqhMQ2glc3LqMeBJhHexk0wd0bGXIA7NZ+mG+211wIgZfoeT5grj3+Y07AE1sSqC7uOXP6ZzjHpEqdaVCTeff8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31656},"type":"module","exports":{".":"./dist/index.js","./tui":"./dist/tui.js"},"gitHead":"59202a45383a3cfd1e81bde0a62136557de7ae54","scripts":{"test":"node --import tsx --test ./src/lib/openai-usage.test.ts","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"},"repository":{"url":"git+https://github.com/a-r-m-i-n/opencode-openai-usage.git","type":"git"},"_npmVersion":"9.2.0","description":"OpenCode plugin that shows ChatGPT/OpenAI usage in the sidebar and command palette.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"solid-js":"1.9.12","@opentui/core":"0.2.16","@opentui/solid":"0.2.16","@opentui/keymap":"0.2.16","@opencode-ai/plugin":"1.15.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.6","typescript":"^5.8.3","esbuild-plugin-solid":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/opencode-openai-usage_0.1.1_1780303669525_0.869781728705251","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@a-r-m-i-n/opencode-openai-usage","version":"0.1.2","keywords":["opencode","opencode-plugin","openai","chatgpt","tui"],"license":"MIT","_id":"@a-r-m-i-n/opencode-openai-usage@0.1.2","maintainers":[{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"}],"homepage":"https://github.com/a-r-m-i-n/opencode-openai-usage#readme","bugs":{"url":"https://github.com/a-r-m-i-n/opencode-openai-usage/issues"},"dist":{"shasum":"7fc2b2d215e1d308176e84fd86704ccc8c2503be","tarball":"https://registry.npmjs.org/@a-r-m-i-n/opencode-openai-usage/-/opencode-openai-usage-0.1.2.tgz","fileCount":6,"integrity":"sha512-ATCM7RQpPhX2x/riVHYMvVWOB7/yuo/KvzbDZQyMkkO8gtZwTAVhn0+XLwGnVsOV8LpC+px4OOAl8vlKi3Gqqg==","signatures":[{"sig":"MEYCIQDqJZBujqJfiIkPc/6qlVq1Tk30qk13o/1Z4Ztrdr0r1QIhAJUQP638TjLL+3WGwGU96OM6s6DSoEOnFItzHpz8sUZK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31931},"type":"module","exports":{".":"./dist/index.js","./tui":"./dist/tui.js"},"gitHead":"072c1e2e5407e3ed3524cf773761966a882f647b","scripts":{"test":"node --import tsx --test ./src/lib/openai-usage.test.ts","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"},"repository":{"url":"git+https://github.com/a-r-m-i-n/opencode-openai-usage.git","type":"git"},"_npmVersion":"9.2.0","description":"OpenCode plugin that shows ChatGPT/OpenAI usage in the sidebar and command palette.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"@opencode-ai/plugin":"1.15.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.6","solid-js":"1.9.12","typescript":"^5.8.3","@opentui/core":"0.2.16","@opentui/solid":"0.2.16","esbuild-plugin-solid":"^0.6.0"},"peerDependencies":{"solid-js":"1.9.12","@opentui/core":">=0.2.15","@opentui/solid":">=0.2.15"},"peerDependenciesMeta":{"solid-js":{"optional":true},"@opentui/core":{"optional":true},"@opentui/solid":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/opencode-openai-usage_0.1.2_1780311174613_0.567347001839287","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@a-r-m-i-n/opencode-openai-usage","version":"0.1.3","keywords":["opencode","opencode-plugin","openai","chatgpt","tui"],"license":"MIT","_id":"@a-r-m-i-n/opencode-openai-usage@0.1.3","maintainers":[{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"}],"homepage":"https://github.com/a-r-m-i-n/opencode-openai-usage#readme","bugs":{"url":"https://github.com/a-r-m-i-n/opencode-openai-usage/issues"},"dist":{"shasum":"86acca423210d9b52850b04cfaa146535903d4e2","tarball":"https://registry.npmjs.org/@a-r-m-i-n/opencode-openai-usage/-/opencode-openai-usage-0.1.3.tgz","fileCount":6,"integrity":"sha512-eAP+redRxwLsYVc12L1oxq1XxXnkV+3XINZhQOzzzbOjvjuoSInNV4dORDKiPRcf5/nnqfMDpIXMWLLEKoXG2Q==","signatures":[{"sig":"MEQCIBd5oXgg4ctUPXnpAmjXGzb2pUvEsrWDbvdEtJAaHWZQAiB/bALW+OXa9SNG9YYD2EaBYagm7mNZcQUW378n7NY3Nw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33732},"type":"module","exports":{".":"./dist/index.js","./tui":"./dist/tui.js"},"gitHead":"8e52c145a2eae4799078da029c01f72f2d2d60a9","scripts":{"test":"node --import tsx --test ./src/lib/openai-usage.test.ts","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"},"repository":{"url":"git+https://github.com/a-r-m-i-n/opencode-openai-usage.git","type":"git"},"_npmVersion":"9.2.0","description":"OpenCode plugin that shows ChatGPT/OpenAI usage in the sidebar and command palette.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"@opencode-ai/plugin":"1.15.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.6","solid-js":"1.9.12","typescript":"^5.8.3","@opentui/core":"0.2.16","@opentui/solid":"0.2.16","esbuild-plugin-solid":"^0.6.0"},"peerDependencies":{"solid-js":"1.9.12","@opentui/core":">=0.2.15","@opentui/solid":">=0.2.15"},"peerDependenciesMeta":{"solid-js":{"optional":true},"@opentui/core":{"optional":true},"@opentui/solid":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/opencode-openai-usage_0.1.3_1780820675341_0.4715349631503931","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@a-r-m-i-n/opencode-openai-usage","version":"0.1.4","keywords":["opencode","opencode-plugin","openai","chatgpt","tui"],"license":"MIT","_id":"@a-r-m-i-n/opencode-openai-usage@0.1.4","maintainers":[{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"}],"homepage":"https://github.com/a-r-m-i-n/opencode-openai-usage#readme","bugs":{"url":"https://github.com/a-r-m-i-n/opencode-openai-usage/issues"},"dist":{"shasum":"a4a05a453c02df62537c6d5da5a9d07f65909d3f","tarball":"https://registry.npmjs.org/@a-r-m-i-n/opencode-openai-usage/-/opencode-openai-usage-0.1.4.tgz","fileCount":6,"integrity":"sha512-6cGG+iM3piWkBe7/xjvqeoTfqfoDGVZN2Hs0mQgQ2xm9LFhSXxmwNlJqHxCyjXGk4Y04CJ8YnrIPJ6Mo1vSvYw==","signatures":[{"sig":"MEQCIGPJ4zeAn5r63KmQIuGxxRyScd+KVToQS7k1SdoR1KhGAiBKaCvWG8mqO3RQ32qZJWXaBuaAMjvjquP/amSV+gIJ4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34993},"type":"module","exports":{".":"./dist/index.js","./tui":"./dist/tui.js"},"gitHead":"5fefbf893629b6597bbcf3305bebc9c76bef3ec5","scripts":{"test":"node --import tsx --test ./src/lib/openai-usage.test.ts","build":"tsup","prepublishOnly":"npm run build"},"_npmUser":{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"},"repository":{"url":"git+https://github.com/a-r-m-i-n/opencode-openai-usage.git","type":"git"},"_npmVersion":"9.2.0","description":"OpenCode plugin that shows ChatGPT/OpenAI usage in the sidebar and command palette.","directories":{},"_nodeVersion":"18.19.1","dependencies":{"@opencode-ai/plugin":"1.15.10"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","tsup":"^8.3.6","solid-js":"1.9.12","typescript":"^5.8.3","@opentui/core":"0.2.16","@opentui/solid":"0.2.16","esbuild-plugin-solid":"^0.6.0"},"peerDependencies":{"solid-js":"1.9.12","@opentui/core":">=0.2.15","@opentui/solid":">=0.2.15"},"peerDependenciesMeta":{"solid-js":{"optional":true},"@opentui/core":{"optional":true},"@opentui/solid":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/opencode-openai-usage_0.1.4_1783180595124_0.9017519201591906","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@a-r-m-i-n/opencode-openai-usage","version":"0.1.5","description":"OpenCode plugin that shows ChatGPT/OpenAI usage in the sidebar and command palette.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/a-r-m-i-n/opencode-openai-usage.git"},"homepage":"https://github.com/a-r-m-i-n/opencode-openai-usage#readme","bugs":{"url":"https://github.com/a-r-m-i-n/opencode-openai-usage/issues"},"type":"module","keywords":["opencode","opencode-plugin","openai","chatgpt","tui"],"exports":{".":"./dist/index.js","./tui":"./dist/tui.js"},"scripts":{"build":"tsup","test":"node --import tsx --test ./src/lib/openai-usage.test.ts","prepublishOnly":"npm run build"},"dependencies":{"@opencode-ai/plugin":"1.15.10"},"peerDependencies":{"@opentui/core":">=0.2.15","@opentui/solid":">=0.2.15","solid-js":"1.9.12"},"peerDependenciesMeta":{"@opentui/core":{"optional":true},"@opentui/solid":{"optional":true},"solid-js":{"optional":true}},"devDependencies":{"esbuild-plugin-solid":"^0.6.0","@opentui/core":"0.2.16","@opentui/solid":"0.2.16","solid-js":"1.9.12","tsup":"^8.3.6","tsx":"^4.19.2","typescript":"^5.8.3"},"gitHead":"c68c1d79167d185488fc4a3b18d48a98d5c8b63c","_id":"@a-r-m-i-n/opencode-openai-usage@0.1.5","_nodeVersion":"18.19.1","_npmVersion":"9.2.0","dist":{"integrity":"sha512-0/cUQ/DbZYYRVnhex8f6MVzK9sTiVHTmKz4z/kFp2CGoIpLtF3fMifbwZP6UhVfV6PsgUJPZFUCmw9hAEpCvaQ==","shasum":"7358a57553eccd270358edd67e30ce5d610d2659","tarball":"https://registry.npmjs.org/@a-r-m-i-n/opencode-openai-usage/-/opencode-openai-usage-0.1.5.tgz","fileCount":6,"unpackedSize":34993,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDa1+i+doIhFE9VX8A5UDI2EDth5T2wbgqKMCYhs6FiUgIhAP1NWApl3x4GzDR5lv5o72PnfhwzRlMie5b6+YzUiAjj"}]},"_npmUser":{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"},"directories":{},"maintainers":[{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opencode-openai-usage_0.1.5_1783237504293_0.990733338299822"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-01T08:29:55.298Z","modified":"2026-07-05T07:45:04.538Z","0.1.0":"2026-06-01T08:29:55.574Z","0.1.1":"2026-06-01T08:47:49.690Z","0.1.2":"2026-06-01T10:52:54.752Z","0.1.3":"2026-06-07T08:24:35.491Z","0.1.4":"2026-07-04T15:56:35.251Z","0.1.5":"2026-07-05T07:45:04.427Z"},"bugs":{"url":"https://github.com/a-r-m-i-n/opencode-openai-usage/issues"},"license":"MIT","homepage":"https://github.com/a-r-m-i-n/opencode-openai-usage#readme","keywords":["opencode","opencode-plugin","openai","chatgpt","tui"],"repository":{"type":"git","url":"git+https://github.com/a-r-m-i-n/opencode-openai-usage.git"},"description":"OpenCode plugin that shows ChatGPT/OpenAI usage in the sidebar and command palette.","maintainers":[{"name":"a-r-m-i-n","email":"armin@v.ieweg.de"}],"readme":"# @a-r-m-i-n/opencode-openai-usage\n\nOpenCode plugin that reads your ChatGPT account usage and shows it in the TUI sidebar and command palette.\n\nThe sidebar panel starts expanded and can be collapsed.\n\n![OpenAI Usage sidebar showing active usage windows](docs/screenshots/sidebar-expanded.png)\n\n## What It Does\n\n- fetches usage data from OpenAI Backend API\n- reads the OpenCode OpenAI OAuth token from OpenCode's local state\n- shows usage windows in the collapsible sidebar\n- adds `OpenAI Usage`, `OpenAI Usage: Toggle Sidebar Display`, and `OpenAI Usage: Show/Hide Sidebar Section` commands to the TUI command list\n\n## Screenshots\n\n### Command Palette\n\nShows the OpenAI-specific commands added by the plugin.\n\n- `OpenAI Usage`: opens the detailed usage dialog\n- `OpenAI Usage: Toggle Sidebar Display`: switches the sidebar between used quota and remaining quota\n- `OpenAI Usage: Show Sidebar Section` / `OpenAI Usage: Hide Sidebar Section`: toggles the sidebar section and persists the setting across restarts\n\n<img src=\"docs/screenshots/command-palette-openai.png\" alt=\"Command palette with OpenAI Usage commands\" width=\"400\" />\n\n### Usage Dialog\n\nShows the detailed usage summary, including the current usage windows and account details returned by the upstream endpoint.\n\n<img src=\"docs/screenshots/openai-usage-dialog.png\" alt=\"OpenAI Usage dialog\" width=\"400\" />\n\n### Sidebar Display Modes\n\nThe sidebar can show either used quota or remaining quota.\n\nUsed mode:\n\n<img src=\"docs/screenshots/mode-used.png\" alt=\"Sidebar showing used quota\" width=\"350\" />\n\nLeft mode:\n\n<img src=\"docs/screenshots/mode-left.png\" alt=\"Sidebar showing remaining quota\" width=\"350\" />\n\n## Requirements\n\n- OpenCode with an OpenAI account connected via OAuth\n- Node.js and npm available for installation/build steps\n\n## Install From npm\n\n```bash\nnpm install @a-r-m-i-n/opencode-openai-usage\n```\n\nAdd the runtime plugin in `opencode.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\"@a-r-m-i-n/opencode-openai-usage\"]\n}\n```\n\nAdd the TUI plugin in `tui.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/tui.json\",\n  \"plugin\": [[\"@a-r-m-i-n/opencode-openai-usage/tui\", { \"invert\": false }]]\n}\n```\n\nAfter changing config, quit and restart OpenCode.\n\n## TUI Options\n\nThe TUI plugin accepts options in `tui.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/tui.json\",\n  \"plugin\": [[\"@a-r-m-i-n/opencode-openai-usage/tui\", { \"invert\": true }]]\n}\n```\n\n| Option | Default | Description |\n|---|---|---|\n| `invert` | `false` | Default sidebar mode. `false` shows used quota like `60% used`; `true` shows remaining quota like `40% left`. After the `OpenAI Usage: Toggle Sidebar Display` command is used, the last selected mode is persisted across restarts. |\n\n## Project Structure\n\n```text\nsrc/\n  index.ts\n  tui.tsx\n  lib/openai-usage.ts\n.opencode/\n  plugins/openai-usage.ts\n  tui/openai-usage.tsx\n  tui.json\n```\n\n## Notes And Limitations\n\n- The plugin depends on OpenCode's locally stored `auth.json` format.\n- The usage endpoint is an internal ChatGPT web endpoint and may change without notice.\n- The plugin caches usage data locally in OpenCode's state directory.\n- The plugin hides its sidebar panel when OpenCode has no OpenAI OAuth account configured.\n- Usage-specific commands are hidden when OpenCode has no OpenAI OAuth account configured, but the sidebar visibility toggle remains available.\n- The command summary currently includes the account email returned by the upstream endpoint.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}