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

@shiftlabsas/ciwawa

v0.1.1

Published

The tiny dog that runs your big CI — local GitHub Actions runner with secrets, vars, and PR reporting

Readme

npm version License: MIT


ciwawa is a CLI that wraps act with a polished interactive interface so you can run your GitHub Actions CI workflows locally — fetching secrets and vars straight from GitHub, before you push.

ciwawa ci

That's it. It finds your CI workflow, pulls in all GitHub vars automatically, prompts you once for secret values (stores them locally, never again), then runs the whole thing in a live terminal UI powered by ink. When it's done, it posts the results as a comment on your open PR.

Why

  • Catch broken CI before it hits GitHub
  • No copy-pasting secrets into .env files manually
  • Pre-push hook integration via husky so it runs automatically
  • Live job/step status in the terminal while it runs

Requirements

  • act — brew install act
  • gh — authenticated via gh auth login
  • Docker — running

Install

npm install -g @shiftlabsas/ciwawa

Short alias also available: cww

Local Development

npm run build   # compile TypeScript to dist/
npm link        # symlink the binary globally so `ciwawa` resolves to your local build

Make a change, re-run npm run build, and the linked binary picks it up immediately.

Usage

Run CI locally

ciwawa ci

Options:

| Flag | Description | | ------------------- | ---------------------------------------------------------- | | -j, --job <name> | Run only a specific job | | --bg | Run in the background, return the terminal immediately | | --dry-run | Dry run — validate without executing | | --no-comment | Skip posting results to the PR | | --env-file <path> | Load secrets from a .env file instead of the local store |

Run any workflow

ciwawa run              # interactive picker
ciwawa run deploy-beta  # by name

List workflows

ciwawa list

Setup (husky pre-push hook)

ciwawa setup

Installs a husky pre-push hook so ciwawa ci runs automatically before every git push. Also writes a config file with your preferences.

Secrets

GitHub secret values are never accessible via the API — only names. ciwawa prompts you once and remembers them.

ciwawa secrets list        # show stored names (no values)
ciwawa secrets set FOO     # update a specific secret
ciwawa secrets clear       # wipe the store for this repo

Secrets are stored in ~/.ciwawa/secrets/<owner-repo>.env with chmod 600.

Background runs

ciwawa ci --bg       # detach and return terminal
ciwawa status        # show all recent runs
ciwawa logs          # tail the latest run's log
ciwawa cancel        # kill the running background job

How secrets work

| Source | Available | How | | -------------- | --------------------- | --------------------------------- | | GitHub Secrets | Names only | gh secret list | | GitHub Vars | Names + values | gh variable list | | Workflow file | Which secrets it uses | parsed from ${{ secrets.NAME }} |

On first run, ciwawa cross-references the workflow's secret refs against GitHub's secret names, then prompts for any values not yet in the local store. Subsequent runs are silent.

PR comment

After every run, ciwawa checks if the current branch has an open PR and posts (or updates) a comment:

🐕 ciwawa CI — owner/repo

| Job    | Status     | Duration |
|--------|------------|----------|
| lint   | ✅ passed  | 12s      |
| test   | ❌ failed  | 34s      |
| build  | ⏭ skipped | —        |

Result: ❌ Failed
Workflow: .github/workflows/ci.yml
Ran at: Thu, 29 May 2026 14:30:22 GMT
Machine: MacBook-Pro.local

License

MIT