npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pi-openai-codex-device-login

v0.1.0

Published

Pi extension that adds ChatGPT Plus/Pro device-code login for the OpenAI Codex provider.

Downloads

128

Readme

pi-openai-codex-device-login

Pi extension that adds device-code login for the built-in openai-codex ChatGPT Plus/Pro subscription provider.

This is an extension-only override: it does not replace OpenAI Codex models, streaming, base URLs, or request handling. It only replaces the provider's OAuth login/refresh implementation.

Install

After the package is published to npm:

pi install npm:pi-openai-codex-device-login

Install directly from GitHub:

pi install git:github.com/MorseWayne/pi-openai-codex-device-login

Install from a local checkout:

pi install /home/quzhihao/workspace/source/open/pi-openai-codex-device-login

Or test for one run without installing:

pi -e /home/quzhihao/workspace/source/open/pi-openai-codex-device-login

If pi is already running after installation, use /reload.

Use

  1. Run /login.
  2. Select Use a subscription.
  3. Select ChatGPT Plus/Pro (Codex Device Code) / openai-codex.
  4. Choose Device code (recommended).
  5. Open the displayed URL and enter the displayed one-time code.

The extension keeps Browser OAuth fallback available in the login method selector.

How it works

The device-code flow matches the OpenAI Codex CLI custom flow:

  • Request code: POST https://auth.openai.com/api/accounts/deviceauth/usercode
  • Show URL: https://auth.openai.com/codex/device
  • Poll auth: POST https://auth.openai.com/api/accounts/deviceauth/token
  • Exchange returned authorization code at https://auth.openai.com/oauth/token

The resulting access/refresh tokens are stored by pi's normal auth storage.

Release

CI runs on every push and pull request to main.

Publishing to npm runs from .github/workflows/publish.yml when pushing a tag like v0.1.0.

Repository setup required once:

  1. Create an npm automation/access token.
  2. Add it to GitHub repository secrets as NPM_TOKEN.

Release steps:

npm version patch --no-git-tag-version
npm test
git add package.json package-lock.json
git commit -m "Release v$(node -p "require('./package.json').version")"
git tag "v$(node -p "require('./package.json').version")"
git push origin main --tags

The publish workflow verifies that the pushed tag matches package.json before running npm publish --access public --provenance.

Roll back

Remove the package from pi settings:

pi remove npm:pi-openai-codex-device-login

For a local install, remove the local path package or delete the package entry from ~/.pi/agent/settings.json, then run /reload.

Development

npm test

Tests mock OpenAI endpoints; no live OpenAI account or browser is used.

Security

This extension runs with local process permissions like any pi extension. It never logs access tokens, refresh tokens, device auth IDs, authorization codes, or code verifiers.