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

@sailfish-ai/auto-install

v0.1.5

Published

Sailfish Veritas — npx auto-installer for Sailfish data collection libraries. Detects your project's language and framework, then uses your AI coding agent to install and wire up the correct Veritas library (sf-veritas, recorder, or Python sf-veritas) wit

Readme

@sailfish-ai/auto-install

npx auto-installer for Sailfish Veritas data collection libraries. The Sailfish web app generates a one-liner command you paste into your terminal, and this CLI hands the installation off to whatever AI coding agent you already have.

Quick start

From the Sailfish web app, copy the generated command:

npx @sailfish-ai/auto-install --api-key=sk_xxx

Run it in your project directory. The CLI will:

  1. Detect which AI coding agent you have installed.
  2. Write a hydrated SKILL.md into that agent's skill directory, listing the per-language install-doc URLs at docs.sailfish.ai, substituting your API key, and adding cross-cutting guardrails (SSR guard for the frontend recorder, secret-store guidance, build-verification rules).
  3. Tell you to open your agent and invoke the skill.

When you run the skill, your agent fetches the URL for the matching language at runtime, follows the docs verbatim, stores the API key in your .env, verifies the build, and reports back.

What gets installed where

The skill lists the canonical install-doc URL for every supported language. The AI agent reads your project, decides which language(s) apply, fetches the matching URL(s), and follows the docs. A single project can match more than one language (e.g. a monorepo with both a Python backend and a Next.js frontend).

| Your project | Package | Canonical install doc | | -------------------------------------------------------- | ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | | JS/TS backend (Express, NestJS, Fastify, Next.js server) | @sailfish-ai/sf-veritas | backend/javascript-typescript | | JS/TS frontend (React, Next.js, Vite, CRA) | @sailfish-ai/recorder | frontend/javascript-typescript | | Python (Django, Flask, FastAPI, Starlette) | sf-veritas (PyPI) | backend/python | | C# / .NET | sf-veritas (NuGet) | backend/c-sharp | | Go | github.com/SailfishAI/sf-veritas-go | backend/go | | Java | ai.sailfish:sf-veritas (Maven) | backend/java | | PHP | sailfish-ai/sf-veritas (Composer) | backend/php | | Ruby | sf_veritas (RubyGems) | backend/ruby |

Commands

# Install (default command — can be omitted). Writes the skill to
# every detected agent on the system.
npx @sailfish-ai/auto-install --api-key=sk_xxx --domains='*.acme.com'

# Interactive mode — prompts for API key
npx @sailfish-ai/auto-install

# Only fetch the doc for one language (skips the others)
npx @sailfish-ai/auto-install --api-key=sk_xxx --domains='*' --language=python

# Only configure specific agents
npx @sailfish-ai/auto-install --api-key=sk_xxx --domains='*' --agents=claude-code,cursor

# Single-agent mode — write the skill, auto-launch the agent's CLI
npx @sailfish-ai/auto-install --api-key=sk_xxx --domains='*' --agent=claude-code

# Project-local install (commit the skill into the repo). Requires --agent.
npx @sailfish-ai/auto-install --api-key=sk_xxx --domains='*' --agent=claude-code --local

# Point at a staging docs site or a local checkout (air-gapped)
npx @sailfish-ai/auto-install --api-key=sk_xxx --domains='*' --docs-base-url=/path/to/sailfish

# Show status across detected agents
npx @sailfish-ai/auto-install status

# Remove the install-skill (does not touch code the agent already wrote)
npx @sailfish-ai/auto-install uninstall

Configuration

| Flag | Env var | Description | | ----------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --api-key | SAILFISH_API_KEY | Required. Your Sailfish API key from the web app. | | --domains | — | Optional. CSV wildcard allowlist baked into the SDK's domainsToPropagateHeadersTo (e.g. *.acme.com,*.internal.acme.io). Defaults to * (propagate tracing headers to every outbound host). The web app's "Copy npx command" button fills this in from your CompanyDomain table. | | --agent | — | Target a single agent and auto-launch its CLI with the skill command pre-queued. One of: claude-code, cursor, copilot, codex, opencode, windsurf, gemini, goose, other. | | --agents | — | Comma-separated list of agents to configure. Default: all detected agents on this system. | | --language | — | Fetch only one language's README. One of: jsts-backend, jsts-frontend, python, csharp, golang, java, php, ruby. Default: all supported languages. | | --local | — | Install the skill into the current project (./.<agent>/skills/ + ./.agents/skills/) instead of the user-wide default. Requires --agent=<id>. Default: user-wide install at ~/.<agent>/skills/ + ~/.agents/skills/. | | --print | — | Don't write anything; just print the command the user would type inside their agent to invoke the skill. Used by the web app's preview flow. | | --docs-base-url | SAILFISH_DOCS_BASE_URL | Override the docs source. Accepts an HTTPS URL, a file:// URI, or a plain local filesystem path. Default: https://docs.sailfish.ai. | | -y, --yes | — | Skip all confirmation prompts. |

Air-gapped / self-hosted environments

Pass --docs-base-url pointing at either a self-hosted docs mirror or a local checkout of the monorepo:

# Fetch from a local clone of the Sailfish monorepo
npx @sailfish-ai/auto-install \
  --api-key=sk_xxx \
  --docs-base-url=/Users/you/code/sailfish

# Fetch from a private docs mirror
npx @sailfish-ai/auto-install \
  --api-key=sk_xxx \
  --docs-base-url=https://docs.internal.example.com/sailfish

If any doc fetch fails, the CLI still installs the skill — the affected language section is replaced with a stub note pointing the agent at the canonical URL so the user can follow it manually.

Security

  • The API key is written into the SKILL.md at ~/.agents/skills/autoinstall-sailfish-veritas/SKILL.md with mode 0600.
  • The skill explicitly tells the agent to never commit the API key and to verify .gitignore before writing to .env.
  • Run npx @sailfish-ai/auto-install uninstall to remove the skill file (and its on-disk copy of the key) once the install is complete.