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

@tertium/hlpr

v0.5.8

Published

Windows and *Nix utility for typical programming activity

Downloads

149

Readme

hlpr

A CLI utility for running shell scripts with variable substitution and TypeScript-based commands.

Platform Support

hlpr works on all major operating systems:

  • Linux - Fully supported
  • macOS - Fully supported
  • Windows - Requires Git for Windows (includes Git Bash)

Note for Windows users: Shell script commands (.sh files) require Bash, which is included with Git for Windows. TypeScript commands work on all platforms.

Installation

# Install globally
npm install -g @tertium/hlpr

# Or with yarn
yarn global add @tertium/hlpr

# Or locally in your project
npm install @tertium/hlpr

Usage

# Basic usage
hlpr <category> <command>

# Examples
hlpr git fodd
hlpr hello world
hlpr ssh init dir

# TypeScript commands (nested structure)
hlpr file rename <directory> <style> [--dry|-n]

# Continue execution even if commands fail
hlpr -f ssh init dir

Available Commands

TypeScript Commands

file rename

Recursively rename files and folders according to a specific case style.

Supported styles:

  • title_underscore - Title_Case_With_Underscores
  • snake - snake_case_lowercase
  • kebab - kebab-case-lowercase
  • camel - camelCaseLowerFirst
  • pascal - PascalCaseUpperFirst
  • upper - UPPER_CASE_WITH_UNDERSCORES
  • lower - lower_case_with_underscores

Usage:

# Dry run (preview changes without applying)
hlpr file rename ./my-project kebab --dry
hlpr file rename ./src snake -n

# Apply changes
hlpr file rename ./my-project kebab
hlpr file rename ./docs pascal

Features:

  • ✅ Recursive directory traversal
  • ✅ Extension preservation
  • ✅ Leading dot file support (e.g., .gitignore)
  • ✅ Case-only rename handling (Windows compatibility)
  • ✅ Conflict resolution (adds _N suffix)
  • ✅ Dry-run mode (--dry or -n)

See: src/commands/file/rename/README.md for full documentation.


help

Display help information about hlpr commands.

Usage:

hlpr help

Shell Script Commands

Shell scripts support variable substitution using {{variable}} syntax.

git

Helpful git utilities for common development workflows.

Usage:

hlpr git <command>

Commands:

  • fodd - Fetch and update develop branch from origin
  • precommit - Run build and stage binaries before commit
  • switch-clean - Safely switch to a branch and delete the previous one (local & remote)

See: src/commands/git/README.md for full documentation.


hello

Example/demo commands for testing the hlpr CLI tool.

Usage:

hlpr hello world

Prompts for input and prints a personalized greeting with variable substitution.

See: src/commands/hello/README.md for full documentation.


nvm

Node Version Manager utilities for managing Node.js versions.

Usage:

hlpr nvm <command>

Commands:

  • install - Install Node Version Manager (nvm)
  • lts - Install and use Node.js LTS version

See: src/commands/nvm/README.md for full documentation.


ssh

SSH configuration and setup utilities.

Usage:

hlpr ssh init-dir

Initializes SSH directory with proper permissions:

  • ~/.ssh/ directory with 700 permissions
  • ~/.ssh/known_hosts with 644 permissions
  • ~/.ssh/config with 644 permissions

Portable across Unix/Linux/macOS and Git Bash on Windows.

See: src/commands/ssh/README.md for full documentation.

How It Works

Shell Scripts

  1. The command hlpr hello world looks for a script at commands/hello/world.sh
  2. If the script contains variables like {{name}}, you'll be prompted to enter values
  3. Each line of the script is executed with the variables replaced

TypeScript Commands

  1. The command hlpr file rename looks for a script at commands/file/rename/rename.ts
  2. Arguments are passed directly to the TypeScript module
  3. The module is executed with Bun runtime

Directory Structure

commands/
├── file/
│   └── rename/
│       ├── rename.ts
│       ├── rename.test.ts
│       └── README.md
├── git/
│   └── fodd.sh
├── hello/
│   └── world.sh
├── nvm/
│   ├── install.sh
│   └── lts.sh
└── ssh/
    └── initdir.sh

Adding Your Own Scripts

Shell Scripts

  1. Create a directory structure in commands/<category>/
  2. Add your .sh script files
  3. Use {{variable}} syntax for user inputs

Example script (commands/hello/world.sh):

echo "Hello World, {{name}}"

TypeScript Commands

  1. Create a nested directory structure in commands/<category>/<command>/
  2. Add your TypeScript file named <command>.ts
  3. Implement CLI argument parsing and logic
  4. Optionally add tests in <command>.test.ts

Example structure:

commands/
└── file/
    └── rename/
        ├── rename.ts      # Main implementation
        ├── rename.test.ts # Tests
        └── README.md      # Documentation

Command Naming

The utility maps command arguments to script files:

Shell Scripts:

  • hlpr git fodd → runs commands/git/fodd.sh
  • hlpr hello world → runs commands/hello/world.sh
  • hlpr ssh init dir → runs commands/ssh/initdir.sh

TypeScript Commands:

  • hlpr file rename <args> → runs commands/file/rename/rename.ts

Error Handling

By default, the utility stops execution if any command fails. Use the -f flag to continue execution despite failures:

# Stop on first failure (default)
hlpr ssh init dir

# Continue despite failures
hlpr -f ssh init dir

Development

# Clone the repository
git clone https://github.com/tertiumnon/hlpr.git

# Install dependencies
npm install

# Build the project
bun run build

# Link for local development
npm link

License

MIT