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

registryflow

v0.1.16

Published

A professional CLI tool for managing RegistryFlow projects, components, and registries

Readme

RegistryFlow CLI

A CLI tool for registry flow. Visit registryflow.com for more information.

Installation

Install globally using npm:

npm install -g registryflow

Or using pnpm:

pnpm add -g registryflow

Or using yarn:

yarn global add registryflow

Features

🔐 Authentication

RegistryFlow CLI supports two authentication methods:

  • Browser-based authentication: Interactive login flow with automatic token management
  • Username/Password authentication: Direct login with email and password

⚙️ Configuration Management

Flexible configuration system with global and project-level settings:

  • Global Configuration: Stored at ~/.registryflow/config (user-wide settings)
  • Project Configuration: Stored at .registryflow/config (project-specific settings)
  • Nested Properties: Support for nested configuration using dot notation (e.g., user.name, user.email)
  • Override Priority: Project config automatically overrides global config values
  • Multi-Server Support: Manage multiple servers with automatic token storage and restoration
  • Interactive Server Selection: Easy server switching with an interactive list interface

🎨 Shadcn Integration

RegistryFlow CLI integrates seamlessly with Shadcn CLI for component management:

  • Automatic Package Manager Detection: Automatically detects and uses npm, pnpm, or yarn based on your project's lock files
  • Auto-Installation: Prompts to install Shadcn if not found in your project
  • Unified Interface: All Shadcn commands are available through RegistryFlow CLI with consistent error handling
  • Project Type Support: Initialize both Registry Flow and Shadcn projects from a single command

📦 Default Configuration

On installation, a default global configuration file is automatically created with:

{
  "server": "https://www.registryflow.com",
  "token": ""
}

Usage

After installation, you can use the registryflow command from anywhere:

registryflow [command]

Commands

init

Initialize a new project. Supports both Registry Flow and Shadcn project types.

registryflow init

This will:

  1. Prompt you to select a project type (Registry Flow Project or Shadcn Project)
  2. Initialize the selected project type with the appropriate configuration
  3. Install necessary dependencies

add

Add a component to your project using Shadcn CLI.

registryflow add [components...]

Examples:

# Add a single component
registryflow add button

# Add multiple components
registryflow add button card dialog

# Add with specific options
registryflow add button --overwrite

This command:

  • Automatically detects your package manager (npm, pnpm, or yarn)
  • Executes the Shadcn add command with the specified components
  • Prompts to install Shadcn if not found

diff

Check for updates against the registry using Shadcn CLI.

registryflow diff [component]

Examples:

# Check all components for updates
registryflow diff

# Check a specific component
registryflow diff button

view

View items from the registry using Shadcn CLI.

registryflow view <items...>

Examples:

# View a component
registryflow view button

# View multiple items
registryflow view button card

search / list

Search items from registries using Shadcn CLI.

registryflow search [registries...]
# or
registryflow list [registries...]

Examples:

# Search all registries
registryflow search

# Search specific registries
registryflow search registry1 registry2

migrate

Run a migration using Shadcn CLI.

registryflow migrate [migration]

Examples:

# Run all migrations
registryflow migrate

# Run a specific migration
registryflow migrate v1-to-v2

info

Get information about your project using Shadcn CLI.

registryflow info

Displays project information including:

  • Installed components
  • Configuration details
  • Version information

build

Build components for a registry using Shadcn CLI.

registryflow build [registry]

Examples:

# Build for default registry
registryflow build

# Build for specific registry
registryflow build my-registry

mcp

MCP server and configuration commands using Shadcn CLI.

registryflow mcp

registry:build

Builds the registry [EXPERIMENTAL] using Shadcn CLI.

registryflow registry:build [registry]

Examples:

# Build default registry
registryflow registry:build

# Build specific registry
registryflow registry:build my-registry

registry:mcp

Starts the registry MCP server [DEPRECATED] using Shadcn CLI.

registryflow registry:mcp

Note: This command is deprecated and may be removed in future versions.

login

Login to your RegistryFlow account. Supports two authentication methods:

Browser-based authentication (default):

registryflow login

This will:

  1. Generate an authentication ID
  2. Display a URL to open in your browser
  3. Automatically poll for authentication completion
  4. Save the authentication token to your global config

Username/Password authentication:

registryflow login "[email protected]"

This will:

  1. Prompt for your password (hidden input)
  2. Authenticate with the server
  3. Save the session token and user information to your global config

config

Manage configuration settings for RegistryFlow CLI.

View configuration:

# View global configuration
registryflow config --view --global

# View local/project configuration
registryflow config --view --local

# View global configuration (short form)
registryflow config --global

Set configuration values:

# Set global server URL
registryflow config --global server "https://www.registryflow.com"

# Set global token
registryflow config --global token "your-token-here"

# Set nested properties (e.g., user information)
registryflow config --global user.name "Your Name"
registryflow config --global user.email "[email protected]"

# Set project-local configuration (overrides global)
registryflow config --local server "https://custom-server.com"

Configuration file locations:

  • Global: ~/.registryflow/config
  • Project: .registryflow/config (in your project root)

Nested properties: The config command supports dot notation for nested properties. For example:

  • user.name creates: { "user": { "name": "..." } }
  • user.email creates: { "user": { "email": "..." } }

Both properties will be merged into the same user object.

Server management:

# List all saved servers
registryflow config --list-servers

# Delete a server from the list
registryflow config --delete-server "https://server.com"

create

Create new projects or registry items.

registryflow create

Interactive mode: When run without arguments, prompts you to select what to create:

  • Project: Create a new project from scratch
  • Registry Item: Create a new registry item for publishing

create registry-item

Create a new registry item for publishing to the registry.

registryflow create registry-item

This command:

  1. Prompts you to select a registry (remote or local, or create a new one)
  2. Prompts you to select an item type:
    • Block: Complex components with multiple files
    • Component: Simple components
    • Lib: Libraries and utilities
    • Hook: React hooks
    • UI: UI components and single-file primitives
    • Page: Page or file-based routes
    • File: Miscellaneous files
    • Style: Registry styles
    • Theme: Themes
    • Item: Universal registry items
  3. Prompts for the item name (validated: alphanumeric with "-" or "_" separators)
  4. Creates a git branch for the item (e.g., registryflow_item, registryflow_item_v1)
  5. Creates a local configuration file (.registryflow/config) with registry and item information

Registry selection:

  • Select from existing remote registries (if authenticated)
  • Select from existing local registries
  • Create a new remote registry
  • Create a new local registry

Item name validation:

  • Must contain only letters and numbers
  • Can be separated by "-" or "_"
  • Must start and end with alphanumeric characters
  • Duplicate names are checked against the selected registry

Example:

# Interactive creation
registryflow create registry-item

# The command will guide you through:
# 1. Registry selection
# 2. Item type selection
# 3. Item name input
# 4. Git branch creation

push

Push projects or registry items to registries.

registryflow push

push registry-item

Push a registry item from a git branch to a registry.

registryflow push registry-item

This command:

  1. Lists all git branches starting with registryflow_item (sorted alphabetically)
  2. If no matching branches found, uses the current branch (if it exists)
  3. Prompts you to select which branch to push
  4. Scans for altered files since the initial commit
  5. Creates a diff of changes
  6. Validates that components.json exists in the project
  7. Pushes the item to the selected registry (local or remote)

Requirements:

  • Must be run in a project directory with a components.json file
  • Must have a git repository initialized
  • Must have at least one branch (either registryflow_item* or current branch)

Workflow:

  1. Create a registry item using registryflow create registry-item
  2. Make changes to your files
  3. Commit changes to the git branch
  4. Push the item using registryflow push registry-item

Example:

# After creating and editing a registry item
registryflow push registry-item

# Select the branch to push from the list
# The command will:
# 1. Scan for changed files
# 2. Create a diff
# 3. Push to the registry specified in .registryflow/config

servers

List and interactively select a server from your saved servers.

registryflow servers

This command provides an interactive interface to:

  1. View the current server (if set) with its token status
  2. Browse all saved servers in an interactive list
  3. Select a server using arrow keys or by entering a number
  4. Automatically restore the authentication token for the selected server (if available)

Features:

  • Interactive selection using inquirer with numbered options
  • Shows token status for each server (masked for security)
  • Automatically restores tokens when switching to previously used servers
  • Current server is clearly marked in the list
  • Cancel option available

Example output:

📍 Current Server: https://www.registryflow.com
   Token: ***xyz9

? Select a server (enter number):

How servers are saved: Servers are automatically added to the servers list when you:

  • Switch between different servers using config --global server
  • Login to a server (the server and token are saved together)

Configuration Examples

Setting up your server

registryflow config --global server "https://www.registryflow.com"

Setting user information

registryflow config --global user.name "John Doe"
registryflow config --global user.email "[email protected]"

Project-specific configuration

# In your project directory
registryflow config --local server "https://staging.registryflow.com"

Learn More

Visit registryflow.com to learn more about RegistryFlow.