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

@stackrail-io/aprf

v0.1.6

Published

APRF CLI — collect evidence, assess from collector statusHints, render REPORT.html (pinned Check catalog)

Readme

@stackrail-io/aprf

Local APRF CLI — collect evidence, assess from collector statusHints, render REPORT.html.

Pinned Check catalog via @stackrail-io/aprf-engine. No StackRail backend required.

Install

npm install -g @stackrail-io/aprf
# or
npx @stackrail-io/aprf@latest version

Requires Node.js ≥ 22.

Cursor: install the plugin under plugins/aprf/ (see its README) — skill/commands call this CLI.

Commands

# Collect evidence graph + per-plugin import reports
aprf collect --target /path/to/app --out ./aprf-assessment

# Score profile mandatories (requires --system-type, or TTY prompt)
aprf assess --out ./aprf-assessment --system-type ai-application --profile core

# Framework / SDK primitive gate (infers systemType=ai-framework)
aprf assess --out ./aprf-assessment --profile framework

# Application with capability lenses (additive)
aprf assess --out ./aprf-assessment --system-type ai-application \
  --capabilities rag,agents --profile core

# Dry-run Check set / claim metadata (skill Phase 0)
aprf resolve-target --system-type ai-framework --json

# Render + verify HTML
aprf report --in ./aprf-assessment/assessment.json --out ./aprf-assessment/REPORT.html
aprf verify ./aprf-assessment/REPORT.html

# One shot: collect → assess → report → verify
aprf audit --target . --out ./aprf-assessment --system-type ai-application --profile core
aprf audit --target . --out ./aprf-assessment --profile framework

Live credentials (collect / audit)

Same flags on collect and audit. Providing --base-url or admin/limited creds auto-enables live mode (no separate --live required). Passwords/tokens are never written to reports.

Prefer environment variables set outside chat (secret manager or non-echoing prompt). Do not pass passwords/tokens on argv — process lists and CI logs can capture them:

# Prerequisites already set in the local shell:
#   APRF_ADMIN_EMAIL + APRF_ADMIN_PASSWORD  — or — APRF_ADMIN_TOKEN
# Optional AUTHZ-M1: APRF_AUTHZ_LIMITED_EMAIL + APRF_AUTHZ_LIMITED_PASSWORD
#   — or — APRF_AUTHZ_LIMITED_TOKEN
npx @stackrail-io/aprf audit --target . --out ./aprf-assessment --system-type ai-application --profile core \
  --base-url http://127.0.0.1:8080

| Flag / Env | Used by | | --- | --- | | --base-url / APRF_AUTH_PROBE_BASE_URL | AUTHN-M1, AUTHZ-M1, AUTHN-M2 | | APRF_ADMIN_TOKEN (or discouraged --admin-token) | AUTHN-M2, AUTHZ-M1 (temp user) | | APRF_ADMIN_EMAIL + APRF_ADMIN_PASSWORD | sign-in → JWT | | APRF_AUTHZ_LIMITED_* | AUTHZ-M1 denial probe |

Other collector evidence: drop measured JSON under ./aprf-assessment/imports/<pluginId>/, or set collector-specific env (e.g. GITHUB_TOKEN with live mode for github-actions).

Assess engine (deterministic)

Aligned with auditor scoring.yaml / confidence.yaml / evidence-precedence.yaml:

  • Status from imports/*/…-report.json statusHint, else collector detail (CHECK status=…)
  • Evidence-graph nodes with relatedCheckIds attached (precedence-ranked)
  • Mandatory gate: every applicable mandatory is PASS or NOT_APPLICABLE
  • NOT_APPLICABLE is excluded (passed: false) — not a vanity pass
  • Default assess scores profile mandatories only (collector hints outside the gate are ignored). --full scores the non-deprecated catalog (ai-application only; forbidden with --system-type ai-framework).
  • Unscored profile Checks → NOT_DEMONSTRATED (blocker if mandatory)
  • recommendedScore = severity-weighted recommended Checks only (null / n/a under default profile assess; use --full to score recommended)
  • audit without --plugins / --full collects only plugins that map to resolver effectiveCheckIds (profile ∪ capabilities ∪ lenses)
  • Required --system-type ai-application|ai-framework|non-ai-platform for assess/audit/resolve-target (TTY prompts when omitted; non-TTY needs the flag, APRF_SYSTEM_TYPE, or --profile framework). No silent Core default.
  • Optional --capabilities chatbot,rag,agents,… (ai-application; additive lenses)
  • Optional --lens rag,agents,voice,coding
  • aprf resolve-target --json prints resolver output for skill/dry-run
  • Framework assessments set assessmentKind=aprf-framework + scope.reportBanner (not a Core production claim)
  • Each control may include informative crosswalks and threatIntel from the pinned catalog (never gate inputs)
  • REPORT.html executive summary includes Top threat exposure across unmet controls

Agent YES/NO/DON'T KNOW attestation fills remain in skills/aprf-auditor.

Versions

| Package | Role | | --- | --- | | @stackrail-io/aprf | This CLI | | @stackrail-io/aprf-engine | Normative Check catalog | | @stackrail-io/aprf-framework-definition | Profiles / lenses / resolveAssessmentTarget |

aprf version prints CLI + catalog SemVer.

License

Apache-2.0