🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

vitex-cli

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vitex-cli

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.

latest
Source
npmnpm
Version
0.2.1
Version published
Weekly downloads
49
8.89%
Maintainers
1
Weekly downloads
 
Created
Source

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

CommandWhat 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 listList 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 whoamiVerify your key and show your credit balance + tier (GET /api/v1/me; never spends credits)
vitex mcpRun 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.

ToolPurpose
get_accountReturn your identity + credit balance + tier (read-only; check credits before generating)
generate_resumeCompile a tailored resume from jobDescription + background or profile_id (returns the final job incl. atsScore)
refine_resumeRefine a succeeded resume with feedback (+ optional scope)
get_resumeFetch a job by id
download_pdfDownload a succeeded job's PDF to a temp file, return its path
list_profilesList saved candidate backgrounds
create_profileSave a reusable background
publish_profile / unpublish_profileToggle a profile's public career endpoint

Reference

Changelog

See CHANGELOG.md. Recent:

  • 0.2.1 — MCP tool annotations on all 9 tools + mcpName for the official MCP Registry (no functional changes).
  • 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.

Releasing

Maintainers: pushing a cli-v* tag publishes to npm via OIDC trusted publishing. See RELEASING.md.

License

MIT

Keywords

vitex

FAQs

Package last updated on 19 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts