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

@theaiinc/valkyrie-cli

v0.1.6

Published

Standalone Valkyrie QA MCP framework and autonomous smoke testing CLI.

Downloads

1,140

Readme

TestFlight feedback

The standalone Valkyrie dashboard accepts normalized TestFlight feedback at POST /api/integrations/testflight/feedback and displays the read-only local queue in its TestFlight feedback panel. See docs/testflight-feedback.md for the payload, HMAC signature, curl example, and production persistence limitations.

@theaiinc/valkyrie-cli

The @theaiinc/valkyrie-cli package contains the Valkyrie QA MCP framework and the typed project configuration contract used by the standalone dashboard. The framework is English-only; the rental product remains separate and Vietnamese-only.

The framework provides QA/MCP orchestration, typed project registries, browser evidence helpers, and autonomous smoke-testing workflows. It is maintained independently from the Arion rental application and its dashboard.

Root Repository Commands

npm test
npm run valkyrie:mcp
npm run valkyrie:explore
npm run valkyrie:report
not included in this repository
not included in this repository

npm test runs the package's safe MCP/unit tests and does not require secrets. The moved dashboard lives in apps/qa and runs at http://localhost:3020:

cd apps/qa
npm install
npm run dev

Automated exploration modes may require the rental app to be running:

npm run dev -- -p 3010
npm run valkyrie:explore

The published CLI exposes both valkyrie (primary) and valk (alias) binaries. Run the MCP server with either alias:

npm install
npx valkyrie --mcp
valkyrie --mcp
valk --mcp

Interactive initialization

Run the configuration wizard from the workspace you want to configure:

valk init
# equivalent:
valkyrie --init
npm run valkyrie:init

The wizard prompts for project id/name, environment, spec and evidence paths, artifact directory, and storage provider (local, gcs, s3, or r2). Cloud providers additionally prompt for non-secret bucket/region/account/endpoint identifiers. It writes .valkyrie/config.yaml and, when absent, .valk.env; credential fields contain only REPLACE_ME placeholders. Existing configuration is shown as the default and is not overwritten without confirmation.

For CI or scripts, no prompt is opened:

VALKYRIE_NON_INTERACTIVE=true valk init
valk init --non-interactive --storage-provider local --force
valk init --non-interactive --storage-provider r2 --bucket qa-artifacts --account-id ACCOUNT_ID

Non-interactive mode keeps an existing config unless --force is supplied. It never reads, prints, or stores credential values. .valk.env is ignored by git; use .valk.env.example as the safe template for local/cloud variable names. valk --mcp remains non-interactive.

The legacy --mode mcp form remains accepted for compatibility. Cursor should invoke the moved scripts/valkyrie.ts entrypoint with --mcp.

Configuration

Defaults are defined in valkyrie.config.yaml:

  • Base URL QA: http://localhost:3010.
  • Spec package: spec.
  • Artifact runtime: qa/valkyrie-runs.
  • Current browser evidence manifest: qa/browser-evidence.json.
  • Current screenshot evidence: qa/screenshots.

Never print .env values, service-role keys, webhook secrets, or LLM keys in QA logs. To run an LLM-backed mode, provide LLM_PROVIDER, LLM_MODEL, and LLM_API_KEY through a private local/CI environment.

Project registration uses the private .valk.env file for VALKYRIE_API_KEY; the CLI does not load the dashboard or registry .env. The key is never written to generated configuration or printed.

External QA UI

The read-only QA dashboard is maintained in apps/qa. It does not read .env in the browser or write rental application data. With AEGIS_AUTH_REQUIRED=true, its server routes require an existing Aegis identity and only expose authorized project context.

Multiple projects

The shared schema is in projects/types.ts. A project has an id, display metadata, environment.baseUrl, plans, testCases, evidence, blockers, an evidenceRun, and aggregate stats. The registry helper in projects/registry.ts validates duplicate IDs.

The arion-rent project is assembled from the existing spec/*, QA_TEST_PLAN.md, QA_EVIDENCE.md, and qa/browser-evidence.json data in the Arion repository. The Valkyrie project (stable id qa-framework) covers this package and the standalone dashboard using its own tests, specs, and documentation. It has no screenshot evidence until a dedicated framework browser run captures it.

Copyable test-case references

Each standalone-dashboard test-case card and detail modal offers Copy reference. It copies the stable project, environment, test-plan, and test-case IDs from the typed registry, plus names, status, evidence/screenshot information, and a suggested coding-agent context block. See docs/test-case-references.md for the exact format and clipboard fallback behavior. The prompt is context for an agent request only; it does not imply automatic fixing.

To add a project, define a typed object in projects, give it a unique stable id, set its environment, plans, test cases, blockers, and real evidence references, then add it to the createQaProjectRegistry([...]) call used by the dashboard. This is a typed TypeScript configuration path; it contains no secrets. Changes require restarting the QA dev server (and rebuilding for production). There is no runtime persistence or authentication for project configuration.

Each project declares one or more URL-only environments with a stable id, display name, baseUrl, optional apiUrl, isDefault, and status (active, inactive, or planned). Add local, staging, or production environments to the project object; the dashboard selector and query state derive from that list without UI changes. Evidence may optionally set environmentId; evidence for another environment is not shown as current proof, and missing evidence remains explicitly unavailable.

Arion Specs

The spec files are tailored to the current MVP:

  • spec/project_config.yaml: route, manifest, and app startup configuration.
  • spec/journey_graph.yaml: landing page, public booking, payments, owner dashboard, reporting, and webhooks.
  • spec/domain_rules.yaml: Vietnamese rental-app copy, missing Supabase schema, private Storage, QR/bank transfer payments, and OM secret headers.
  • spec/blockers.yaml: setup states, disabled forms, missing payment data, destructive confirmations, and the secret-output hard stop.

The Arion rental app and its QA dashboard remain in their own repository; this standalone package should reference external projects through explicit environment paths when needed.