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

runhttp

v0.1.0

Published

Run .http files (VS Code REST Client format) from the command line. Zero dependencies — a tiny, unbloated alternative to Postman.

Readme

runhttp

Run .http files from the command line. You already have .http files — the ones VS Code's REST Client extension runs. runhttp runs the same files in your terminal and in CI. Zero dependencies, no Electron, no account, no config.

# api.http
@base = https://api.example.com
@token = {{$env API_TOKEN}}

### Get the current user
GET {{base}}/me
Authorization: Bearer {{token}}
Accept: application/json
npx runhttp api.http
GET https://api.example.com/me   # Get the current user
  200 OK · 142ms · application/json · 318 B
  {
    "id": 7,
    "name": "Ada Lovelace"
  }

Why

You want to fire off a saved HTTP request and see the response. The options:

  • Postman / Insomnia — a whole GUI app and an account, to send one GET.
  • Hurl is great, but uses its own .hurl format — your existing VS Code .http files don't run in it.
  • httpyac runs .http files but pulls in dozens of dependencies.
  • curl works, but now you're translating a clean .http file into a wall of -H flags every time.

runhttp runs the .http files you already keep next to your code. One small binary's worth of pure standard library — npx/pipx and go.

Usage

runhttp api.http               # run every request in order
runhttp api.http -n 2          # run only request #2 (1-based)
runhttp api.http --name login  # run the request titled "### login"
runhttp api.http --list        # list requests without sending
cat api.http | runhttp         # read from stdin

| Option | | |---|---| | -n, --request <n> | run only the nth request | | --name <title> | run the request with this ### title / # @name | | --list | print requests, don't send | | --var k=v | define/override a variable (repeatable) | | -i, --include | print response headers | | --json | emit results as a JSON array (stdout) | | --no-follow | don't follow redirects (default: follow, max 5) | | --insecure | skip TLS verification | | --timeout <sec> | per-request timeout (default 30) |

Variables

@base = https://api.example.com      # file variable
GET {{base}}/users                   # {{name}} to use it
Authorization: Bearer {{$env TOKEN}} # {{$env NAME}} reads the environment

Override or supply any variable from the command line with --var name=value. An undefined variable is an error — a typo never gets silently sent.

Exit codes

0   every request came back < 400
1   some request returned an HTTP status >= 400
2   parse error, connection failure, or bad usage
runhttp smoke.http && echo "all endpoints healthy"

Scope (on purpose)

Supports the everyday .http: @variables, {{vars}} / {{$env}}, request titles, headers, request bodies, multiple requests per file, and redirect following. It does not do gRPC/WebSocket/GraphQL transports or response assertions — if you need those, reach for httpyac or Hurl. runhttp is the small, dependency-free one for the 90% case.

Install

npx runhttp api.http       # Node >= 18
pip install runhttp        # Python >= 3.8 (byte-for-byte port)
  • npm: https://www.npmjs.com/package/runhttp
  • PyPI: https://pypi.org/project/runhttp/
  • GitHub: https://github.com/jjdoor/runhttp · runhttp-py

License

MIT