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

@bensigo/plato-config

v0.1.0

Published

`@bensigo/plato-config` owns local user configuration and auth material for Plato.

Readme

Plato Config

@bensigo/plato-config owns local user configuration and auth material for Plato.

Milestone 21 starts with Codex auth because Plato cannot run a real end-to-end worker flow until the runtime knows how the user wants to authenticate. The first supported provider is an OpenAI API key. ChatGPT OAuth is also represented as a first-class provider, using Codex app-server managed login for ChatGPT subscription usage.

What This Service Owns

  • local config file reads and writes
  • local secret storage fallback for development and MVP testing
  • redacted auth status for operator surfaces
  • resolving Codex auth for execution services

Defaults

  • config: ~/.plato/config.json
  • local secret fallback: ~/.plato/secrets.json

The local secret file is an MVP fallback, not the long-term storage strategy. A future pass should add an OS keychain-backed SecretStore implementation.

Codex Auth

Use the service API directly or the runner CLI:

codex-runner config status
printf '%s' "$OPENAI_API_KEY" | codex-runner config set-openai-key --api-key-stdin
# or: codex-runner config set-openai-key --api-key-env OPENAI_API_KEY
codex-runner config auth-chatgpt
codex-runner config auth-chatgpt --device-code
codex-runner config clear-openai-key

codex-runner reads this config when opening its operator runtime and passes the configured OpenAI API key into the Codex SDK. For ChatGPT OAuth, Plato records only safe account metadata and the fact that the token source is Codex app-server. Codex owns the browser/device-code OAuth flow, persists refresh tokens in its own auth store, and refreshes them for subscription-backed runs.