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

@sreetej510/pi-hpc-tools

v0.9.14

Published

Pi extension for exploring a remote HPC/SSH host (via plink) with ls/read/grep tools, gated per-project by /hpc:on and /hpc:off.

Downloads

6,745

Readme

@sreetej510/pi-hpc-tools

A pi coding agent extension for exploring a remote HPC/SSH host through plink without ever leaving your local project.

What it does

  • Adds three read-only tools — ls_hpc, read_file_hpc, grep_hpc — that shell out to a remote host via plink -batch -pw "<password>" <user>@<host> "<command>".
  • Tools are only active in projects where you've explicitly run /hpc:on, so the model never gets silent access to a remote machine.
  • On/off state is stored per-project in hpc-config.json (enabledProjects: ["/path/to/project", ...]), and restored automatically on resume/session switch.

Commands

| Command | Effect | |---|---| | /hpc:on | Enable the HPC tools for the current project | | /hpc:off | Disable the HPC tools for the current project | | /hpc:config | Set credentials: /hpc:config username@host password |

Configuration

Credentials are resolved in this order:

  1. Environment variables: HPC_USERNAME (or HPC_USER), HPC_HOST, HPC_PASSWORD.

  2. hpc-config.json (in ~/.pi/agent/.pi/ or ~/.pi/), written by /hpc:config:

    /hpc:config [email protected] your-password

    Passwords with spaces work — everything after username@host is treated as the password.

    {
      "username": "...",
      "host": "...",
      "password": "...",
      "plinkPath": "C:/path/to/plink.exe",
      "enabledProjects": ["/path/to/project"]
    }
  3. PLINK_PATH env var, or plinkPath in the config file, or the default Windows/Git-Bash plink.exe path — falls back to plink on PATH otherwise.

The shell used to invoke plink is read from your pi settings.json (shellPath), defaulting to Git Bash on Windows and bash elsewhere.

Install

npm install -g @sreetej510/pi-hpc-tools

Then add it to your pi settings.json:

{
  "packages": ["npm:@sreetej510/pi-hpc-tools"]
}

Or, for local development, point at the file directly:

{
  "extensions": ["/absolute/path/to/pi-extensions/extensions/pi-hpc-tools/src/index.ts"]
}

File layout

| File | Responsibility | |---|---| | src/index.ts | Extension entry point: commands (/hpc:on, /hpc:off, /hpc:config) + lifecycle events | | src/constants.ts | Tool names, timeouts, config file paths | | src/types.ts | Shared TypeScript types | | src/state.ts | Shared mutable module state (enabled flag, config cache, sync flags) | | src/config.ts | hpc-config.json load/save, per-project enable state, shell/plink resolution | | src/exec.ts | plink invocation + shell quoting helpers | | src/grep-options.ts | grep_hpc option-string building heuristics | | src/render.ts | Tool call/result rendering | | src/tool-sync.ts | Keeps the HPC tools' active/inactive state in sync with /hpc:on//hpc:off | | src/tools.ts | Registers ls_hpc / read_file_hpc / grep_hpc |

Development

npm install
npm run --workspace @sreetej510/pi-hpc-tools check     # biome + typecheck
npm run --workspace @sreetej510/pi-hpc-tools format

Security notes

  • Credentials are stored in plaintext JSON on disk (matching plink's own -pw usage) — treat hpc-config.json like any other secret file and keep it out of version control.
  • Tools are strictly read-only (ls, read, grep); there is no remote write/execute tool.