Every Extron spec sheet and user manual, browsable and searchable offline with revision tracking no other Extron tool has.
Extron publishes spec sheets and manuals at extron.com, but finding them means browser tabs, letter-scoped tables, and a WAF that blocks plain curl. extron-pp-cli syncs the whole literature catalog into a local database, then lets you list, search, download, and track revisions from the terminal — including what's new (literature recent), which downloaded docs went stale (literature updates), and which doc types a rack's models are missing (catalog completeness).
Quick Start
# Health check that works without credentials — confirms the CLI and its config are sane.
extron-pp-cli doctor --dry-run
# Fetch the Extron literature catalog into the local store — everything else reads it.
extron-pp-cli catalog sync
# Browse the Manual category for M products (Matrix, MAV) straight from the official index.
extron-pp-cli literature list --category manual --letter m
# Resolve a product name to its official documents with revision and date metadata.
extron-pp-cli literature get "MAV Plus Series" --json
# Search the synced catalog offline — no website, no WAF.
extron-pp-cli search "DTP2" --type literature
Unique Features
These capabilities aren't available in any other tool for this API.
Local catalog that compounds
-
literature updates — See which downloaded spec sheets and manuals have a newer revision available upstream, so project shares never run stale docs.
Use this before commissioning or re-quoting to catch docs superseded since the last sync.
extron-pp-cli literature updates --dir ./docs --json
-
catalog completeness — Per-model gap report across Brochure, Declaration of Conformity, Design Guide, Product Guide, Manual, and Revit BIM — see which doc types each model is missing.
Use it before a bid submittal or commissioning checklist to catch missing compliance or reference docs.
extron-pp-cli catalog completeness --bom ./rack.csv --json
-
literature recent — Newest Extron literature across the whole library, ordered by date, filterable by category and age.
Use it to track manual/firmware-doc releases without re-checking the website.
extron-pp-cli literature recent --days 30 --category manual --json --select title,date,category,url
-
literature family — Browse every document for a product family (DTP, MAV, IPL, DVS, ...) across all alphabetical letters at once.
Use it to pull every doc for a family before writing control code or a design guide review.
extron-pp-cli literature family dtp --json
-
catalog verify — Compare local PDF sizes against the download ledger to flag truncated or mismatched downloads.
Use it after a batch download or sync to confirm every PDF landed complete and current.
extron-pp-cli catalog verify --dir ./docs --json
Project-driven assembly
-
literature rack — Assemble the full official doc set for every model in a rack bill of materials — report or batch-download in one pass.
Use it when a project's doc binder must match the exact gear list on the job.
extron-pp-cli literature rack --bom ./rack.csv --download --dir ./docs
Recipes
What did Extron release this month
extron-pp-cli literature recent --days 30 --json --select title,date,category,url
Agent-friendly list of the newest docs with a narrow --select so the payload stays small.
Stale-doc sweep before commissioning
extron-pp-cli literature updates --dir ./docs --download --dry-run
See which project PDFs are superseded and preview the re-download without touching disk.
Rack doc binder
extron-pp-cli literature rack --bom ./rack.csv --download --dir ./docs
Pull the full official doc set for every model on the job in one pass.
Family reference pull
extron-pp-cli literature family dtp --json
All DTP-family docs across every letter of the index, in machine-readable form.
Bid compliance check
extron-pp-cli catalog completeness --bom ./rack.csv --json
Which models are missing a Declaration of Conformity or manual before the submittal.
Usage
Run extron-pp-cli --help for the full command reference and flag list.
Paths & environment variables
This CLI separates local files into four path kinds:
| Kind | Contents |
|---|
config | User-editable settings such as config.toml and saved profiles |
data | Durable local data: credentials.toml, data.db, and the download ledger |
state | Runtime state such as persisted queries, jobs, and teach.log |
cache | Regenerable HTTP/cache files |
Each kind resolves independently. The ladder is:
- Per-kind env var:
EXTRON_CONFIG_DIR, EXTRON_DATA_DIR, EXTRON_STATE_DIR, or EXTRON_CACHE_DIR
--home <dir> for this invocation
EXTRON_HOME for a flat relocated root
- XDG env vars:
XDG_CONFIG_HOME, XDG_DATA_HOME, XDG_STATE_HOME, XDG_CACHE_HOME
- Platform defaults matching existing installs
For containers and agent sandboxes, prefer a single relocated root:
export EXTRON_HOME=/srv/extron
extron-pp-cli doctor
Under EXTRON_HOME=/srv/extron, the four dirs resolve to /srv/extron/config, /srv/extron/data, /srv/extron/state, and /srv/extron/cache.
MCP servers do not receive CLI flags from the host. Put relocation in the host env block:
{
"mcpServers": {
"extron": {
"command": "extron-pp-mcp",
"env": {
"EXTRON_HOME": "/srv/extron"
}
}
}
}
Precedence matters in fleets: an ambient per-kind variable such as EXTRON_DATA_DIR overrides an explicit --home for that kind. Use EXTRON_HOME or the per-kind variables for durable fleet relocation; treat --home as the weaker per-invocation lever.
Relocation is one-way. Unsetting EXTRON_HOME does not move files back to platform defaults, and doctor cannot find credentials left under a former root. Move the files manually before unsetting relocation variables.
Existing installs keep working because the platform-default rung matches the legacy layout. This CLI requires no credentials, so credentials.toml stays empty unless you write it yourself. Run extron-pp-cli doctor --fail-on warn to check path and credential-location warnings in automation.
Commands
literature
Extron literature library index (spec sheets, manuals, guides)
extron-pp-cli literature - Fetch the alphabetical literature index for a letter
Self-learning loop
This CLI caches per-question discovery so repeat queries skip the walk and structurally similar queries get answered via entity substitution. The loop also self-captures: every invocation is journaled locally, and failed-flag corrections plus fresh teaches surface as candidates on the next recall for confirm/reject judgment. Agents call recall before discovery and fire teach & after answering. See the ## Automatic learning section in SKILL.md for the full protocol.
extron-pp-cli recall <query> - Look up cached resources for a query before running discovery
extron-pp-cli teach - Record a query -> resource mapping (silent on success, safe to background with &)
extron-pp-cli learnings list - Inspect taught rows
extron-pp-cli learnings forget <query> - Undo a teach
extron-pp-cli learnings candidates - List auto-captured candidates awaiting confirm/reject
extron-pp-cli learnings stats - Local loop metrics: recall hit rate, teach-to-reuse, playbook resolution, candidate counts
extron-pp-cli teach-pattern - Install a query/resource template up front
extron-pp-cli teach-lookup - Add an entity mapping (e.g. country code, team alias) for pattern substitution
Pass --no-learn or set EXTRON_NO_LEARN=true to disable the loop for deterministic flows.
The local store's schema version stamp is one-way: once this version of extron-pp-cli opens the database, older binaries refuse it with a version error — upgrade the binary rather than downgrading.
Output Formats
# Human-readable table (default in terminal, JSON when piped)
extron-pp-cli literature
# JSON for scripting and agents
extron-pp-cli literature --json
# Filter to specific fields
extron-pp-cli literature --json --select id,name,status
# Dry run — show the request without sending
extron-pp-cli literature --dry-run
# Agent mode — JSON + compact + no prompts in one flag
extron-pp-cli literature --agent
Agent Usage
This CLI is designed for AI agent consumption:
- Non-interactive - never prompts, every input is a flag
- Pipeable -
--json output to stdout, errors to stderr
- Filterable -
--select id,name returns only fields you need
- Previewable -
--dry-run shows the request without sending
- Read-only by default - this CLI does not create, update, delete, publish, send, or mutate remote resources
- Offline-friendly - sync/search commands can use the local SQLite store when available
- Agent-safe by default - no colors or formatting unless
--human-friendly is set
Exit codes: 0 success, 2 usage error, 3 not found, 5 API error, 7 rate limited, 10 config error.
Health Check
extron-pp-cli doctor
Verifies configuration and connectivity to the API.
Configuration
Run extron-pp-cli doctor to see the resolved config, data, state, and cache directories. The platform-default config path is ~/.config/extron-pp-cli/config.toml; --home, EXTRON_HOME, and per-kind env vars can relocate it.
Static request headers can be configured under headers; per-command header overrides take precedence.
Troubleshooting
Not found errors (exit code 3)
- Check the resource ID is correct
- Run the
list command to see available items
API-specific
- Connection reset / read tcp ... connection reset by peer on sync or list — Extron's WAF intermittently resets non-browser connections. Re-run the command — retries succeed. The CLI retries once automatically.
- search returns nothing right after install — Run
extron-pp-cli sync first — search reads the local catalog, which starts empty.
- literature updates shows everything as stale — The drift check compares local filenames against the catalog; re-download with
extron-pp-cli literature updates --download to normalize filenames.
Sources & Inspiration
This CLI was built by studying these projects and resources:
Generated by CLI Printing Press