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

@pagopa/dx-cli

v0.27.29

Published

A CLI useful to manage DX tools.

Readme

@pagopa/dx-cli

DX CLI

📖 Overview

The DX CLI is a command-line tool designed to help developers manage and validate their development setup according to PagoPA's DevEx guidelines. It provides automated checks and validations to ensure repositories follow the established best practices and conventions.

✨ Features

  • Repository Validation: Verify repository setup against DevEx guidelines with the doctor command
  • Code Migrations: Apply automated migration scripts (codemods) to update code and configurations
  • Project Initialization: Bootstrap new monorepo projects with standardized structure
  • Command Specification: Export a machine-readable schema of the CLI command surface
  • Cost Optimization: Analyze Azure subscriptions to identify unused or underutilized resources
  • Project Information: Display comprehensive information about your project setup and tools
  • Developer Experience Optimization: Ensure consistent development practices across projects

🚀 Installation

Install the CLI globally using your preferred package manager:

# Using npm
npm install -g @pagopa/dx-cli

# Using yarn
yarn global add @pagopa/dx-cli

# Using pnpm
pnpm add -g @pagopa/dx-cli

From Source (Development)

# Clone the repository
git clone https://github.com/pagopa/dx.git
cd dx

# Install dependencies (using npm)
npm install

# Or using yarn
yarn install

# Or using pnpm
pnpm install

# Build the CLI
npm run build
# Or: yarn build
# Or: pnpm build

# Run the CLI
node ./apps/cli/bin/index.js --help

🔐 Authentication

The CLI requires GitHub authentication for every command except --version and --help. Authenticate using one of the following (checked in this order):

  1. The GH_TOKEN environment variable
  2. The GITHUB_TOKEN environment variable
  3. The GitHub CLI — run gh auth login

If no credential is found, the CLI exits with an error asking you to log in.

Telemetry is emitted only for members of the pagopa GitHub organization; all other users can use the CLI normally with telemetry disabled.

🛠️ Usage

Available Commands

doctor

Verify the repository setup according to the DevEx guidelines.

dx doctor

This command will:

  • Check if you're in a valid Git repository
  • Validate that required monorepo scripts are present in package.json
  • Check that the turbo.json file exists
  • Verify that the installed turbo version meets the minimum requirements

Example output:

$ dx doctor
Checking monorepo scripts...
✅ Monorepo scripts are correctly set up

codemod

Manage and apply migration scripts (codemods) to the repository.

# List available codemods
dx codemod list

# Apply a specific codemod by ID
dx codemod apply <id>

This command helps you:

  • View all available migration scripts for your repository
  • Apply automated code transformations to keep your codebase up to date
  • Migrate configurations and code patterns to newer standards

init

Bootstrap a new monorepo project with standardized structure and optional remote repository provisioning.

dx init

This command will:

  • Check that required tools (Terraform CLI and Corepack) are installed
  • Interactively prompt for repository name, GitHub organization, and description
  • Check that the target GitHub repository does not already exist before proceeding
  • Generate a monorepo structure following PagoPA DevEx guidelines
  • Ask whether the scaffolded workspace should be published to GitHub immediately
  • If confirmed, create the remote GitHub repository using Terraform and push the initial codebase

If the specified GitHub repository already exists, the command will fail early with a clear error message, preventing accidental overwrites.

Example usage:

$ dx init
? Name my-monorepo
? GitHub Organization pagopa
? Description My new PagoPA monorepo
? The project is created on my-monorepo. Would you like to publish it to GitHub at pagopa/my-monorepo now? Yes
...

✔ Terraform CLI is installed!
✔ Workspace files created successfully!
✔ GitHub repository created successfully!
✔ Code pushed to GitHub successfully!

Workspace created successfully!
- Name: my-monorepo
- GitHub Repository: https://github.com/pagopa/my-monorepo

[!NOTE] The command will fail early if required tools are missing. If you choose not to publish immediately, the CLI prints the manual Terraform and git steps required to finish the setup later.

spec

Print the full CLI specification as JSON.

dx spec

This command is useful when you want to:

  • Discover commands, arguments, and options programmatically
  • Build automation or agentic workflows without scraping --help output
  • Inspect the current CLI surface in a stable JSON format

Example output:

{
  "name": "dx",
  "specVersion": "1",
  "version": "0.23.2",
  "commands": []
}

info

Display comprehensive information about your project setup and tools.

dx info

This command provides:

  • Current project configuration details
  • Installed tool versions
  • Repository metadata
  • Development environment information

Global Options

These options are available on every subcommand:

  • --verbose, -v: Enable verbose output. Lowers the log level to debug so that detailed progress information is emitted, and — when a command fails — prints the full error details, including the underlying cause chain and stack trace, instead of only the top-level message. Defaults to false.
  • --version, -V: Display version number
  • --help, -h: Display help information

Example:

# Re-run a failing command with full diagnostics
dx --verbose init project

🧪 Development

Run the CLI test suite from the repository root with:

pnpm nx test @pagopa/dx-cli

Some integration tests assert generated file contents with Vitest snapshots. When a generator change intentionally updates those files, refresh the snapshots with:

pnpm nx test @pagopa/dx-cli -- --update

Review the updated __snapshots__ files before committing them.


Made with ❤️ by the PagoPA DevEx Team