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

alex-c-line

v1.28.1

Published

Command-line tool with commands to streamline the developer workflow.

Readme

alex-c-line

npm version npm downloads npm license

CI Publish to NPM Registry and GitHub Releases

This is my command-line tool, which serves as a developer toolkit that can be used in any repository to streamline the developer workflow. It provides a flexible configuration system so you can customise its behaviour to match your workflow.

alex-c-line is designed to be developer-first, opinionated where it matters, and safe by default, especially when mutating repository state.

Installation

To install the command-line tool, you can do this locally per working repository using the following command:

npm install alex-c-line

npm may be replaced with your package manager of choice.

Alternatively, you can install it globally for usage all throughout your system, in any working repository. This will allow you to then use alex-c-line in repositories that may not even necessarily support it directly, so you can still feel the benefits of some of the more context-agnostic commands.

npm install -g alex-c-line

Quick start

You can use any command by typing out alex-c-line in the terminal, followed by the command you want to run. For example:

alex-c-line say-hello

Some commands may even take extra arguments. For example:

alex-c-line increment-version v1.2.3 major

Flags may also be passed through in the following way.

alex-c-line increment-version v1.2.3 major --no-prefix

Note that for use-local-package specifically, you will need to add -- before the local alex-c-line arguments to ensure that all flags get passed through correctly. Example:

alex-c-line use-local-package alex-c-line -- increment-version v1.2.3 major --no-prefix

Configs

Some commands also support usage of the config system. For example, pre-commit-2 supports the alex-c-line.config.js file, and use-local-package supports the more user-specific .alex-c-line.private.config.js file. alex-c-line.config.js is intended for shared configurations per repository, whereas .alex-c-line.private.config.js are for configurations specific to the user's usage.

The configs subpath provides some helper functions and types that may be helpful when constructing these configs. Namely, defineAlexCLineConfig can be used as a type helper, so that you get better type hints in the editor.

import { defineAlexCLineConfig } from "alex-c-line/configs";

export default defineAlexCLineConfig({
  createPullRequestTemplate: {
    category: "general",
    projectType: "package",
  },
  preCommit: {
    packageManager: "pnpm",
    steps: ["build", "format", "lint", "test"],
  },
})

Alternatively, you can create a TypeScript file, then build it to a pure JavaScript file, and the benefit of that is that you'd be able to use the types directly instead, which may be better as it even takes a type argument for the pre-commit steps.

import type { AlexCLineConfig } from "alex-c-line/configs";

import { scripts } from "./package.json" with { type: "json" };

const alexCLineConfig: AlexCLineConfig<keyof typeof scripts> = {
  createPullRequestTemplate: {
    category: "general",
    projectType: "package",
  },
  preCommit: {
    packageManager: "pnpm",
    steps: ["build", "format", "lint", "test"],
  },
};

export default alexCLineConfig;

Note, however, that we do not support directly running config files with TypeScript just yet. This may be planned in the near future, but for now, building the pure TypeScript file to pure JavaScript and using that as the config file is the best bet as of now.

Private configs can be treated in the same way, except the type would be AlexCLinePrivateConfig, and the function defineAlexCLinePrivateConfig. Please also note that if you create a private config in a shared repository, it MUST be added to .gitignore so that it stays user-specific and does not get included in version control.

Documentation

A full documentation site is coming soon. In the meantime, you may run alex-c-line --help for more information about how to use all commands.