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

@infosupport/huddle-cli

v1.2.5

Published

Huddle CLI — start devcontainers and manage firewall rules

Readme

Huddle CLI

Cross-platform Node CLI for Huddle. The CLI talks to the existing Huddle REST API; container management and firewall resolution therefore live in the gateway, not re-implemented in the command client.

Installing

The packages are public, so you don't need a GitHub token or registry login.

npm install -g @infosupport/huddle-cli

Starting Huddle

huddle init

Pulls ghcr.io/infosupport/huddle:latest and starts the container. Works with Docker and Podman: the runtime is detected automatically (Docker first, then Podman), or pick one explicitly with huddle init --runtime <docker|podman> or the HUDDLE_RUNTIME env var. If you run huddle while Huddle isn't running, you automatically get a hint to run this command.

Starting devcontainers

huddle                 # start an IntelliJ devcontainer for the current directory
huddle ./project       # start for a specific directory
huddle --ide rider
huddle --ide vscode --name devcontainer-demo
huddle fw list
huddle firewall list -i

Default API URL: http://localhost:3000. Override it with --url or HUDDLE_URL.

Experiments

An experiment is a complete Huddle version (CLI + all Docker images) tied to a single GitHub issue. Push a branch experiment/<issue-number>-<description> and the pipeline publishes everything under the tag experiment-<issue-number>, fully separated from the normal releases.

huddle init --experiment 123   # activate the experiment and run init
huddle experiment use 123      # same as above
huddle experiment status       # show the active channel and CLI version
huddle experiment reset        # back to the stable release

On activation the CLI stores the experiment in ~/.huddle/config.json, reinstalls itself as @infosupport/huddle-cli@experiment-123, restarts itself, and then runs huddle init with the experiment-123 Docker images. So the CLI and the images always run on exactly the same version.

The experiment stays active — including on the next huddle init — until you explicitly run huddle experiment reset. That removes the local experiment config, reinstalls the stable CLI, and from then on huddle init uses the latest images again.

Development

npm install
npm run build
npm run install-global

Main flags:

--ide <intellij|rider|vscode>
--workspace <path>
--name <name>
--image <image>
--empty
-i, --interactive
--container <name>
--status <requested|allow|deny>