
Security News
Ruby's Bundler 4.0.18 Extends Cooldown to bundle lock and bundle cache
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.
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.
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
ghis to GitHub.
npm install -g vitex-cli
# or run without installing:
npx vitex-cli --help
Requires Node.js >= 20.
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.
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.
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.
| 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 authenticates |
vitex mcp | Run the stdio MCP server |
--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.- argument reads stdin (e.g. --jd -).--feedback also accepts @file to read the feedback from a file.0 ok · 2 usage error · 3 API error · 4 poll timeout · 1 unexpected.
# 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.
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
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 |
|---|---|
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 |
MIT
FAQs
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.
The npm package vitex-cli receives a total of 38 weekly downloads. As such, vitex-cli popularity was classified as not popular.
We found that vitex-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

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.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.