{"_id":"@aneviaro/pi-codex-limit-tracking-footer","_rev":"2-7dfc6e175d3d2f99732d09bc5555efa1","name":"@aneviaro/pi-codex-limit-tracking-footer","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@aneviaro/pi-codex-limit-tracking-footer","version":"0.1.0","keywords":["pi-package","pi","pi-coding-agent","codex","subscription","usage"],"license":"MIT","_id":"@aneviaro/pi-codex-limit-tracking-footer@0.1.0","maintainers":[{"name":"aneviaro","email":"aliaksandra.neviarouskaya@gmail.com"}],"pi":{"extensions":["./extensions/codex-limit-tracking-footer.ts"]},"dist":{"shasum":"d0fda4a4a793ca76e2fedf0ef410847238aaf9ce","tarball":"https://registry.npmjs.org/@aneviaro/pi-codex-limit-tracking-footer/-/pi-codex-limit-tracking-footer-0.1.0.tgz","fileCount":5,"integrity":"sha512-H8E3GThswOX2E3P9mO/kKZF9OG/cf+05YuEA4H9+yR0Ktc/bJ7tBXeiPU5/dPunNHWyH7hLoFJ5YL7BlvtMqcQ==","signatures":[{"sig":"MEYCIQCtb9HwAEn1EE2zgRxBxSfb880MByx5bfDGheNYd9s20gIhAKPfeISPjC5YgL3o+Gmpdun1fHggFvtz12/+6Q5fijpG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165334},"type":"module","engines":{"node":">=20"},"gitHead":"149f070dc505c47f0bfa2aedb539cb123814ccb4","scripts":{"test":"node --import tsx --test","typecheck":"tsc --noEmit","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"aneviaro","email":"aliaksandra.neviarouskaya@gmail.com"},"_npmVersion":"11.13.0","description":"A Pi footer extension for Codex subscription limit tracking.","directories":{},"_nodeVersion":"24.17.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","typescript":"^5.8.3","@types/node":"^24.0.0"},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-codex-limit-tracking-footer_0.1.0_1783692925613_0.5535928130446364","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aneviaro/pi-codex-limit-tracking-footer","version":"0.1.1","description":"A Pi footer extension for Codex subscription limit tracking.","type":"module","license":"MIT","engines":{"node":">=20"},"keywords":["pi-package","pi","pi-coding-agent","codex","subscription","usage"],"scripts":{"test":"node --import tsx --test","typecheck":"tsc --noEmit","pack:check":"npm pack --dry-run"},"pi":{"extensions":["./extensions/codex-limit-tracking-footer.ts"]},"peerDependencies":{"@earendil-works/pi-coding-agent":"*"},"devDependencies":{"@types/node":"^24.0.0","tsx":"^4.19.3","typescript":"^5.8.3"},"publishConfig":{"access":"public"},"gitHead":"2600e4d14bd0c4193948bf1d40850a17eb467c9c","_id":"@aneviaro/pi-codex-limit-tracking-footer@0.1.1","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-2YEZQdmy8rGrXQY6p/218CfJip49YaUcczf16qGu/PAe7HtLLU45PbNx1GbAfZqxEeJBI8tLQWznyJkyng3oBA==","shasum":"01227dd180b3d3da5ec97868b9c7dce43618270d","tarball":"https://registry.npmjs.org/@aneviaro/pi-codex-limit-tracking-footer/-/pi-codex-limit-tracking-footer-0.1.1.tgz","fileCount":5,"unpackedSize":166822,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCHkrNEXNouDjjaG1fKKT17qTO1s+WUm0ESZnbvuS1yMAIhAIZfIKz0bkBLoOixLzlWwrOGReXtZPWOZ7S4eC7n/fbD"}]},"_npmUser":{"name":"aneviaro","email":"aliaksandra.neviarouskaya@gmail.com"},"directories":{},"maintainers":[{"name":"aneviaro","email":"aliaksandra.neviarouskaya@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-codex-limit-tracking-footer_0.1.1_1783951843049_0.7822933694045797"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-10T14:15:25.457Z","modified":"2026-07-13T14:10:43.276Z","0.1.0":"2026-07-10T14:15:25.805Z","0.1.1":"2026-07-13T14:10:43.189Z"},"license":"MIT","keywords":["pi-package","pi","pi-coding-agent","codex","subscription","usage"],"description":"A Pi footer extension for Codex subscription limit tracking.","maintainers":[{"name":"aneviaro","email":"aliaksandra.neviarouskaya@gmail.com"}],"readme":"# @aneviaro/pi-codex-limit-tracking-footer\n\nA Pi extension that adds a compact Codex subscription-limit segment to the default footer.\n\n![Codex subscription limit status in Pi](./assets/codex-limit-tracking-footer.png)\n\n## Install\n\nInstall the published package globally:\n\n```text\npi install npm:@aneviaro/pi-codex-limit-tracking-footer@0.1.0\n```\n\nFor local development or testing:\n\n```text\npi -e ./packages/codex-limit-tracking-footer\n# or\npi install ./packages/codex-limit-tracking-footer\n```\n\nThe package supports Pi 0.80.6+ and Node.js 20+.\n\n## Behavior\n\nFor an active Pi-managed `openai-codex` model, the footer shows the Codex limit windows returned for the account, for example:\n\n```text\n5h 42% left · 7d 81% left\n```\n\nSome accounts currently expose only the weekly window, which renders as `7d 99% left`. Each window is themed independently: above 50% is success, 20–50% is warning, and below 20% is error. Failed refreshes retain same-provider data with a stale age marker. Data is refreshed at startup, on provider/model changes, after each completed turn, and no more than once per 15 seconds per provider; background polling runs every minute.\n\nUse `/codex-limits` for details, or `/codex-limits refresh` to bypass the cache for a manual refresh.\n\n## OAuth and privacy\n\nThe extension resolves credentials only through Pi's model registry and requires the active Codex model to use Pi-managed OAuth. It reads no `agent/auth.json` file, does not persist usage data, and does not log credentials, account IDs, authorization headers, or raw usage payloads. The upstream usage endpoint is an undocumented Codex API and may change; failures are handled without exposing secrets.\n\n## Development and release checks\n\n```bash\nnpm ci\nnpm run typecheck\nnpm test\nnpm run pack:check\n```\n\nTests use sanitized fixtures and mocked auth/fetch boundaries. No live credentials are required.\n","readmeFilename":"README.md"}