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

prima-cli

v0.0.0

Published

High-level browser driver CLI for orchestrating agents

Readme

prima-cli

Prima is a high-level AI browser driver. You describe the behaviour you want checked, and it works out how to reach it — instead of writing selectors and step-by-step click paths.

It drives a browser opened by playwright-cli, or one of its own.

npx prima-cli check "a workflow can be created and appears in the list" --expected "the new workflow is listed"

Install

npx prima-cli --help          # no install
npm install -g prima-cli      # or install it

Requires Node.js 24+. Playwright browsers come from npx playwright install chromium.

Session

Prima needs a browser to drive. Either attach to a playwright-cli session:

playwright-cli open https://app.example.com
prima-cli check "the settings page saves a changed theme"
playwright-cli close

Or let prima own the browser:

prima-cli browser start --url https://app.example.com
prima-cli do "open the account menu" "choose the settings entry"
prima-cli browser stop

Commands

| Command | What it does | | --- | --- | | check <scenario> | Run a scenario end to end as a test, verify it, and report the steps it took | | do <instructions...> | Run high-level instructions tester-style, one argument per instruction | | verify <assertion> | Assert a statement about the current page | | ask <question> | Answer a question about the current page | | research | Map the current page and return verified locators | | go <target> | Navigate to a url, a path, or a page described in plain words | | pw <fn> | Run a Playwright function expression against the open page | | status <hash> | Show the artifacts and page detail recorded for an earlier command | | report | Turn every command of a session into one html and markdown report | | browser start\|stop\|status\|list | Manage the browsers prima drives | | config | Show models, config file and paths used by this run |

check takes an outcome rather than a click path. It runs on the page you are already on and never reloads it, so an open dialog survives the check. Each --expected outcome comes back as PASSED, FAILED, CONTRADICTION or not verified — settled against a screenshot of the whole page, because what a user can see is the proof.

do accounts for every instruction you gave: each is reported as ok, FAIL or ??. Nothing runs past the last instruction.

AI model

Prima needs a model. It reads the same explorbot.config.js as explorbot, and the same EXPLORBOT_* environment variables — so no config file is needed if you point it at a provider through the environment:

export EXPLORBOT_AI_PROVIDER=openrouter
export OPENROUTER_API_KEY=...
prima-cli --ephemeral check "the settings page saves a changed theme"

--ephemeral keeps no state between runs and writes output to a temp directory. prima-cli config prints the models, config file and paths a given directory and environment resolve to. Providers: openai, anthropic, google, groq, mistral, openrouter, sambanova.

Without a model pw still works, since it runs Playwright directly.

Agents

Prima is built to be called by a coding agent: one call takes a whole job, and the reply is a compact report rather than a browser transcript. Point your agent at prima-cli --help and it will find its way.

License

Elastic-2.0. Part of explorbot.