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

@melodicdev/coax-cli

v1.2.1

Published

Coax CLI — run .http files headlessly with inline assertions. Built for CI/CD, smoke tests, contract verification, and synthetic monitoring.

Downloads

128

Readme

@melodicdev/coax-cli

The headless runner for Coax. Run .http files in CI, with inline assertions, JUnit output, and exit codes your build system actually understands.

npm install --global @melodicdev/coax-cli

Quick start

Create a .http file with a request and one or more inline assertions:

### Healthcheck
# @test status == 200
# @test responseTime < 500
GET https://api.example.com/health

Set your Coax license key and run:

export COAX_LICENSE_KEY=COAX-XXXX-XXXX-XXXX-XXXX
coax run healthcheck.http

The CLI is included with every Coax license — buy at coax.melodic.dev.

Usage

coax run <file...> [options]

| Flag | Default | Purpose | |---|---|---| | -e, --env <name> | none | Load vars from <name>.env.json next to the .http file | | -r, --request <title> | none | Only run requests whose title or # @name matches | | -v, --var <key=value> | none | Override a variable; repeatable | | -o, --output <reporter> | pretty | pretty (terminal) or junit (XML for CI dashboards) | | -t, --timeout <ms> | 30000 | Per-request timeout in milliseconds | | -k, --insecure | off | Skip TLS cert validation (for self-signed dev servers — matches curl -k) | | --fail-fast | off | Stop at the first failed request or assertion | | --no-color | off | Disable ANSI colors (auto-disabled on non-TTY) |

Exit codes

| Code | Meaning | |---|---| | 0 | All requests succeeded, all assertions passed | | 1 | At least one assertion failed | | 2 | At least one request failed (network, timeout, invalid URL) | | 3 | Parse error or CLI usage error | | 4 | License missing or invalid |

Assertion syntax

<left> <operator> [<right>]

Left side: status · responseTime · headers.<name> · $.jsonpath

Operators: == · != · < · <= · > · >= · contains · exists

Right side: number, quoted string, true / false / null, bare string, or {{var}} reference

### Get user
# @name getUser
# @test status == 200
# @test $.user.email exists
# @test $.user.id == 42
# @test responseTime < 500
# @test headers.content-type contains "application/json"
GET https://api.example.test/users/42

Environment files

Drop *.env.json files next to your .http file and select one with --env <name> — the same format Coax desktop uses.

my-workspace/
  api.http
  dev.env.json
  staging.env.json
  prod.env.json
coax run api.http --env staging

Secrets declared in an env file are looked up from COAX_SECRET_<UPPERCASED_KEY>:

export COAX_SECRET_APIKEY=sk_live_xxx
coax run api.http --env prod

Variable precedence (highest wins): --var flags → --env <name> file vars → top-of-file @var declarations.

Response chaining

Reference a previous response in any later request:

### Login
# @name login
POST {{baseUrl}}/login
Content-Type: application/json

{ "user": "rick" }

### Get my profile
# @test status == 200
GET {{baseUrl}}/users/{{login.response.body.$.userId}}
Authorization: Bearer {{login.response.body.$.token}}

Requests run in file order — put dependencies above their consumers.

CI integration

GitHub Actions:

- name: API smoke tests
  env:
    COAX_LICENSE_KEY: ${{ secrets.COAX_LICENSE_KEY }}
  run: |
    npx @melodicdev/coax-cli run tests/smoke.http \
      --output junit > coax-results.xml

Links

License

Coax CLI is part of the commercial Coax product. See LICENSE.