The first CLI for the PCGS Public API — cert lookup, full CoinFacts extraction, and the 1,000-call-per-day budget...

Apache-2.0Auto-check: notes

Install Pp Pcgs

skills CLI
$ npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mvanhorn/printing-press-library pp-pcgs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-pcgs .claude/skills/pp-pcgs && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pp-pcgs
GitHub stars
2.1k
Token cost
~6.2k tokens
SKILL.md length
2,698 words
Files
1
Skills in repo
506
Repo updated
First seen
Licence
Apache-2.0

At a glance

The first CLI for the PCGS Public API — cert lookup, full CoinFacts extraction, and the 1,000-call-per-day budget...

  • Works in 3 steps: Install via the Printing Press… → Verify: pcgs-pp-cli --version → Ensure the reported install directory is…
  • Phrases: verify a pcgs cert
  • SKILL.md covers Prerequisites: Install the CLI, When to Use This CLI, When Not to Use This CLI and Unique Capabilities, plus 4 more sections
  • Calls jq, claude and npx; needs PCGS_AUTH_TOKEN

What it does

Pp Pcgs is an agent skill from mvanhorn/printing-press-library. The first CLI for the PCGS Public API — cert lookup, full CoinFacts extraction, and the 1,000-call-per-day budget... Trigger phrases: verify a pcgs cert, look up a pcgs cert number, extract pcgs coinfacts, pcgs population report, pcgs price guide, use pcgs, run pcgs.

Its SKILL.md is about 6.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.

When your agent uses it

  • Phrases: verify a pcgs cert
  • Look up a pcgs cert number
  • Extract pcgs coinfacts
  • Pcgs population report

Example prompts

  • “/pp-pcgs”

Requirements

  • Node.js
  • Pre-approved tools (allowed-tools): Read, Bash

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and…
  2. Verify: pcgs-pp-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

What it can do on your machine

Read from SKILL.md and the folder at commit 76de244. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Bash

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • jq
    • claude
    • npx
    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • pcgs.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • PCGS_AUTH_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pp Pcgs loads about 6.2k tokens when it runs. Until then it costs about 72 tokens; SKILL.md has 2,698 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~72
When it runs · the whole SKILL.md, loaded when a task matches
~6.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Bash

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mvanhorn/printing-press-library at commit 76de244, republished under its Apache-2.0 licence (© mvanhorn). 2,698 words, ~6,234 tokens.

Download SKILL.mdSave it as .claude/skills/pp-pcgs/SKILL.md (or your agent's skills folder).
name
pp-pcgs
description
The first CLI for the PCGS Public API — cert lookup, full CoinFacts extraction, and the 1,000-call-per-day budget... Trigger phrases: `verify a pcgs cert`, `look up a pcgs cert number`, `extract pcgs coinfacts`, `pcgs population report`, `pcgs price guide`, `use pcgs`, `run pcgs`.
allowed-tools
Read, Bash
author
Vinny Pasceri
license
Apache-2.0
argument-hint
<command> [args] | install cli|mcp
<!-- GENERATED FILE — DO NOT EDIT.
     This file is a verbatim mirror of library/other/pcgs/SKILL.md,
     regenerated post-merge by tools/generate-skills/. Hand-edits here are
     silently overwritten on the next regen. Edit the library/ source instead.
     See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->

PCGS — Printing Press CLI

Prerequisites: Install the CLI

This skill drives the pcgs-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:

  1. Install via the Printing Press installer. It defaults binaries to $HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:
    bash
    npx -y @mvanhorn/printing-press-library install pcgs --cli-only
  2. Verify: pcgs-pp-cli --version
  3. Ensure the reported install directory is on $PATH for the agent/runtime that will invoke this skill.

If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer):

bash
go install github.com/mvanhorn/printing-press-library/library/other/pcgs/cmd/pcgs-pp-cli@latest

If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.

When to Use This CLI

Use this CLI when you need to verify PCGS certs at scale, extract full CoinFacts metadata for downstream import, or keep a local snapshot of population / price-guide / auction data refreshed under a tight 1,000-call daily budget. It is upstream of any personal collection system, not a replacement for one. Reach for it when an agent needs the raw PCGS record, not a curated subset.

When Not to Use This CLI

Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.

Unique Capabilities

These capabilities aren't available in any other tool for this API.

Quota-aware orchestration
  • coin batch — Parse a CSV / JSON wrapper / JSONL / plain-text cert list and look up every cert against PCGS. --dry-run forecasts cost (live calls, cache hits, %-of-quota) without spending a single call. --resumable + --checkpoint split a list larger than the 1,000/day cap across UTC days. --list-certs emits the parsed cert list to stdout without calling. Non-cert input columns round-trip to output as _keep.<col> for downstream re-keying.

    Use this any time you have more than one cert to look up. The dry-run mode answers 'does this fit today's quota?' for free; --resumable makes multi-day batches idempotent.

    bash
    pcgs-pp-cli coin batch --file ./pcgs-coin-list.csv --dry-run --json
  • refresh — Refresh cached coins by updating only the fields PCGS can actually change — Population, PopHigher, PriceGuideValue, AuctionList, Images, CoinFactsNotes — while leaving cert identity fields untouched. Emits a per-field diff. --dry-run --older 30d --field price-guide lists which cached coins need refresh without calling the API.

    This is the safe way to keep market data current without putting cert identity at risk. Pair --dry-run --older with --field to find what to refresh before spending quota.

    bash
    pcgs-pp-cli refresh --all --older 7d --json
PCGS-specific content patterns
  • coin pop-curve — Pull every grade 1–70 (and PlusGrade variants, plus the 82–98 Details codes when --include-details) for one PCGSNo in one command, persist the full population curve to local store, and print the scarcity table.

    Use this when you need scarcity context across grades — dealer pricing, key-date analysis, or seeing where Details-grade coins fit relative to numerical grades.

    bash
    pcgs-pp-cli coin pop-curve 7356 --plus --include-details --json
  • order hydrate — Take a PCGS submission number, fetch the order, then fan out CoinFacts (and optionally images) for every cert in the order. Respects cache and refuses to start when remaining quota is less than the cert count.

    Use this the moment a PCGS submission posts. It turns one submission number into a fully-cached, fully-hydrated set of coins in one command.

    bash
    pcgs-pp-cli order hydrate 12345678 --with-images --json
Local state that compounds
  • audit — Query the lookup_log table directly: every API call, its endpoint, IsValidRequest, ServerMessage, and request hash. Aggregate by day, by endpoint, or by cert; filter to failed calls only.

    Reach for this when quota usage looks off, when you want to spot which certs return IsValidRequest=false, or when triaging a sync diff.

    bash
    pcgs-pp-cli audit --since 7d --failed --by-endpoint --json
  • search — FTS5 + numeric filters over your local cache: search by Name, Country, SeriesName, Category, Designer, MintLocation, or variety fields, plus range filters on Year, Grade, PriceGuideValue, Population, PopHigher, Mintage, Weight, Diameter. --max-pop and --top-pct flags expose continuous rarity slicing (e.g. --top-pct 5 = top 5% rarest in the scoped cohort) — no API call.

    Use this any time you need to slice your cached collection without burning quota. --top-pct 1 surfaces apex-rarity coins; --max-pop N for explicit thresholds.

    bash
    pcgs-pp-cli search --text "morgan dollar" --year 1881 --top-pct 5 --json --select Name,Year,Grade,Population,PriceGuideValue

Command Reference

banknote — PCGS Banknote lookups: facts and images. Same shape as coins, separate endpoint family.

  • pcgs-pp-cli banknote facts-cert — Full banknote metadata for one PCGS Banknote cert. Optional language code for translated text.
  • pcgs-pp-cli banknote facts-grade — Banknote snapshot for a (PCGSNo, GradeNo) tuple.
  • pcgs-pp-cli banknote images — Image URLs for one PCGS Banknote cert.

coin — PCGS-graded coin lookups: CoinFacts metadata, Auction Prices Realized (APR), and images.

  • pcgs-pp-cli coin apr-barcode — Auction Prices Realized by holder barcode with optional date window.
  • pcgs-pp-cli coin apr-cert — Auction Prices Realized for one PCGS cert number.
  • pcgs-pp-cli coin apr-grade — Auction Prices Realized for a (PCGSNo, GradeNo, PlusGrade) tuple with optional date window and result limit.
  • pcgs-pp-cli coin facts-barcode — CoinFacts metadata by holder barcode. Supports PCGS and competitor-service barcodes (NGC, ANACS, ICG, SEGS).
  • pcgs-pp-cli coin facts-cert — Full CoinFacts metadata for one PCGS cert number. The IsValidRequest + ServerMessage envelope tells you if the cert...
  • pcgs-pp-cli coin facts-grade — CoinFacts snapshot for a (PCGSNo, GradeNo, PlusGrade) tuple. Used by pop-curve to fan grades 1-70 + Plus + Details...
  • pcgs-pp-cli coin images — TrueView and stock images for one PCGS cert (URLs only; no binary download).

order — PCGS submission and order lookups for submitters.

  • pcgs-pp-cli order range — Orders within a date window (paginated).
  • pcgs-pp-cli order submission — Orders associated with one PCGS submission number.
Finding the right command

When you know what you want to do but not which command does it, ask the CLI directly:

bash
pcgs-pp-cli which "<capability in your own words>"

which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.

Recipes

Verify one cert and dump every field
bash
pcgs-pp-cli coin facts-cert 53972744 --json --select data.Name,data.Year,data.Grade,data.Population,data.PopHigher,data.PriceGuideValue,data.CoinFactsLink,data.IsValidRequest,data.ServerMessage

Single live call. The --json --select pair gives a deeply nested response trimmed to import-friendly fields without losing the IsValidRequest envelope. (Same data.* path syntax works for coin batch per JSONL line.)

Plan a 500-cert batch
bash
pcgs-pp-cli coin batch --file examples-pcgs-coin-list.csv --dry-run --json

Reads the local cache, dedupes against the fixture, and tells you whether the batch fits today's remaining quota — zero API calls spent.

Mixed-shape fixture to clean cert list
bash
pcgs-pp-cli coin batch --file examples-pcgs-coin-list.csv --list-certs --json

Auto-detects the {slabs:[…]} wrapper, strips plus-grade slab IDs like 7130.67/51225377 down to bare cert numbers, and emits them to stdout — pipe straight into coin batch.

Pop curve for a Peace Dollar (with Details grades)
bash
pcgs-pp-cli coin pop-curve 7356 --plus --include-details --json

One command pulls every grade across the 1-70 + Plus axis and the 82-98 Details codes, persists the curve, and prints the scarcity table. Hand-fans 70+ separate API calls behind the scenes with cache reuse.

Local SQL over cached coins
bash
pcgs-pp-cli search --text "morgan" --year 1881 --min-pop 100 --json --select Name,Year,Grade,Population,PopHigher,PriceGuideValue

No API call. Uses FTS5 + numeric filters against the local cache, with --select narrowing the response so an agent sees only the fields that matter.

Find which cached coins need a sync
bash
pcgs-pp-cli refresh --dry-run --field price-guide --older 30d --json

Picks the right input to sync: only the cached coins whose PriceGuideValue has not been refreshed in 30 days. Pipes directly into sync --cert -.

Bullion-floor analysis (compose with spot prices)
bash
pcgs-pp-cli coin facts-cert 53972744 --json | jq '.data.MetalContent, .data.Weight'

Recipe R1 — pair this output with current Pt/Au/Ag/Pd spot prices to compute the bullion floor. The CLI gives you metal content and weight; you multiply by spot. See article: market-101-silver-dollars-on-the-move.

Cross-house auction spread (compose with Heritage / Stacks-Bowers / GreatCollections)
bash
pcgs-pp-cli coin apr-cert 53972744 --json

Recipe R2 — PCGS APR is one realized-price snapshot. Pair it with the auction houses' own sold-lot APIs to spot lots that traded below PCGS APR or to find cross-house arbitrage. See article: keeping-the-pcgs-price-guide-updated.

Survival-rate scarcity (compose with US Mint mintage)
bash
pcgs-pp-cli coin pop-curve 7356 --json

Recipe R3 — PCGS pop ÷ original mintage = survival rate, a more honest scarcity signal than raw pop. The CLI gives you pop across grades; you cross-walk PCGSNo to mintage from US Mint records. See article: collecting-us-gold-coins-by-year.

True-market scarcity (compose with NGC pop data)
bash
pcgs-pp-cli coin pop-curve 7356 --json

Recipe R4 — join PCGS pop with NGC pop on (Year, Denom, Mint, Grade) to compute the full-market scarcity and the PCGS-only premium.

Retail-vs-auction spread (compose with eBay sold listings)
bash
pcgs-pp-cli coin apr-cert 53972744 --json

Recipe R5 — pair PCGS APR with eBay completed-sales to spot retail-vs-auction spreads and counterfeit-cheap PCGS-labeled coins. See: Cfomodz/what-bot.

Inflation-adjusted realized prices (compose with FRED CPI)
bash
pcgs-pp-cli coin apr-grade --pcgs-no 7356 --grade 65 --plus=false --start 2000-01-01 --end 2026-01-01 --json

Recipe R6 — apply CPI ratio to APR Date+Price pairs to get real-dollar realized prices over time. See article: secrets-of-valuing-us-coins.

Set Registry path planning (compose with PCGS Set Registry)
bash
pcgs-pp-cli search --text "morgan" --min-grade 65 --json

Recipe R7 — cross-walk your cached cert list against PCGS Set Registry slot requirements to find which coins would qualify for top sets and the cheapest path to a top-100 set.

Pre-show inventory refresh (compose with PCGS show calendar)
bash
pcgs-pp-cli refresh --dry-run --field price-guide --older 30d --json

Recipe R8 — narrow refresh --dry-run output to series you're bringing to an upcoming show; pipe into refresh so the Price Guide values are current when you walk in.

Holder-type premium (compose with holder-generation catalog)
bash
pcgs-pp-cli coin facts-cert 53972744 --json

Recipe R9 — tag cached records by holder generation (OGH / rattler / blue label / gold-shield) using a cert-range + image lookup table. Keeping-the-pcgs-price-guide-updated notes holder-type premia.

Personal collection diff (compose with your downstream system)
bash
pcgs-pp-cli coin batch --file examples-pcgs-coin-list.csv --list-certs --json

Recipe R10 — diff coin batch --list-certs's normalized cert list against your downstream collection's cert export to find mismatches, missing certs, or certs that no longer match PCGS truth.

Show full SKILL.md (1,232 more words)Show less
Pair with numista-pp-cli for catalogue enrichment

Reach for numista-pp-cli when you have a PCGS cert result in hand and want the community-maintained catalogue context PCGS doesn't carry: the Numista N# (type ID), mintage by year/mint, references to traditional catalogues (Krause, Schön, Yeoman), and collector links. PCGS is grading-service-authoritative (cert, grade, population, auction history); Numista is catalogue-authoritative. They're complementary, not redundant.

Direct cross-walk (recommended when you have a PCGSNo). PCGS is one of Numista's reference catalogues, registered as catalogue id 1856 (code PCGS, title "PCGS CoinFacts"). When you have a PCGSNo on hand, two commands resolve the Numista N# in a single API call with no ambiguity:

bash
# 1. Get the PCGSNo from PCGS (no Numista quota cost).
pcgs-pp-cli coin facts-cert <cert-number> --json --select PCGSNo,Name,Year
# → e.g. {"PCGSNo":"7130","Name":"1881-S Morgan Dollar","Year":"1881"}

# 2. Look up the Numista N# directly via the catalogue cross-reference.
numista-pp-cli types search --catalogue 1856 --number 7130 \
  --agent --select types.id,types.title
# → {"results":{"types":[{"id":1492,"title":"1 Dollar \"Morgan Dollar\""}]}}

One result, definitive — no text-match guessing.

Text-search fallback (when PCGSNo is missing or the catalogue lookup misses). Some PCGS holders predate the modern numbering, and the PCGS CoinFacts Numista catalogue doesn't index every cert. When the direct lookup returns no types, fall back to a text search:

bash
pcgs-pp-cli coin facts-cert <cert-number> --json --select Name,Year,CountryName
# → e.g. {"Name":"1881-S Morgan Dollar","Year":"1881","CountryName":"United States"}

numista-pp-cli types search --q "morgan dollar" --issuer united-states --date 1881 \
  --agent --select types.id,types.title
# → top result is usually the Numista N# you want.

Use Numista's --date (Gregorian calendar year) for the year PCGS returns, not --year (which Numista defines as the year as written on the item — relevant for non-Gregorian dating systems on world coins; for US coins they coincide).

Notes:

  • Verify the catalogue ID at any time with numista-pp-cli catalogues find pcgs (local-only, no quota cost; requires that numista-pp-cli catalogues has been run at least once to populate the local cache).
  • This CLI does NOT depend on numista-pp-cli. No shell-out, no auto-detection — install it separately when you want catalogue enrichment.
  • numista-pp-cli's SKILL.md has a matching "If your input is a PCGS cert" section so an agent landing in either CLI gets directed to the other when the workflow calls for it.

Auth Setup

Set PCGS_AUTH_TOKEN to the bearer token generated at https://www.pcgs.com/publicapi. Run pcgs-pp-cli doctor to confirm reachability. All commands authenticate identically — there is one auth mode.

Run pcgs-pp-cli doctor to verify setup.

Agent Mode

Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.

  • Pipeable — JSON on stdout, errors on stderr

  • Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:

    bash
    pcgs-pp-cli banknote facts-cert mock-value --agent --select id,name,status
  • Previewable — --dry-run shows the request without sending

  • Offline-friendly — sync/search commands can use the local SQLite store when available

  • Non-interactive — never prompts, every input is a flag

  • Read-only — do not use this CLI for create, update, delete, publish, comment, upvote, invite, order, send, or other mutating requests

Response envelope

Most read commands wrap output in a provenance envelope:

json
{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout.

Coin lookup shape (facts-cert + batch — unified)

coin facts-cert and coin batch emit the same flat object shape, so one parser handles both surfaces. Single-cert returns one object; batch returns one JSONL line per cert.

json
{
  "cert_no": "50483263",
  "data": {
    "Name": "1881-S $1",
    "Year": 1881,
    "Grade": "MS65",
    "PriceGuideValue": 425,
    "year_mismatch": null,
    ...
  },
  "_keep": {}
}

_keep is always {} for single-cert lookups (it carries non-cert CSV columns through coin batch — set _keep.box, _keep.slot, etc. from your input row). Provenance for coin facts-cert moves to a stderr-only line in TTY mode; JSONL batch output has no provenance line.

PriceGuideValue: null means PCGS hasn't priced this slab

PCGS returns PriceGuideValue: 0 for unpriced modern slabs — David Hall FDI, brand-new releases, anything that hasn't entered the price guide yet. To prevent silent undercounting in sums and totals, the CLI rewrites 0 to null in every coin response (facts-cert, facts-grade, batch). A genuinely zero-valued coin still receives null — those are vanishingly rare and the prior 0 was ambiguous either way.

bash
# Unpriced David Hall PR70
pcgs-pp-cli coin facts-cert 53972744 --agent | jq '.data.PriceGuideValue'   # null

# Priced 1881-S Morgan
pcgs-pp-cli coin facts-cert 50483263 --agent | jq '.data.PriceGuideValue'   # 425
year_mismatch flags Name-vs-Year disagreement

PCGS occasionally returns a coin where the year prefix in Name (e.g., 2022-S $1 Silver Eagle) disagrees with the integer Year field (e.g., 2021). When the two disagree, the CLI injects a top-level year_mismatch object so the agent can decide which value to trust:

json
{
  "Name": "2022-S $1 Silver Eagle First Strike, DCAM",
  "Year": 2021,
  "year_mismatch": {"name_year": 2022, "year_field": 2021}
}

Absent (or null via jq) when the values agree, when Name has no parsable year prefix, or when Year is zero/missing.

bash
pcgs-pp-cli coin facts-cert 45987467 --agent | jq '.data.year_mismatch'   # {"name_year": 2022, "year_field": 2021}
pcgs-pp-cli coin facts-cert 50483263 --agent | jq '.data.year_mismatch'   # null
Images is omitted — fetch URLs with coin images <cert>

The PCGS CoinFacts endpoints return a stub Images: [{}, {}] array with no URL fields. The CLI strips the Images key entirely from coin facts-cert, coin facts-grade, coin facts-barcode, and coin batch responses so the empty objects don't read as "the image fetch failed". The image-presence booleans on the same response (HasObverseImage, HasReverseImage, HasTrueViewImage, ImageReady) are preserved so an agent can tell whether images exist before spending a second quota call.

bash
pcgs-pp-cli coin facts-cert 50483263 --agent | jq '.data | has("Images")'        # false
pcgs-pp-cli coin facts-cert 50483263 --agent | jq '.data.HasTrueViewImage'        # true (when applicable)

# Fetch the URLs separately
pcgs-pp-cli coin images 50483263 --agent
coin batch --csv --columns flat export

coin batch emits JSONL by default. Pass --csv to flatten the same stream into a single CSV with a header row. Pair with --columns to project a subset of dotted paths across the unified {cert_no, data, _keep} envelope — data.* reaches into the coin record, _keep.* reaches into the passthrough columns the input CSV carried, and cert_no is the top-level scalar.

bash
pcgs-pp-cli coin batch \
  --file pcgs-coin-list.csv \
  --csv \
  --columns "_keep.box,_keep.slot,cert_no,data.Name,data.Year,data.Grade,data.PriceGuideValue" \
  > out.csv

Missing fields emit an empty cell (not the literal string null). Nested objects/arrays are JSON-encoded into one cell so downstream tooling can re-parse them if needed. When --columns is omitted, the CSV auto-discovers a header from the keys present in the first emitted row, scoped to cert_no, top-level _keep.* keys, and top-level data.* keys.

Agent Feedback

When you (or the agent) notice something off about this CLI, record it:

pcgs-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
pcgs-pp-cli feedback --stdin < notes.txt
pcgs-pp-cli feedback list --json --limit 10

Entries are stored locally at ~/.pcgs-pp-cli/feedback.jsonl. They are never POSTed unless PCGS_FEEDBACK_ENDPOINT is set AND either --send is passed or PCGS_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.

Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.

Output Delivery

Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:

SinkEffect
stdoutDefault; write to stdout only
file:<path>Atomically write output to <path> (tmp + rename)
webhook:<url>POST the output body to the URL (application/json or application/x-ndjson when --compact)

Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.

Named Profiles

A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.

pcgs-pp-cli profile save briefing --json
pcgs-pp-cli --profile briefing banknote facts-cert mock-value
pcgs-pp-cli profile list --json
pcgs-pp-cli profile show briefing
pcgs-pp-cli profile delete briefing --yes

Explicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.

Exit Codes

CodeMeaning
0Success
2Usage error (wrong arguments)
3Resource not found
4Authentication required
5API error (upstream issue)
7Rate limited (wait and retry)
10Config error

Argument Parsing

Parse $ARGUMENTS:

  1. Empty, help, or --help → show pcgs-pp-cli --help output
  2. Starts with install → ends with mcp → MCP installation; otherwise → see Prerequisites above
  3. Anything else → Direct Use (execute as CLI command with --agent)

MCP Server Installation

Install the MCP binary from this CLI's published public-library entry or pre-built release, then register it:

bash
claude mcp add pcgs-pp-mcp -- pcgs-pp-mcp

Verify: claude mcp list

Direct Use

  1. Check if installed: which pcgs-pp-cli If not found, offer to install (see Prerequisites at the top of this skill).
  2. Match the user query to the best command from the Unique Capabilities and Command Reference above.
  3. Execute with the --agent flag:
    bash
    pcgs-pp-cli <command> [subcommand] [args] --agent
  4. If ambiguous, drill into subcommand help: pcgs-pp-cli <command> --help.

© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in cli-skills/pp-pcgs of mvanhorn/printing-press-library.

Open the folder on GitHubat commit 76de244

Compare with similar skills

Pp Pcgs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pp Pcgs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pp Pcgs this skillmvanhorn/printing-press-library2.1k—~6.2kAutomated safety check: NotesApache-2.0
Documentation Lookupaffaan-m/ECC276k1 repos~670Automated safety check: PassMIT
Documentation Lookupaffaan-m/ECC276k—~640Automated safety check: PassMIT
Dock Certs AutomationComposioHQ/awesome-claude-skills77k3 repos~742Automated safety check: PassNone
Context7 Documentation Lookupaffaan-m/ECC276k4 repos~1.2kAutomated safety check: PassMIT
Sslmate Cert Spotter API AutomationComposioHQ/awesome-claude-skills77k3 repos~794Automated safety check: PassNone

Similar skills

  • 通过 Context7 MCP 使用最新的库和框架文档,而非训练数据。当用户提出设置问题、API参考、代码示例或命名框架(例如 React、Next.js、Prisma)时激活。

    276k GitHub starsUsed in 1 repo~670 tokens
    DatabasesAuto-check passed
  • 訓練データの代わりにContext7 MCP経由で最新のライブラリとフレームワークドキュメント使用。セットアップの質問、APIリファレンス、コード例、またはユーザーがフレームワーク(例:React、Next.js、Prisma)に名前を付けるときにアクティベーション。

    276k GitHub stars~640 tokensUpdated 4 days ago
    DatabasesAuto-check passed
  • Dock Certs Automation

    ComposioHQ/awesome-claude-skills

    Automate Dock Certs tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~742 tokens
    Productivity & AutomationAuto-check passed
  • Fetches current library and framework documentation through the Context7 MCP instead of relying on training data, resolving a library ID before each query.

    276k GitHub starsUsed in 4 repos~1.2k tokens
    DevelopmentAuto-check passed
  • Sslmate Cert Spotter API Automation

    ComposioHQ/awesome-claude-skills

    Automate Sslmate Cert Spotter API tasks via Rube MCP (Composio).

    77k GitHub starsUsed in 3 repos~794 tokens
    Productivity & AutomationAuto-check passed
  • Database Lookup

    K-Dense-AI/scientific-agent-skills

    Queries documented public database APIs with explicit endpoints, filters, pagination, and provenance.

    48k GitHub starsUsed in 1 repo~6.9k tokens
    Research & ScienceAuto-check: notes

More from mvanhorn/printing-press-library

All 506 skills in this repo
  • Agent Desktop

    mvanhorn/printing-press-library

    Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.

    2.1k GitHub stars~2.3k tokensUpdated today
    Auto-check: notes
  • Gfonts

    mvanhorn/printing-press-library

    Search, browse, and download Google Fonts from the terminal via the gfonts CLI.

    2.1k GitHub stars~574 tokensUpdated today
    Auto-check passed
  • Pp 1688

    mvanhorn/printing-press-library

    The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.

    2.1k GitHub stars~3k tokensUpdated today
    Auto-check: notes
  • Pp Activity Japan

    mvanhorn/printing-press-library

    Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.

    2.1k GitHub stars~2k tokensUpdated today
    Auto-check: notes
  • Pp Adminbyrequest

    mvanhorn/printing-press-library

    Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...

    2.1k GitHub stars~3.3k tokensUpdated today
    Auto-check: notes
  • Pp Agent Capture

    mvanhorn/printing-press-library

    macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.

    2.1k GitHub stars~1.6k tokensUpdated today
    Auto-check: notes

Questions about Pp Pcgs

What does Pp Pcgs do?

The first CLI for the PCGS Public API — cert lookup, full CoinFacts extraction, and the 1,000-call-per-day budget... Pp Pcgs is an agent skill from mvanhorn/printing-press-library. The first CLI for the PCGS Public API — cert lookup, full CoinFacts extraction, and the 1,000-call-per-day budget...

When should I use Pp Pcgs?

Pp Pcgs fits situations like: phrases: verify a pcgs cert; look up a pcgs cert number; extract pcgs coinfacts; pcgs population report.

How do I install Pp Pcgs in Claude Code?

Run `npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a claude-code`. Or copy the skill folder (cli-skills/pp-pcgs in mvanhorn/printing-press-library) into .claude/skills/pp-pcgs in your project. Claude Code loads it when a task matches its description.

How do I install Pp Pcgs in Codex?

Run `npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a codex`. Or copy the skill folder (cli-skills/pp-pcgs in mvanhorn/printing-press-library) into .agents/skills/pp-pcgs in your project. Codex loads it when a task matches its description.

Can I use Pp Pcgs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-pcgs, .gemini/skills/pp-pcgs, .github/skills/pp-pcgs and .opencode/skills/pp-pcgs in your project.

What does Pp Pcgs need to run?

Going by SKILL.md and its folder, Pp Pcgs needs the command-line tools its instructions call (jq, claude, npx and go) and credentials named PCGS_AUTH_TOKEN. Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.

Does Pp Pcgs access the network?

SKILL.md names 1 domain. As links in the text: pcgs.com. This is read from the text; nothing was executed.

Is Pp Pcgs safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Pp Pcgs use?

Pp Pcgs is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pp Pcgs use?

About 6.2k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Pp Pcgs?

Skills that share tags, products or a category with Pp Pcgs: Documentation Lookup (affaan-m/ECC, 276k stars), Documentation Lookup (affaan-m/ECC, 276k stars), Dock Certs Automation (ComposioHQ/awesome-claude-skills, 77k stars) and Context7 Documentation Lookup (affaan-m/ECC, 276k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pp Pcgs?

mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,056 GitHub stars. The repository holds 506 skills in this directory. The repository was last updated on October 9, 2026.

Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.