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

@churivibhav/reqex

v0.1.3

Published

Terminal HTTP client powered by httpyac and Rezi

Readme

reqex

reqex is a terminal HTTP client for .http and .rest files. Open a folder of requests, edit them in place, send them, and read the response — all in one screen. Think Postman, but in your terminal.

It uses httpyac under the hood, so your existing REST Client / httpyac files work as-is. The UI is built with Rezi.

Install

You need Node.js 20 or later.

npm install -g @churivibhav/reqex

Quick start

  1. Put your HTTP files in a folder (.http, .rest, or environment files like .env / .env.json).
  2. Open that folder with reqex:
reqex                 # open the current directory
reqex ./api           # open a specific folder
  1. Select a file in the Files pane on the left.
  2. Place your cursor on a request block and press F5 to send it.
  3. Read the response in the Response pane on the right.

That’s the core loop: browse → edit → send → inspect.

The interface

reqex opens a three-pane layout:

| Pane | What it does | |------|----------------| | Files | Browse .http, .rest, and environment files in your workspace | | Editor | Edit the selected file with HTTP syntax highlighting | | Response | Status, headers, body, variables, and test results for the last request |

Use Tab / Shift+Tab to move between panes, or Ctrl+1, Ctrl+2, Ctrl+3 to jump directly. Press F11 or z to zoom the focused pane.

Press F1 anytime for in-app quick help. Press Ctrl+/ for the full keybinding list.

HTTP files

reqex understands the standard .http / .rest format. A minimal example:

@baseUrl = https://api.example.com

### List items
GET {{baseUrl}}/items
Accept: application/json

### Create item
POST {{baseUrl}}/items
Content-Type: application/json

{
  "name": "example"
}

Each request is separated by a line starting with ###. Variables like {{baseUrl}} are resolved when you send.

Because reqex uses httpyac, you also get:

  • Variables — file-level @name = value and environment files
  • Environments — switch between dev/staging/prod with Ctrl+E
  • Chained requests — reference a previous response with @name and # @ref name
  • Tests — assertions with ?? lines after a request

For the full file format, see the httpyac documentation.

Sending requests

  • Put the cursor anywhere inside a request block and press F5 (or Ctrl+Enter / Alt+Enter on terminals that support it).
  • To stop a slow request, press Ctrl+X.
  • Unsaved edits are marked in the file tree — press Ctrl+S to save before sending if you want the file on disk updated.

Response pane

After a request completes, the response pane shows several tabs:

| Tab | Shows | |-----|--------| | Pretty | Formatted JSON when applicable | | Raw | Response body as received | | Headers | Response headers | | Variables | Variables set by the request | | Tests | Test assertion results |

Use Ctrl+Tab / Ctrl+Shift+Tab to cycle tabs, or click a tab header. Copy the visible tab with Ctrl+Shift+C. In the Pretty tab, use Ctrl+[ to fold or unfold the JSON node under the cursor and Ctrl+] to unfold everything.

Environments

If your project defines httpyac environments (for example in .env or .env.json files), switch between them with Ctrl+E. Use the arrow keys to highlight an environment and Enter to apply it. Choose (none) to clear the active environment.

Command palette

Press F2 or Ctrl+Shift+P to open the command palette. From there you can send requests, save files, switch environments, toggle the sidebar, and more — without memorizing every shortcut.

Configuration

Keybindings

Default shortcuts follow a VS Code–style preset. Override them in:

  • User config: ~/.config/reqex/keybindings.json (Linux), ~/Library/Application Support/reqex/keybindings.json (macOS), or %APPDATA%\reqex\keybindings.json (Windows)
  • Project config: .reqex/keybindings.json in your workspace (overrides user settings)

Set REQEX_CONFIG_DIR to use a different config directory.

Example — remap send to Ctrl+Return only and use the vim pane preset:

{
  "preset": "vim",
  "bindings": {
    "ctrl+return": "request.send"
  }
}

Changes are picked up automatically while reqex is running.

Theme

reqex supports light and dark themes. By default it auto-detects your terminal background (via OSC 11) and picks a matching theme.

Configure in:

  • User config: ~/.config/reqex/config.json (Linux), ~/Library/Application Support/reqex/config.json (macOS), or %APPDATA%\reqex\config.json (Windows)
  • Project config: .reqex/config.json in your workspace (overrides user settings)

Set REQEX_THEME to override both files (auto, light, or dark).

Example — force light theme:

{
  "theme": "light"
}

Changes are picked up automatically while reqex is running.

Common shortcuts

| Key | Action | |-----|--------| | F5 | Send request under cursor | | Ctrl+Enter / Alt+Enter | Send request | | Ctrl+X | Cancel in-flight request | | Ctrl+S | Save file | | Ctrl+E | Environment switcher | | Ctrl+B | Toggle file sidebar | | Ctrl+P | Quick open files | | Ctrl+Shift+P / F2 | Command palette | | Ctrl+Shift+C | Copy response tab | | Ctrl+F | Search in response | | Ctrl+[ | Fold/unfold JSON node in Pretty response | | Ctrl+] | Unfold all Pretty response JSON | | Tab / Shift+Tab | Cycle panes | | Ctrl+1/2/3 | Jump to Files / Editor / Response | | F1 | Quick help | | Ctrl+/ | Full keybindings list | | F11 / z | Zoom pane | | Ctrl+Q | Quit |

Requirements

  • Node.js >= 20
  • A modern terminal. Kitty is recommended on Linux for the best keyboard support.
  • glibc Linux (x64 or arm64), macOS, or Windows.

Alpine Linux and other musl-based systems are not supported (Rezi ships native binaries built for glibc).

Contributing

See develop.md for local setup, tests, and publishing.

License

GPL-3.0-or-later — see LICENSE.