Loading Indicators
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing slow page loads, heavy assets, or rendering delays related to Show loading indicators.
Il primo CLI per l'Indice delle Pubbliche Amministrazioni — lookup istantaneo di enti, PEC, codici IPA,...
$ npx skills add mvanhorn/printing-press-library --skill pp-openipa -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-openipa --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-openipa .claude/skills/pp-openipa && 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-openipa" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-openipa into .claude/skills/pp-openipa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-openipa", 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-openipaType 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-openipa -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-openipa --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-openipa .agents/skills/pp-openipa && 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-openipa" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-openipa into .agents/skills/pp-openipa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-openipa", 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-openipa -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-openipa --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-openipa .cursor/skills/pp-openipa && 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-openipa" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-openipa into .cursor/skills/pp-openipa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-openipa", 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-openipa--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-openipa -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-openipa --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-openipa .gemini/skills/pp-openipa && 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-openipa" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-openipa into .gemini/skills/pp-openipa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-openipa", 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-openipaInstalls 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-openipa -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-openipa .github/skills/pp-openipa && 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-openipa" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-openipa into .github/skills/pp-openipa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-openipa", 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-openipa -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-openipa --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-openipa .opencode/skills/pp-openipa && 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-openipa" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-openipa into .opencode/skills/pp-openipa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-openipa", 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-openipaIl primo CLI per l'Indice delle Pubbliche Amministrazioni — lookup istantaneo di enti, PEC, codici IPA,...
Pp Openipa is an agent skill from mvanhorn/printing-press-library. Il primo CLI per l'Indice delle Pubbliche Amministrazioni — lookup istantaneo di enti, PEC, codici IPA,... Trigger phrases: trova la PEC di un comune, codice IPA per fattura elettronica, codice destinatario SDI di un ente pubblico, cerca amministrazione pubblica per nome, verifica CF ente PA, usa openipa, indicepa.
Its SKILL.md is about 5.1k 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.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pp Openipa loads about 5.1k tokens when it runs. Until then it costs about 85 tokens; SKILL.md has 2,137 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,137 words, ~5,108 tokens.
.claude/skills/pp-openipa/SKILL.md (or your agent's skills folder).<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/developer-tools/openipa/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 openipa-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 openipa --cli-onlyopenipa-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/developer-tools/openipa/cmd/openipa-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.
Il portale IPA richiede navigazione manuale ente per ente. openipa risolve tre problemi concreti per gli agenti che lavorano con la PA italiana:
fatturazione cf <CF> restituisce tutti i cod_uni_ou abilitati, pronti per la testata XML della fattura PA.cf <CF> interroga SFE + NSO + domicilio digitale in simultanea e produce una checklist pass/fail.fatturazione batch legge centinaia di CF da stdin e torna NDJSON.# Trova il codice IPA dell'ente
openipa-pp-cli enti cerca --nome "comune di Roma" --json | jq '.data.data[0].cod_amm'
# Ottieni cod_uni_ou per la fattura
openipa-pp-cli fatturazione cf --cf 02438750586 --json
# Verifica compliance completa
openipa-pp-cli cf 02438750586openipa-pp-cli domicilio verifica <pec-ente>
openipa-pp-cli cerca <pec-ente> --jsonopenipa-pp-cli enti tree agid --json
openipa-pp-cli uo list --codice agid --jsonUsa openipa quando un agente deve trovare dati anagrafici, PEC, codici destinatario SDI o nodi NSO di enti della PA italiana. È il tool giusto per validare CF contro il registro IPA prima di emettere fatture, verificare se un'amministrazione è abilitata alla fatturazione elettronica, o trovare il domicilio digitale ufficiale a cui inviare notifiche.
These capabilities aren't available in any other tool for this API.
cf — Dato un codice fiscale, verifica in un colpo se l'ente ha SFE attivo, NSO abilitato e domicilio digitale — checklist compliance PA completa.
Un agente che verifica la compliance PA deve sapere se un ente è pronto a ricevere fatture, ordini e notifiche digitali in un unico check.
openipa-pp-cli cf 97735020584 --jsonfatturazione batch — Legge CF da stdin, chiama WS01_SFE_CF in parallelo, restituisce NDJSON con CF + cod_uni_ou + stato_canale per pipeline di fatturazione.
Un agente che emette fatture PA in batch deve trovare tutti i codici destinatario in un solo passaggio senza loop manuali.
cat lista_cf.txt | openipa-pp-cli fatturazione batch --jsonenti tree — Vista ad albero di un ente con tutte le sue AOO e UO associate — Ente → AOO[N] → UO[M] in output testuale o JSON annidato.
Un agente che deve capire la struttura organizzativa di un ente PA ottiene tutto in un comando invece di navigare tre endpoint separati.
openipa-pp-cli enti tree agid --jsondomicilio verifica — Controlla se una PEC è il domicilio digitale attivo di un ente, storico (cessato) o sconosciuta — produce stato classificato.
Un agente che invia notifiche PA deve sapere se una PEC è ancora valida prima di usarla — inviare a PEC cessata invalida la comunicazione.
openipa-pp-cli domicilio verifica <pec-ente> --jsoncerca — Dato un indirizzo email o PEC, trova l'ente IPA titolare — AMM, AOO o UO — con cod_amm e tipo entità.
Un agente che riceve una PEC in ingresso può risalire all'ente mittente senza conoscere il codice IPA.
openipa-pp-cli cerca <pec-ente> --jsonaoo — Aree Organizzative Omogenee degli enti
openipa-pp-cli aoo cerca <cod_uni_aoo> — Dati AOO per codice univoco IPA a 7 caratteri (es. A463BFE) — non il cod_aoo testuale (es. agid_aoo)openipa-pp-cli aoo get — AOO di un ente con filtro opzionale per codice AOOopenipa-pp-cli aoo list — Lista delle AOO di un enteopenipa-pp-cli aoo storico <cod_amm> — Lista AOO di un ente (attive + cessate); espone cod_uni_aoo utile per aoo cercacerca — Ricerca trasversale — trova entità IPA per email
openipa-pp-cli cerca — Trova entità IPA (AMM/AOO/UO) associate a un indirizzo emaildomicilio — Domicili digitali (PEC e SERC) delle entità IPA
openipa-pp-cli domicilio aoo — Domicilio digitale attivo di una AOOopenipa-pp-cli domicilio cf — Domicilio digitale di un ente per codice fiscaleopenipa-pp-cli domicilio email — Cerca entità IPA tramite indirizzo domicilio digitale (PEC)openipa-pp-cli domicilio storico-aoo — Storico domicili digitali di una AOO (inclusi cessati)openipa-pp-cli domicilio storico-uo — Storico domicili digitali di una UO (inclusi cessati)openipa-pp-cli domicilio uo — Domicilio digitale attivo di una UO per codice univocoenti — Ricerca e dettagli degli enti (Pubbliche Amministrazioni)
openipa-pp-cli enti cerca — Cerca enti per nome o descrizioneopenipa-pp-cli enti get — Dati anagrafici completi di un ente per codice IPAopenipa-pp-cli enti istat — Abbina codice IPA ↔ ISTAT tramite dataset CKAN (--codice <IPA> o --istat <ISTAT>)openipa-pp-cli enti categorie — Lista live delle categorie IPA con codici (filtrabile con --cerca <testo>)fatturazione — Servizi di fatturazione elettronica (SFE) — ricerca uffici destinatari
openipa-pp-cli fatturazione cf — Uffici destinatari fattura elettronica per codice fiscale enteopenipa-pp-cli fatturazione ente — Canali SFE attivi di un ente per codice IPAnso — Nodi di Smistamento Ordini (NSO) per ordini elettronici
openipa-pp-cli nso cf — Nodi NSO per codice fiscale enteopenipa-pp-cli nso ente — Canali NSO attivi di un ente per codice IPApec — Indirizzi PEC degli enti IPA
openipa-pp-cli pec ente <cod_amm> — PEC attive di un ente per codice IPA (WS20)openipa-pp-cli pec storico <cod_amm> — Storico PEC di un ente, attive e cessate (WS21)openipa-pp-cli pec cerca <indirizzo-pec> — Storia di un indirizzo PEC specifico nell'IPA (WS22)uo — Unità Organizzative degli enti
openipa-pp-cli uo get — Dettagli di una singola UO per codice univocoopenipa-pp-cli uo list — Lista delle UO di un enteservizi — Servizi digitali pubblicati sul portale IPA (non API pubblica, nessun AUTH_ID richiesto)
openipa-pp-cli servizi tipi — Lista le tipologie di servizi digitali degli enti. Usa questi ID con servizi ente --tipologia.openipa-pp-cli servizi tipi --uo — Lista le categorie dei servizi erogati dalle UO. Usa questi ID con servizi uo --categoria.openipa-pp-cli servizi ente — Cerca servizi online erogati da enti, con URL quando presente: albo pretorio, pagoPA, SUAP, tributi, pratiche edilizie, concorsi, contravvenzioni, appalti.openipa-pp-cli servizi uo — Cerca UO per categoria o descrizione del servizio erogato, spesso con email e codice UO.Esempi:
# Albo pretorio / accesso agli atti del Comune di Bari
openipa-pp-cli servizi ente --nome-ente "Comune di Bari" --nome-servizio "albo" --json
# Scoprire l'ID tipologia: Accesso agli atti = 1, include Albo Pretorio
openipa-pp-cli servizi tipi --json | jq '.data[] | select(.tipo == "Accesso agli atti")'
# Tutti i servizi di una tipologia in un'area
openipa-pp-cli servizi ente --area "Bari" --tipologia 1 --json
--nome-enteè una ricerca testuale ampia:"Comune di Bari"può restituire anche Bariano, Baricella, Barisardo, ecc. Filtra per.denominazioneEnte == "Comune di Bari"quando serve una corrispondenza esatta.
sede — Ricerca per nome/area (portale IPA — non API pubblica, nessun AUTH_ID richiesto)
openipa-pp-cli sede enti — Cerca enti per nome, CF, area geografica, categoriaopenipa-pp-cli sede aoo — Cerca AOO per nome testo libero — unico modo per trovare AOO senza conoscerne il codice (es. prefetture, questure)openipa-pp-cli sede uo — Cerca UO per nome, area geografica, enteRestituisce 30 risultati per pagina; aggiungere --tutti per scaricare tutto.
Ricerca per nome senza conoscere il tipo di entità:
IPA distingue tre tipi: enti autonomi, AOO, UO. Se non sai di che tipo è la struttura che cerchi, prova in cascata:
| Passo | Comando | Trova |
|---|---|---|
| 1 | enti cerca --nome <nome> | ente con codice IPA proprio (comuni, ministeri, università…) |
| 2 | sede aoo --nome <keyword> | AOO di un ente padre (prefetture, questure, provveditorati…) |
| 3 | sede uo --nome <keyword> | UO interna a un ente |
Limite
--nomesusede: accetta una singola parola chiave; con più parole il risultato è spesso vuoto. Usa la keyword più distintiva e filtra via jq.
Riepilogo modalità di ricerca AOO:
| Comando | Input | Quando usarlo |
|---|---|---|
aoo list --codice <cod_amm> | codice ente padre | vuoi tutte le AOO di un ente noto |
aoo cerca <cod_uni_aoo> | codice univoco IPA a 7 car. | hai già il cod_uni_aoo — recuperalo con sede aoo o aoo storico |
sede aoo --nome <keyword> | singola parola chiave | cerchi per denominazione senza codice — poi aoo cerca <cod_uni_aoo> per i contatti |
rtd — Responsabile Transizione Digitale (portale IPA — non API pubblica)
openipa-pp-cli rtd cerca — Cerca RTD per nominativo, ente, area geografica, categoriaNota: l'RTD non è esposto dai web service ufficiali IPA (WS01-WS23); questo comando usa il portale PortaleServices.
aoo cerca vuole cod_uni_aoo, non cod_aoo — Il parametro è l'identificatore univoco IPA a 7 caratteri (es. A463BFE), diverso dal cod_aoo testuale dell'ente (es. agid_aoo). Per ottenerlo: openipa-pp-cli aoo storico <cod_amm> --json | jq '.[].cod_uni_aoo'/ws/<Bundle>Services/api/<WS>). Il CLI usa già il formato corretto; i vecchi path .php non sono più supportati per questi WS.When you know what you want to do but not which command does it, ask the CLI directly:
openipa-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.
openipa-pp-cli fatturazione cf --cf 80012000826 --json --select 'data[*].OU[*].cod_uni_ou'Estrai il campo cod_uni_ou da usare nel campo 'Ufficio destinatario' della fattura XML SDI
openipa-pp-cli cf 80012000826 --jsonVerifica che l'ente abbia SFE attivo, NSO abilitato e domicilio digitale — unico tool che fa tutto in un colpo
openipa-pp-cli sede enti --area "Sicilia" --tutti --json | jq '.meta.total'Conta gli enti siciliani — usa il portale IPA con auto-paginazione
openipa-pp-cli servizi ente --nome-ente "Comune di Bari" --nome-servizio "albo" --json \
| jq -r '.data[] | select(.denominazioneEnte == "Comune di Bari") | .uri'Cerca nei servizi digitali IPA: l'Albo Pretorio è tipicamente nella tipologia Accesso agli atti (--tipologia 1).
openipa-pp-cli domicilio verifica <pec-ente> --json --select 'status,tipo'Controlla se una PEC è ancora il domicilio digitale attivo di un ente IPA
openipa-pp-cli cerca <email-ente> --json --select 'tipo_entita,cod_amm,des_amm'Identifica quale ente/AOO/UO usa una specifica email — utile per de-anonimizzare comunicazioni PA
openipa-pp-cli rtd cerca --ente "Comune di Roma" --json --select 'nomeResponsabile,denominazioneEnte'Restituisce nome e cognome del RTD per un ente. Non disponibile via API pubblica IPA.
openipa-pp-cli rtd cerca --area "Sicilia" --json | jq '[.data[] | {rtd: .nomeResponsabile, ente: .denominazioneEnte}]'Lista tutti i RTD di una regione.
openipa-pp-cli sede enti --area "Palermo" --json --select 'denominazioneEnte,strada,numAoo,numOu'Elenca tutti gli enti con sede a Palermo — non disponibile via API pubblica IPA. Usa il nome del comune senza sigla provinciale.
Con --tutti vengono scaricate automaticamente tutte le pagine (default: 30 risultati per pagina):
openipa-pp-cli sede enti --nome "ospedale" --tutti --json | jq '[.data[] | .denominazioneEnte]'Quando non sai se la struttura è un ente autonomo, una AOO o una UO, prova in cascata — la maggior parte dei casi si risolve al passo 1 o 2.
# Passo 1 — enti autonomi (comuni, ministeri, università…)
openipa-pp-cli enti cerca --nome "<nome>" --agent
# Passo 2 — AOO (usa una sola parola chiave, non frasi composte)
openipa-pp-cli sede aoo --nome "<keyword>" --tutti --agent | \
jq '.data[] | select(.denominazioneAoo | test("<filtro>"; "i")) | {nome: .denominazioneAoo, ente: .denominazioneEnte, cod_uni_aoo: .codUniAoo}'
# Passo 3 — UO
openipa-pp-cli sede uo --nome "<keyword>" --agentSe il passo 2 trova una AOO e ti servono i contatti (PEC, telefono, indirizzo), recuperali con un secondo step — il campo domicili di sede aoo è spesso null:
openipa-pp-cli aoo cerca <cod_uni_aoo> --agent
# → mail1 = PEC, tel = telefono, indirizzo = sedePer una ricerca esaustiva in parallelo su tutti i tipi:
openipa-pp-cli enti cerca --nome "<nome>" --agent &
openipa-pp-cli sede aoo --nome "<keyword>" --tutti --agent &
openipa-pp-cli sede uo --nome "<keyword>" --agent &
waitAlcune strutture note non sono enti IPA autonomi ma AOO di un ente padre: enti cerca restituisce 0 risultati per loro.
m_it)# trova nome IPA esatto e contatti (es. prefettura di una provincia)
openipa-pp-cli sede aoo --nome "prefettura" --tutti --agent | \
jq '.data[] | select(.denominazioneAoo | test("<provincia>"; "i")) | {nome: .denominazioneAoo, cod_uni_aoo: .codUniAoo}'
# poi recupera PEC e telefono con:
openipa-pp-cli aoo cerca <cod_uni_aoo> --agentRichiede un AUTH_ID gratuito da registrare su indicepa.gov.it (rilasciato immediatamente). Salvalo come variabile d'ambiente IPA_auth_id o in ~/.config/openipa/config.toml.
Run openipa-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:
openipa-pp-cli aoo list --codice example-value --agent --select id,name,statusPreviewable — --dry-run shows the request without sending
Non-interactive — never prompts, every input is a flag
Explicit retries — use --idempotent only when an already-existing create should count as success
When you (or the agent) notice something off about this CLI, record it:
openipa-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
openipa-pp-cli feedback --stdin < notes.txt
openipa-pp-cli feedback list --json --limit 10Entries are stored locally at ~/.openipa-pp-cli/feedback.jsonl. They are never POSTed unless OPENIPA_FEEDBACK_ENDPOINT is set AND either --send is passed or OPENIPA_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.
openipa-pp-cli profile save briefing --json
openipa-pp-cli --profile briefing aoo list --codice example-value
openipa-pp-cli profile list --json
openipa-pp-cli profile show briefing
openipa-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 openipa-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 openipa-pp-mcp -- openipa-pp-mcpVerify: claude mcp list
which openipa-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:openipa-pp-cli <command> [subcommand] [args] --agentopenipa-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-openipa of mvanhorn/printing-press-library.
Open the folder on GitHubat commit 76de244
Pp Openipa 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 Openipa this skillmvanhorn/printing-press-library | 2.1k | — | ~5.1k | Automated safety check: Notes | Apache-2.0 | |
| Loading Indicatorsthedaviddias/Front-End-Checklist | 74k | — | ~434 | Automated safety check: Pass | MIT | |
| Hunting For Spearphishing Indicatorsmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Collecting Indicators Of Compromisemukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Analyzing Indicators Of Compromisemukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Investigating Insider Threat Indicatorsmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 |
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing slow page loads, heavy assets, or rendering delays related to Show loading indicators.
mukul975/Anthropic-Cybersecurity-Skills
Hunt for spearphishing campaign indicators across email logs, endpoint telemetry, and network data to detect targeted email attacks.
mukul975/Anthropic-Cybersecurity-Skills
Systematically collects, categorizes, and distributes indicators of compromise (IOCs) during and after security incidents to enable detection, blocking, and threat intelligence sharing.
mukul975/Anthropic-Cybersecurity-Skills
Analyzes indicators of compromise (IOCs) including IP addresses, domains, file hashes, URLs, and email artifacts to determine maliciousness confidence, campaign attribution, and blocking priority.
mukul975/Anthropic-Cybersecurity-Skills
Investigates insider threat indicators including data exfiltration attempts, unauthorized access patterns, policy violations, and pre-departure behaviors using SIEM analytics, DLP alerts, and HR…
mukul975/Anthropic-Cybersecurity-Skills
Identify ransomware-related network indicators, including C2 beaconing patterns, TOR exit node connections, data exfiltration flows, and encryption key exchange, by analyzing Zeek conn.log and…
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.
Il primo CLI per l'Indice delle Pubbliche Amministrazioni — lookup istantaneo di enti, PEC, codici IPA,... Pp Openipa is an agent skill from mvanhorn/printing-press-library. Il primo CLI per l'Indice delle Pubbliche Amministrazioni — lookup istantaneo di enti, PEC, codici IPA,...
Pp Openipa fits situations like: phrases: trova la PEC di un comune; codice IPA per fattura elettronica; codice destinatario SDI di un ente pubblico; cerca amministrazione pubblica per nome.
Run `npx skills add mvanhorn/printing-press-library --skill pp-openipa -a claude-code`. Or copy the skill folder (cli-skills/pp-openipa in mvanhorn/printing-press-library) into .claude/skills/pp-openipa in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvanhorn/printing-press-library --skill pp-openipa -a codex`. Or copy the skill folder (cli-skills/pp-openipa in mvanhorn/printing-press-library) into .agents/skills/pp-openipa 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-openipa -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-openipa, .gemini/skills/pp-openipa, .github/skills/pp-openipa and .opencode/skills/pp-openipa in your project.
Going by SKILL.md and its folder, Pp Openipa needs the command-line tools its instructions call (jq, claude, npx and go). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. 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 Openipa 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 5.1k tokens (SKILL.md is roughly 20k 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 Openipa: Loading Indicators (thedaviddias/Front-End-Checklist, 74k stars), Hunting For Spearphishing Indicators (mukul975/Anthropic-Cybersecurity-Skills, 34k stars), Collecting Indicators Of Compromise (mukul975/Anthropic-Cybersecurity-Skills, 34k stars) and Analyzing Indicators Of Compromise (mukul975/Anthropic-Cybersecurity-Skills, 34k 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.