Documentation Lookup
affaan-m/ECC
通过 Context7 MCP 使用最新的库和框架文档,而非训练数据。当用户提出设置问题、API参考、代码示例或命名框架(例如 React、Next.js、Prisma)时激活。
The first CLI for the PCGS Public API — cert lookup, full CoinFacts extraction, and the 1,000-call-per-day budget...
$ npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pcgs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "pp-pcgs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pcgs into .claude/skills/pp-pcgs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pcgs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pcgsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pcgs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-skills/pp-pcgs .agents/skills/pp-pcgs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pp-pcgs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pcgs into .agents/skills/pp-pcgs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pcgs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pcgs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-skills/pp-pcgs .cursor/skills/pp-pcgs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pp-pcgs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pcgs into .cursor/skills/pp-pcgs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pcgs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvanhorn/printing-press-library.git --path cli-skills/pp-pcgs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pcgs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-skills/pp-pcgs .gemini/skills/pp-pcgs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pp-pcgs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pcgs into .gemini/skills/pp-pcgs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pcgs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvanhorn/printing-press-library pp-pcgsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-skills/pp-pcgs .github/skills/pp-pcgs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pp-pcgs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pcgs into .github/skills/pp-pcgs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pcgs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-pcgs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvanhorn/printing-press-library pp-pcgs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-skills/pp-pcgs .opencode/skills/pp-pcgs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pp-pcgs" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-pcgs into .opencode/skills/pp-pcgs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-pcgs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pp-pcgsThe 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... 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.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 76de244. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
jqclaudenpxgoFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
pcgs.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PCGS_AUTH_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, BashAutomated 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.
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.
.claude/skills/pp-pcgs/SKILL.md (or your agent's skills folder).<!-- 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/". -->
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:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install pcgs --cli-onlypcgs-pp-cli --version$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):
go install github.com/mvanhorn/printing-press-library/library/other/pcgs/cmd/pcgs-pp-cli@latestIf --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.
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.
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.
These capabilities aren't available in any other tool for this API.
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.
pcgs-pp-cli coin batch --file ./pcgs-coin-list.csv --dry-run --jsonrefresh — 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.
pcgs-pp-cli refresh --all --older 7d --jsoncoin 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.
pcgs-pp-cli coin pop-curve 7356 --plus --include-details --jsonorder 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.
pcgs-pp-cli order hydrate 12345678 --with-images --jsonaudit — 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.
pcgs-pp-cli audit --since 7d --failed --by-endpoint --jsonsearch — 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.
pcgs-pp-cli search --text "morgan dollar" --year 1881 --top-pct 5 --json --select Name,Year,Grade,Population,PriceGuideValuebanknote — 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.When you know what you want to do but not which command does it, ask the CLI directly:
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.
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.ServerMessageSingle 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.)
pcgs-pp-cli coin batch --file examples-pcgs-coin-list.csv --dry-run --jsonReads the local cache, dedupes against the fixture, and tells you whether the batch fits today's remaining quota — zero API calls spent.
pcgs-pp-cli coin batch --file examples-pcgs-coin-list.csv --list-certs --jsonAuto-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.
pcgs-pp-cli coin pop-curve 7356 --plus --include-details --jsonOne 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.
pcgs-pp-cli search --text "morgan" --year 1881 --min-pop 100 --json --select Name,Year,Grade,Population,PopHigher,PriceGuideValueNo API call. Uses FTS5 + numeric filters against the local cache, with --select narrowing the response so an agent sees only the fields that matter.
pcgs-pp-cli refresh --dry-run --field price-guide --older 30d --jsonPicks the right input to sync: only the cached coins whose PriceGuideValue has not been refreshed in 30 days. Pipes directly into sync --cert -.
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.
pcgs-pp-cli coin apr-cert 53972744 --jsonRecipe 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.
pcgs-pp-cli coin pop-curve 7356 --jsonRecipe 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.
pcgs-pp-cli coin pop-curve 7356 --jsonRecipe R4 — join PCGS pop with NGC pop on (Year, Denom, Mint, Grade) to compute the full-market scarcity and the PCGS-only premium.
pcgs-pp-cli coin apr-cert 53972744 --jsonRecipe R5 — pair PCGS APR with eBay completed-sales to spot retail-vs-auction spreads and counterfeit-cheap PCGS-labeled coins. See: Cfomodz/what-bot.
pcgs-pp-cli coin apr-grade --pcgs-no 7356 --grade 65 --plus=false --start 2000-01-01 --end 2026-01-01 --jsonRecipe R6 — apply CPI ratio to APR Date+Price pairs to get real-dollar realized prices over time. See article: secrets-of-valuing-us-coins.
pcgs-pp-cli search --text "morgan" --min-grade 65 --jsonRecipe 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.
pcgs-pp-cli refresh --dry-run --field price-guide --older 30d --jsonRecipe 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.
pcgs-pp-cli coin facts-cert 53972744 --jsonRecipe 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.
pcgs-pp-cli coin batch --file examples-pcgs-coin-list.csv --list-certs --jsonRecipe 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.
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:
# 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:
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:
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).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.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.
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:
pcgs-pp-cli banknote facts-cert mock-value --agent --select id,name,statusPreviewable — --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
Most read commands wrap output in a provenance envelope:
{
"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 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.
{
"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 slabPCGS 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.
# 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' # 425year_mismatch flags Name-vs-Year disagreementPCGS 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:
{
"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.
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' # nullImages 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.
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 --agentcoin batch --csv --columns flat exportcoin 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.
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.csvMissing 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.
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 10Entries 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.
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:
| Sink | Effect |
|---|---|
stdout | Default; 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.
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 --yesExplicit 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.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 4 | Authentication required |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Parse $ARGUMENTS:
help, or --help → show pcgs-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)Install the MCP binary from this CLI's published public-library entry or pre-built release, then register it:
claude mcp add pcgs-pp-mcp -- pcgs-pp-mcpVerify: claude mcp list
which pcgs-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:pcgs-pp-cli <command> [subcommand] [args] --agentpcgs-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
Just SKILL.md in cli-skills/pp-pcgs of mvanhorn/printing-press-library.
Open the folder on GitHubat commit 76de244
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Pcgs this skillmvanhorn/printing-press-library | 2.1k | — | ~6.2k | Automated safety check: Notes | Apache-2.0 | |
| Documentation Lookupaffaan-m/ECC | 276k | 1 repos | ~670 | Automated safety check: Pass | MIT | |
| Documentation Lookupaffaan-m/ECC | 276k | — | ~640 | Automated safety check: Pass | MIT | |
| Dock Certs AutomationComposioHQ/awesome-claude-skills | 77k | 3 repos | ~742 | Automated safety check: Pass | None | |
| Context7 Documentation Lookupaffaan-m/ECC | 276k | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Sslmate Cert Spotter API AutomationComposioHQ/awesome-claude-skills | 77k | 3 repos | ~794 | Automated safety check: Pass | None |
affaan-m/ECC
通过 Context7 MCP 使用最新的库和框架文档,而非训练数据。当用户提出设置问题、API参考、代码示例或命名框架(例如 React、Next.js、Prisma)时激活。
affaan-m/ECC
訓練データの代わりにContext7 MCP経由で最新のライブラリとフレームワークドキュメント使用。セットアップの質問、APIリファレンス、コード例、またはユーザーがフレームワーク(例:React、Next.js、Prisma)に名前を付けるときにアクティベーション。
ComposioHQ/awesome-claude-skills
Automate Dock Certs tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.
affaan-m/ECC
Fetches current library and framework documentation through the Context7 MCP instead of relying on training data, resolving a library ID before each query.
ComposioHQ/awesome-claude-skills
Automate Sslmate Cert Spotter API tasks via Rube MCP (Composio).
K-Dense-AI/scientific-agent-skills
Queries documented public database APIs with explicit endpoints, filters, pagination, and provenance.
mvanhorn/printing-press-library
Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.
mvanhorn/printing-press-library
Search, browse, and download Google Fonts from the terminal via the gfonts CLI.
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.
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.
mvanhorn/printing-press-library
Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...
mvanhorn/printing-press-library
macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.
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...
Pp Pcgs fits situations like: phrases: verify a pcgs cert; look up a pcgs cert number; extract pcgs coinfacts; pcgs population report.
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.
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.
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.
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.
SKILL.md names 1 domain. As links in the text: pcgs.com. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.