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

@aphrody/ovh

v0.1.1

Published

Safe multi-profile OVH health and inventory monitor

Readme

@aphrody/ovh

Safe, non-interactive OVH profile selection and health polling for Aphrody.

Supported profiles are fixed and intentionally small:

| Profile | Credential source | Scope | | --- | --- | --- | | aphrody.com | ~/.bash_secrets | aphrody.com, rpbey.fr | | rosegriffon.fr | ~/.ovh.conf | rosegriffon.fr | | dragonballfr.com | ~/.config/ovh/dbfr.conf | dragonballfr.com |

The loader reads only the allowlisted file and the three OVH_* keys below. It never logs or copies credential values. Quoted values and export KEY=value syntax are supported; shell expansion is deliberately not evaluated. On POSIX, credential files must not be readable by group or other users, and symlinks are rejected. The Let’s Encrypt credentials file used by certificate renewal is outside this package’s API credential loader and is never read.

Create each source with:

OVH_APPLICATION_KEY=...
OVH_APPLICATION_SECRET=...
OVH_CONSUMER_KEY=...

OVH_PROFILE selects the default; --profile takes precedence. init creates the local configuration directory but does not ask for or write credentials.

Push-Location packages/ovh
bun run init
bun run profiles
$env:OVH_PROFILE="aphrody.com"; bun run check
bun ./src/cli.ts vps --profile aphrody.com --service vps-203bea89.vps.ovh.net
bun ./src/cli.ts domain --profile aphrody.com --name aphrody.com
bun ./src/cli.ts monitor --profile dragonballfr.com --interval 60000
Pop-Location

profiles prints metadata only. check performs an authenticated /me health probe through @ovh-api/api; it exits with status 1 when authentication fails. monitor emits one JSON snapshot per interval and stops cleanly on SIGINT. vps collects the VPS details, datacenter, IPs, automated-backup settings, and subscription status through read-only endpoints. domain collects the zone status, nameservers, DNSSEC/Anycast state, subscription dates, and DNS records. Only domains listed for the selected profile are accepted. The API client stays behind createClient, and inventory helpers accept a request client so tests can run without network access or credentials.

Package checks:

bun run --cwd packages/ovh typecheck
bun run --cwd packages/ovh test