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

projecthor

v0.0.5

Published

Save, manage, and run project setup commands automatically from the CLI.

Readme

Projecthor

projector-logo

Table of Content

Purpose

Working on multiple projects at once? Tired of juggling windows or resetting workspaces just to check something? Projecthor makes it simple, just:

  1. Save the project setup
  2. Load it whenever you want with a single command

Projecthor runs for you all the commands required to set your projects up and running.

Requirements

  • Node.js >= 16
  • npm or yarn (to install dependencies)
  • Optional but recommended: Git (if cloning the repo)

Install

npm install --global projecthor

Design

Each project record has three fields:

  • Name - used by projecthor as project identifier
  • Folder - usually the project root folder (all setup commands run here!)
  • Commands - list of commands to execute in the folder

Documentation

Save a Project

You can save a project setup in two ways:

Interface

Run:

projecthor save

This launches an interactive process that guides you step by step:

save interface

LIMITATION: The interface only allows saving one project at a time.

Use a .psup File

A .psup file (Project Setup) lets you save multiple project setups with just one command:

projecthor save --source project-setups.psup

.psup files require a specific structure (similar to .yaml) with the following fields:

  • PROJECT - marks the start of a project setup definition
  • NAME - project name
  • FOLDER - root folder of the project
  • COMMANDS - list of commands to run to setup the project

Single setup example:

PROJECT:
  NAME: my-project
  FOLDER: c:\users\johnDoe\projects\my-project
  COMMANDS:
    code .
    node server.js
    index.html

Multiple setup examples:

PROJECT:
  NAME: my-calculator-project
  FOLDER: c:\users\johnDoe\projects\my-calculator-project
  COMMANDS:
    code .

PROJECT:
  NAME: my-website
  FOLDER: c:\users\johnDoe\projects\my-website
  COMMANDS:
    code .
    node server.js
    index.html

Load a Project

After you have saved your project you can load its environment with a single command.

Run:

projecthor load [project-name]

This will run all the commands to set up the project.

NOTE: If you want to run setup commands in a particular shell, use the --shell flag. For example:

projecthor load [projec-name] --shell powershell.exe

Default Folder

If you prefer using the projecthor interface to save a project, you might want to define a Default Folder. In this way the Folder: field is automatically populated by the default folder while saving the project via the interface.

To define a default folder run:

projecthor setdf [default-folder-path]

If you want to see the current default folder value, run:

projecthor getdf

To unset the default folder run:

projecthor setdf ""

List All Projects

To check which projects have already been saved, run:

projecthor list

This will output a list of all available projects (next to the project name there is also its root folder):

projects list

When a project directory color is gray, it means that that project folder doesn't exist anymore. If there are multiple "orphan" projects you can delete them all at once just by running:

projecthor purge

Or just delete one by one with the delete command.

If you want more details about all the projects, use the --full flag:

projecthor list --full

Delete a Project

If you want to delete a project, run:

projecthor delete [project-name]

Known Bugs

  • cd can't be used as command (this is why I opted to associate a folder to each project).
  • Default folder paths can be sometimes recognized as valid even if they are not (e.g. when path has white spaces in it). It must be something related with the implementation of fs.existsSync() function.

New Features and Bugs

If you need new features or critical bug fixes feel free to open an issue or a pull request.