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

flashpod

v0.1.0

Published

TypeScript-first wrapper for RunPod Flash: typed config, generated Python bridge, CLI lifecycle, and endpoint client.

Readme

flashpod

ci npm version license: MIT Node.js >=20.11

TypeScript-first wrapper for RunPod Flash.

This is a small hackathon-friendly package with a practical joke inside: the best Python is the Python your TypeScript generated for you.

flashpod lets you define Flash endpoints in TypeScript, generate the tiny Python bridge that the official Flash builder expects, and then call flash dev, flash build, or flash deploy from the same CLI.

It is not an official RunPod package.

What works now

  • Typed endpoint config in flashpod.config.ts
  • Generated flash_app.py bridge for queue and load-balanced endpoints
  • CLI lifecycle wrapper around the official flash command
  • TypeScript client for RunPod queue and load-balanced endpoint calls
  • npm-ready package named flashpod
  • Unit, CLI e2e, package-smoke, and generated Python bridge tests

Install

npm install flashpod
uv tool install runpod-flash

Flash still needs its official Python CLI installed locally because this first version delegates deployment to runpod-flash.

Quickstart

npx flashpod init
npx flashpod generate
npx flashpod deploy --env production

Example config:

import { CpuInstanceType, defineConfig, endpoint, handler, route } from "flashpod";

export default defineConfig({
  app: "hello-flashpod",
  bridgeFile: "flash_app.py",
  endpoints: [
    endpoint.queue({
      name: "hello",
      cpu: CpuInstanceType.CPU3C_1_2,
      workers: [0, 1],
      handler: handler.json({
        ok: true,
        message: "Configured in TypeScript. Deployed by Flash.",
      }),
    }),

    endpoint.loadBalanced({
      name: "api",
      cpu: CpuInstanceType.CPU3C_1_2,
      workers: [0, 2],
      routes: [
        route.get("/health", handler.json({ ok: true })),
        route.post("/echo", handler.echo()),
      ],
    }),
  ],
});

Generated bridge:

npx flashpod generate --dry-run

Calling endpoints from TypeScript

import { FlashClient } from "flashpod";

const client = new FlashClient({ apiKey: process.env.RUNPOD_API_KEY });
const endpoint = client.endpoint("YOUR_ENDPOINT_ID");

const job = await endpoint.runsync<{ prompt: string }, { text: string }>({
  prompt: "hello",
});

console.log(job.output);

CLI

flashpod init
flashpod generate [--config flashpod.config.ts] [--out flash_app.py]
flashpod dev [flash args...]
flashpod build [flash args...]
flashpod deploy [flash args...]
flashpod login
flashpod doctor

dev, build, and deploy generate the bridge first, then run the official Flash CLI.

Verification

The package has four local verification layers:

npm run typecheck       # strict TypeScript
npm run test:unit       # renderer + client behavior
npm run test:e2e        # CLI + generated bridge + fake flash binary
npm run test:package    # npm pack/install smoke test

npm run check runs all of them.

GitHub Actions runs those checks across Node 20, 22, and 24. A second CI job installs the official runpod-flash package, generates flash_app.py, compiles it with Python, and imports it so the bridge stays compatible with Flash’s scanner/decorator pattern.

Release

The repository includes a release workflow for npm. To publish:

  1. Create an npm automation token and save it as NPM_TOKEN in GitHub secrets.
  2. Create a GitHub release or run the release workflow manually.
  3. The workflow runs npm run check, then publishes with npm provenance.

Scope

This package deliberately starts as a wrapper. It follows the same boundary I use in production TypeScript/Python projects:

  • TypeScript owns config, orchestration, UX, and typed clients.
  • Flash owns deployment packaging and RunPod provisioning.
  • Python exists as generated bridge code until a real TypeScript worker runtime is worth building.

See docs/migration-plan.md. See docs/flash-compatibility.md for the exact bridge contract this package keeps with the official Flash SDK.

Publishing

npm run check
npm publish

License

MIT