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

vitex-cli

v0.2.0

Published

Thin client for the Vitex hosted resume API — a token-cheap CLI for terminals and coding agents, plus a stdio MCP server for Claude Desktop, Claude Code, and Cursor.

Readme

vitex-cli

A thin command-line client for the hosted Vitex resume API — and a one-command MCP server so Claude Desktop, Claude Code, and Cursor can generate, refine, and download tailored resumes for you.

The API is the UI. Vitex compiles a tailored, ATS-optimized resume PDF and cover letter from a job description plus your background. This CLI is a thin wrapper over the hosted v1 HTTP API — no local pipeline, no Typst, no LLM. It is to Vitex what gh is to GitHub.

Install

npm install -g vitex-cli
# or run without installing:
npx vitex-cli --help

Requires Node.js >= 20.

Authentication

Mint an API key once while signed in to the web app (the raw token is shown once; only its SHA-256 hash is stored). Then:

export VITEX_API_KEY="vitex_xxx_yyy"

Every command reads VITEX_API_KEY (or --api-key <token>). The key is never echoed in output. The base URL defaults to https://www.vitex.org.nz and can be overridden with --api-url or VITEX_API_URL.

Billing (outcome-based)

You are charged 1 credit only when a job produces a compiled PDF (status: succeeded). Validation errors, LLM-step failures, and compilation failures are free. Refinements are free. New accounts start with 3 free credits.

Async job model

generate and refine return a job id immediately (status: queued). Poll it with vitex job <id> until succeeded | failed, then vitex pdf <id> — or pass --wait to let the CLI poll for you.

Commands

| Command | What it does | | --- | --- | | vitex generate --jd <file\|-> (--background <file\|-> \| --profile <id>) [--template <id>] [--wait] [-o out.pdf] | Create a resume job from a job description + background | | vitex job <id> | Poll a job by id | | vitex pdf <id> [-o out.pdf] | Download a succeeded job's PDF (default <id>.pdf) | | vitex refine <id> --feedback <text\|@file> [--scope resume\|cover_letter\|both] [--wait] [-o out.pdf] | Refine a succeeded resume (free) | | vitex profiles list | List saved candidate backgrounds | | vitex profiles get <id> | Show one profile with parsed data | | vitex profiles create --background <file\|-> [--label <text>] [--voice <file\|->] | Save a reusable background | | vitex profiles update <id> [--background <file\|->] [--label <text>] [--voice <file\|->] | Update a profile | | vitex profiles delete <id> | Delete a profile | | vitex profiles publish <id> | Publish a public /p/<slug> career endpoint | | vitex profiles unpublish <id> | Close a published profile | | vitex whoami | Verify your key and show your credit balance + tier (GET /api/v1/me; never spends credits) | | vitex mcp | Run the stdio MCP server |

Global flags

  • --json — print raw JSON instead of a terse human line.
  • --api-url <url> — override the base URL (default https://www.vitex.org.nz).
  • --api-key <token> — override VITEX_API_KEY.
  • -h, --help, --version.

Input conventions

  • A - argument reads stdin (e.g. --jd -).
  • --feedback also accepts @file to read the feedback from a file.

Exit codes

0 ok · 2 usage error · 3 API error · 4 poll timeout · 1 unexpected.

Examples

# Generate and wait, then save the PDF
vitex generate --jd jd.txt --background bg.txt --wait -o resume.pdf

# Pipe a JD in and reuse a saved profile, machine-readable output
echo "Senior Go engineer, payments, distributed systems" \
  | vitex generate --jd - --profile <profileId> --json

# Refine a succeeded resume and save the new version's PDF
vitex refine <jobId> --feedback "Lead with the payments impact." --wait -o v2.pdf

# Save a reusable background once
vitex profiles create --background bg.txt --label "My Background"

Errors print a single line to stderr in the shape error <CODE>: <message> (requestId), sourced from the API's machine-readable envelope.

MCP server (Claude Desktop / Claude Code / Cursor)

vitex mcp starts a Model Context Protocol server over stdio. Add it to your client's MCP config and the assistant can drive Vitex directly:

{
  "mcpServers": {
    "vitex": {
      "command": "npx",
      "args": ["-y", "vitex-cli", "mcp"],
      "env": { "VITEX_API_KEY": "vitex_xxx_yyy" }
    }
  }
}

For Claude Code, add the same server with:

claude mcp add vitex --env VITEX_API_KEY=vitex_xxx_yyy -- npx -y vitex-cli mcp

Tools

Each generate/refine tool blocks and polls internally, so the assistant gets a final result in one call. Every tool reads VITEX_API_KEY from the environment.

| Tool | Purpose | | --- | --- | | get_account | Return your identity + credit balance + tier (read-only; check credits before generating) | | generate_resume | Compile a tailored resume from jobDescription + background or profile_id (returns the final job incl. atsScore) | | refine_resume | Refine a succeeded resume with feedback (+ optional scope) | | get_resume | Fetch a job by id | | download_pdf | Download a succeeded job's PDF to a temp file, return its path | | list_profiles | List saved candidate backgrounds | | create_profile | Save a reusable background | | publish_profile / unpublish_profile | Toggle a profile's public career endpoint |

Reference

Changelog

  • 0.2.0whoami now uses the dedicated GET /api/v1/me endpoint (shows your credit balance + tier, not just a key check); new get_account MCP tool so agents can check credits before generating.
  • 0.1.0 — Initial release.

License

MIT