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

@profullstack/saasrow

v0.1.0

Published

Command-line client for saasrow.com: search the software directory, and create and manage your free listings and API keys from the terminal.

Downloads

112

Readme

@profullstack/saasrow

The saasrow.com software directory from your terminal. Search the directory without an account; create and manage your own free listings and API keys with one.

npm install -g @profullstack/saasrow
# or run it without installing
npx @profullstack/saasrow --help

Node 20.11 or newer. No dependencies.

Sign in

saasrow login

You are asked for an email address, a one-time code is mailed to it, and you type the code back. There is no password: proving you can read the inbox is the account, the same way the website's management links work. The command creates an API key named after your machine and stores it in ~/.profullstack/saasrow/config.json (mode 0600).

For scripts and agents, skip the file and set SAASROW_API_KEY instead. It wins over the stored key.

saasrow whoami
saasrow logout            # forget the local key
saasrow logout --revoke   # and revoke it on the server

Listings

saasrow listings create \
  --name "Acme Analytics" \
  --website https://acme.example \
  --description "Privacy-first product analytics you can self-host." \
  --category Analytics \
  --tags analytics,privacy,self-hosted \
  --use-cases analytics \
  --audiences developers \
  --platforms web \
  --pricing-model freemium \
  --alternatives "Google Analytics,Mixpanel"

saasrow listings list
saasrow listings get <id>
saasrow listings update <id> --description "…"
saasrow listings delete <id>

A new listing is reviewed before it appears in the directory, exactly like a submission from the website. --from listing.json reads the same fields from a file (--from - reads stdin); flags override individual fields on top of it. Run saasrow vocabulary for the accepted use case, audience, platform and pricing terms; anything outside the vocabulary is dropped rather than rejected.

API keys

saasrow keys list
saasrow keys create "CI deploy"       # prints the key once
saasrow keys rename sr_abcd1234 "Laptop"
saasrow keys revoke sr_abcd1234

Keys can be addressed by full id or by the sr_… prefix shown in the list. The same keys work for the REST API (Authorization: Bearer …) and the MCP server:

claude mcp add --transport http saasrow https://www.saasrow.com/api/mcp \
  --header "Authorization: Bearer sr_…"

Directory

saasrow search "analytics" --pricing-model free --limit 10
saasrow search --alternative-to Notion
saasrow categories
saasrow vocabulary

Output

Every command accepts --json and then prints the raw API response, so the output is safe to pipe into jq or hand to an agent. Human-readable output goes to stdout; progress and hints go to stderr.

Exit codes: 0 success, 1 the server said no, 2 usage error.

Configuration

| What | Where | | --- | --- | | Stored key | ~/.profullstack/saasrow/config.json | | Override the file | SAASROW_CONFIG=/path/to/file.json | | Override the directory | SAASROW_HOME=/dir or PROFULLSTACK_HOME=/dir | | Key from the environment | SAASROW_API_KEY=sr_… | | Different server | --api-url https://… or SAASROW_API_URL |

The API itself is documented at https://www.saasrow.com/api/v1.