CLI Tool

restume-cli is a beautiful terminal client for managing your RESTume profile. Authenticate, CRUD your skills and experience, import resumes, ask AI questions, and pipe JSON output to other tools.

Why a CLI?

The CLI gives you full access to the RESTume API from your terminal. It handles authentication, formats output as Rich tables or JSON/YAML for piping, stores credentials securely in your system keyring, and provides interactive prompts for complex operations like resume import.

Full CRUD

Profile, skills, experience, education, projects, API keys — all manageable from the command line.

Pipe-friendly

UX output goes to stderr, data goes to stdout. Pipe --json output to jq seamlessly.

Secure Auth

System keyring storage (macOS Keychain, Windows Credential Locker, Linux Secret Service).

Installation

Install from GitHub

Install directly from the repository with pip or pipx.

terminal
# With pip
$ pip install "restume-cli @ git+https://github.com/HershelT/RESTume.git#subdirectory=cli"

# Or with pipx (isolated environment)
$ pipx install "restume-cli @ git+https://github.com/HershelT/RESTume.git#subdirectory=cli"

From source (development)

terminal
$ git clone https://github.com/HershelT/RESTume.git
$ cd RESTume/cli
$ pip install -e ".[dev]"

Quick Start

terminal
# 1. Sign in to your RESTume server
$ restume-cli login
Username: hershel
Password: ********
✔ Logged in as hershel
# 2. View your profile
$ restume-cli profile show
# 3. Add a skill
$ restume-cli skills add "Python" --proficiency expert --years 8
✔ Skill added: Python
# 4. Ask AI about a developer
$ restume-cli ask "What languages does hershel know?" --username hershel
# 5. Import a resume
$ restume-cli import resume.pdf

Authentication

The CLI supports three authentication methods. Credentials are stored securely in your system keyring.

Interactive login (recommended)

Prompts for username and password, obtains a JWT, then auto-generates an API key for subsequent requests.

terminal
$ restume-cli login

Direct token (scripting)

Pass an existing API key directly. Useful for CI/CD or automation scripts.

terminal
$ restume-cli login --with-token rst_abc123...

Environment variable (CI/CD)

Set RESTUME_API_KEY to bypass keyring entirely. Perfect for GitHub Actions and containers.

terminal
$ export RESTUME_API_KEY=rst_abc123...
$ restume-cli skills list

Command Reference

20+ commands

Top-level Commands

These are available directly as restume-cli <command>.

CommandDescription
loginAuthenticate with a RESTume server (interactive or --with-token)
logoutClear stored credentials from keyring
whoamiShow current authentication status and user info
statusCheck server health and connectivity
askAsk AI questions about any developer's profile
importImport a resume from PDF, DOCX, or JSON Resume file

Profile

CommandDescription
profile showView your profile (or --username for a public profile)
profile updateUpdate profile fields (--full-name, --bio, etc.)
profile exportExport resume as JSON or YAML (--output to save to file)

Skills / Experience / Education / Projects

Each resource supports the same four subcommands:

SubcommandDescription
listList all items (supports --json, --format yaml)
addAdd a new item with interactive prompts or flags
updateUpdate an existing item by ID
removeRemove an item by ID (--yes to skip confirmation)

API Keys & Config

CommandDescription
api-keys listList active API keys
api-keys createCreate a new API key (--name)
api-keys revokeRevoke an API key (--yes to skip confirmation)
config showShow current configuration
config setSet a configuration value
config getGet a single configuration value
config pathShow config file location

Output Formats

Every list and show command supports three output modes. UX messages (spinners, success/error indicators) go to stderr so they never interfere with piped data.

Table (default)

Beautiful Rich tables for human consumption.

$ restume-cli skills list

JSON (pipeable)

Machine-readable output for scripting and jq.

$ restume-cli skills list --json | jq '.[].name'

YAML

Human-readable structured output.

$ restume-cli skills list --format yaml

Configuration

The CLI uses a three-layer config priority: environment variables > config file > defaults.

Config file

Stored in TOML format at the platform-appropriate config directory.

$ restume-cli config path
~/.config/restume-cli/config.toml

$ restume-cli config set base_url https://restume.com
✔ base_url = https://restume.com

$ restume-cli config set output_format json

Environment variables

VariableDescription
RESTUME_CLI_BASE_URLServer URL (overrides config file)
RESTUME_CLI_OUTPUT_FORMATDefault output format (table, json, yaml)
RESTUME_API_KEYAPI key for CI/CD (bypasses keyring)

Examples

Full workflow: register, populate, and export

# Sign in
$ restume-cli login
# Add skills
$ restume-cli skills add "Python" --proficiency expert --years 8
$ restume-cli skills add "FastAPI" --proficiency advanced --years 3
# Add experience
$ restume-cli experience add --company "TechCorp" --title "Senior Engineer" --start 2022-01 --current
# Export as JSON
$ restume-cli profile export --format json --output resume.json
✔ Exported to resume.json

Resume import with preview

$ restume-cli import resume.pdf
Parsing resume...
Skills (3 found)
Python, FastAPI, Docker
Experience (2 found)
Senior Engineer @ TechCorp (2022–present)
Junior Dev @ StartupCo (2019–2022)
Import this data? [y/n]: y
✔ Imported: 3 skills, 2 experience

CI/CD integration (GitHub Actions)

# In your GitHub Actions workflow
$ export RESTUME_API_KEY=${{ secrets.RESTUME_API_KEY }}
$ restume-cli skills list --json > skills.json
$ restume-cli profile export --format json --output resume.json

Built With

Typer

CLI framework

Rich

Terminal formatting

httpx

HTTP client

keyring

Secure auth

See also: Developer Portal · REST API docs · MCP Server