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

explodex

v0.2.2

Published

A plugin SDK for extending the Codex desktop app.

Downloads

715

Readme

Explodex 💥

Mod the Codex desktop app.

Explodex (Extension plugins for Codex) is an extension SDK for OpenAI's Codex desktop app — color-code your projects, keep usage and reset countdowns on screen, set reasoning effort with a keystroke, or build your own by prompting Codex.

Install in 30 seconds · Included plugins · Build a plugin · Docs

npm install -g explodex
explodex

Why

Codex is great but closed. Explodex makes it malleable — so the tweak you keep wishing for is something you can just build. (Used BetterDiscord or Legcord? Same idea, for Codex.)

Included plugins

Explodex ships with a handful of plugins — useful on their own, and good starting points to copy when building your own.

💥 Explodex sidebar item opens a settings page where you can enable/disable plugins and change their options.

| Plugin | What it does | Screenshot | | ------ | ------------ | ---------- | | Usage and Reset Glance | Keep usage and credit-reset countdowns on screen — no clicking into menus | | | Project Pins | Pin a thread to its project instead of globally, and keep it at the top | | | Project Colors | Color-code projects and their threads in the sidebar so you can tell them apart at a glance | | | Threads in Command Menu | Find any thread from ⌘K — including threads inside collapsed projects, listed first | | | Effort Shortcuts | Set reasoning effort from the composer — type !m or !xh, stripped on send and restored after | | | Feature Flags Playground | Toggle Codex's experimental feature flags from Settings — changes persist across restarts | |

Build your own plugin

Explodex is meant to be modded with Codex. Clone the repo, open it in Codex (or any AI agent), and describe what you want — e.g. "add a button that copies the thread as markdown." Bundled agent skills drive the whole loop (scaffold → SDK hooks → validate → hot-reload into the live app, no restart):

The SDK reference and types keep the agent on stable surfaces; the included plugins double as templates.

A plugin is a folder with a manifest and an entry script:

my-plugin/
  plugin.json
  index.js
// @ts-check
/// <reference path="../../sdk/explodex-sdk.d.ts" />

(function (global) {
  const Explodex = global.Explodex;
  if (!Explodex?.plugins?.register) return;

  Explodex.plugins.register(
    { id: "hello", name: "Hello", version: "1.0.0" },
    (api) => {
      const render = () =>
        api.mount("aboveComposer", () =>
          api.components.button({
            label: "Insert greeting",
            color: "secondary",
            size: "composerSm",
            onClick: () => api.composer.insertText("Hello! "),
          }),
        );

      render();
      const stop = api.waitFor("aboveComposer", render);
      return () => stop();
    },
  );
})(window);

Install user plugins under ~/.explodex/plugins/ (same layout). They override bundled plugins with the same id. In the sidebar, open 💥 ExplodexOpen Plugins Folder to reveal that directory.

See the SDK API reference and the development guide for the full workflow.

Install

You'll need macOS, the Codex desktop app at /Applications/Codex.app, and a package manager (Bun, npm, pnpm, or Yarn).

Install globally, then run explodex:

# pick one
npm install -g explodex
pnpm add -g explodex
bun install -g explodex
yarn global add explodex

explodex

You will be prompted to create ~/Applications/Explodex.app, a lightweight launcher: it does not modify, re-sign, or change the bundle ID of Codex.

See docs/installation.md for commands, launch states, recovery, and logs.

Install from source

To build plugins, clone the repo and run the dev loop:

git clone https://github.com/dan-dr/explodex.git
cd explodex
bun run dev

bun run dev packages the app, launches Codex with remote debugging, injects the SDK + plugins, and starts Chrome DevTools MCP for live renderer inspection — exactly the loop the agent skills drive. Dev state is isolated under .explodex-user-data/.

Develop

Repo layout, the dev loop, validation, and the bun run commands live in docs/development.md.

How it works

Explodex creates a thin local launcher (Explodex.app) that starts the unmodified Codex executable with Chrome DevTools Protocol enabled, then injects the npm-packaged SDK and plugins. The SDK (sdk/explodex-sdk.js) provides:

  • DOM zonesaboveComposer, sidebar, composerActions, and more
  • Components — buttons, panels, toasts styled like Codex
  • Bridge — AppServer router and Electron IPC to Codex internals
  • Plugin manager — catalog, enable/disable, hot load in dev

Compatibility & safety

Explodex injects locally into Codex's renderer. It never modifies your installed /Applications/Codex.app and runs entirely on your machine. Because it hooks Codex internals, a plugin may need an update when Codex ships a new release — see docs/sdk-fragility.md.

macOS only for now. Not affiliated with, endorsed by, or supported by OpenAI.

Docs

| Doc | Contents | | --- | -------- | | docs/sdk-api.md | SDK API reference (start here for plugin development) | | docs/development.md | Repo layout, validation, dev loop, commands | | docs/installation.md | npm install, launcher states, commands, logs | | docs/local-development.md | Packaging, user data, plugin paths | | docs/codex-architecture.md | Bundle topology, injection, IPC | | docs/composer-message-lifecycle.md | Composer send APIs and hook points | | docs/sdk-fragility.md | What breaks across Codex updates | | docs/windows-feasibility.md | Windows feasibility spike; not a support claim | | docs/plugins/README.md | Bundled plugin notes |