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

@tenora/cli

v0.2.1

Published

Standalone Tenora CLI

Readme

@tenora/cli

Standalone Tenora CLI package.

@tenora/cli provides the tenora command so users can run migrations/seeds and tenant-wide DB operations without relying on a specific runtime package install layout.

Why @tenora/cli?

  • Install globally and run tenora anywhere.
  • Install project-local and run via npx tenora.
  • Keep CLI concerns separate from application runtime code.

Installation

Global install:

npm install -g @tenora/cli

Project-local install:

npm install -D @tenora/cli
npx tenora list

Commands

  • tenora migrate (alias migrate:base)
  • tenora rollback (alias rollback:base)
  • tenora migrate:tenants
  • tenora rollback:tenants
  • tenora make:migration <name> (alias make:migration:base)
  • tenora make:migration:tenants <name>
  • tenora make:seed <name> (alias make:seed:base)
  • tenora make:seed:tenants <name>
  • tenora seed:run (alias seed:run:base)
  • tenora seed:run:tenants
  • tenora list

Common options

  • -c, --config <path>: explicit config file path.
  • --create-base: create the base DB if it does not exist.
  • --esm / --cjs: template module format override for make:migration* and make:seed*.

Config lookup

If --config is not set, CLI checks this order from current working directory:

  • tenora.config.js
  • tenora.config.mjs
  • tenora.config.ts

You can also set TENORA_CONFIG.

Example workflow

# Create base DB if needed and run base migrations
tenora migrate --create-base

# Run tenant migrations for all tenants in registry
tenora migrate:tenants

# Generate a tenant migration template
tenora make:migration:tenants add_status_to_invoices

# Run tenant seeds
tenora seed:run:tenants

Notes

  • Registry migration is auto-generated if missing when running base migrate.
  • make:migration:* requires configured migrations directories.
  • make:seed:* and seed:run* require configured seed directories.
  • Template output defaults to nearest package.json module type unless overridden.
  • For global CLI installs, keep your DB driver in the target project (for example pg, mysql2, mariadb, sqlite3, or mssql).

Relationship to other packages

  • Depends on @tenora/core for shared CLI + factory internals.
  • Can be installed and used independently by end users.