Documentation
ars-sicilia CLI
ars-sicilia-pp-cli
Install
npx -y @mvanhorn/printing-press-library install ars-siciliaInstalls the CLI binary and the agent skill for Claude Code, Codex, Cursor, Gemini CLI, Copilot, and more. Add --cli-only or --skill-only for one half. Requires Node.
Documentation
L'unica CLI per il portale dell'Assemblea Regionale Siciliana: cerca, sincronizza in locale e interroga tutti i 12 archivi documentali con SQL, FTS e MCP.
Sostituisce le 12 maschere JSP del portale ufficiale con una CLI agent-native. Sync in SQLite locale per query SQL, ricerca full-text cross-archivio, e novel commands come ddl iter (timeline completa di un disegno di legge) e deputato profilo (tutta l'attività di un parlamentare in un'unica chiamata).
Learn more at ARS Sicilia.
Created by @aborruso (aborruso).
Authentication
Nessuna credenziale richiesta: il portale ARS è pubblico. La sessione JSESSIONID per la ricerca è gestita automaticamente in modo trasparente dal client.
Quick Start
# Verifica raggiungibilità del portale e stato del database locale.
ars-sicilia-pp-cli doctor
# Sincronizza in locale leggi e DDL degli ultimi 30 giorni in SQLite.
ars-sicilia-pp-cli sync --resources leggi,ddl --max-pages 0
# Cerca i DDL della XVIII legislatura presentati nel 2024.
ars-sicilia-pp-cli ddl cerca --anno 2024 --legisl 18 --json
# Ricerca full-text cross-archivio sui documenti già sincronizzati.
ars-sicilia-pp-cli search "bilancio sanitario" --limit 20
# Timeline completa del DDL 1500 della XVIII legislatura.
ars-sicilia-pp-cli ddl iter 18 1500 --json
# Tutta l'attività parlamentare di un deputato in un'unica chiamata.
ars-sicilia-pp-cli deputato profilo "Rossi Mario" --json --select tipo,data,titolo
Known Gaps
- HTTP error exit codes: Non-429 HTTP errors from the Icaro portal (404, 5xx) exit with code 1 rather than typed exit codes (e.g. exit 3 for not-found, exit 5 for server error). Rate-limit responses (HTTP 429) correctly return exit 7. Scripts that branch on specific exit codes should use
ars-sicilia-pp-cli doctorto check connectivity first. legge cronologiadate filtering: The sommari search finds committee meetings that mention the law number in free text without a date ceiling. A committee meeting held after the law's promulgation date may appear in the timeline if it references the same number. Filter results by thedatafield when you need only pre-promulgation events.
Unique Features
These capabilities aren't available in any other tool for this API.
Vista cronologica cross-archivio
-
ddl iter— Ricostruisce la cronologia completa di un disegno di legge: presentazione, passaggio in commissione, lavori d'aula, eventuale promulgazione come legge regionale.Quando un agente deve raccontare 'a che punto sta il DDL X', questa è l'unica chiamata che restituisce la timeline completa senza incollare 5 ricerche manuali.
ars-sicilia-pp-cli ddl iter 18 1500 --json -
deputato profilo— Aggrega in un'unica vista tutti gli atti firmati o pronunciati da un deputato: DDL, interrogazioni, interpellanze, mozioni, ordini del giorno, risoluzioni e interventi in resoconti d'aula.Sostituisce un workflow di 7 click manuali con un'unica chiamata strutturata: pensata per agenti che rispondono a 'che ha fatto il deputato X?'.
ars-sicilia-pp-cli deputato profilo "Rossi Mario" --legisl 18 --json --select tipo,data,titolo -
commissione dossier— Vista completa su una commissione: convocazioni in calendario, sommari lavori, DDL assegnati e pareri richiesti al Governo regionale.Quando segui i lavori di una commissione specifica, questa è l'unica chiamata che dà il quadro completo invece di 3 ricerche separate.
ars-sicilia-pp-cli commissione dossier 5 --legisl 18 --json -
legge cronologia— Partendo da una legge regionale promulgata (archivio 201), risale al DDL originario, agli emendamenti citati nei resoconti d'aula e ai pareri di commissione: l'inverso temporale di ddl iter.Per ricercatori e giornalisti che partono dalla legge promulgata e vogliono raccontare come ci si è arrivati.
ars-sicilia-pp-cli legge cronologia 18 5 --json
Analytics su campi strutturati
-
analytics— Identifica i deputati che firmano insieme atti parlamentari, restituendo coppie e cluster con conteggio per analisi di network politico.Per ricercatori e giornalisti che analizzano alleanze e dinamiche politiche: niente foglio Excel di trascrizioni manuali.
ars-sicilia-pp-cli analytics --type ddl --group-by cofirmatari --limit 50 --json -
analytics— Classifica i deputati per numero di interventi nei resoconti d'aula, con range date e legislatura, opzionale conteggio parole.Per le persone che vogliono sapere 'chi parla di più' senza scaricare 200 resoconti PDF e fare ctrl+F.
ars-sicilia-pp-cli analytics --type resoconti --group-by oratore --limit 30 --csv
Stato e monitoraggio
-
ddl drift— Confronta lo stato dell'iter dei DDL nella sync corrente con la precedente e segnala i disegni di legge che si sono mossi nel periodo (passati da commissione ad aula, approvati, ritirati).L'RSS shell esistente segnala solo 'nuovi'; per 'mossi' non c'è alternativa. Questo è il segnale che cercavano i journalist che seguono iter politici.
ars-sicilia-pp-cli ddl drift --since 7d --json -
sync stale— Mostra per ognuno dei 12 archivi ARS: timestamp ultima sync, n. record locali, età della sync, eventuale segnalazione di staleness.Per agenti che orchestrano sync automatico: decide se rinfrescare prima di rispondere o se i dati locali sono ancora freschi.
ars-sicilia-pp-cli sync stale --json
Recipes
Sync iniziale completo XVIII legislatura
ars-sicilia-pp-cli sync --full --resources leggi,ddl,interrogazioni,mozioni,interpellanze,odg,risoluzioni,pareri,resoconti_aula,convocazioni_commissioni,sommari_commissioni
Prima sincronizzazione di tutti gli archivi politici della XVIII legislatura — i dati restano in ~/.local/share/ars-sicilia-pp-cli/store.db.
Iter completo di un DDL con output narrowing
ars-sicilia-pp-cli ddl iter 18 1500 --json --select fase,data,sede,oratori
Timeline del DDL 1500, mostrando solo i campi essenziali — riduce il payload per agenti.
Network di co-firmatari su DDL
ars-sicilia-pp-cli analytics --type ddl --group-by cofirmatari --limit 30 --csv
Produce un CSV con le coppie di deputati che firmano DDL insieme — pronto per import in duckdb o gephi.
Drift settimanale dei DDL
ars-sicilia-pp-cli ddl drift --since 7d --json
Confronta lo stato dell'iter rispetto a una settimana fa — i DDL che si sono mossi (commissione → aula, voto, ritiro) compaiono qui.
Analytics sui cofirmatari
ars-sicilia-pp-cli analytics --type ddl --group-by cofirmatari --limit 20 --legisl 18 --json
Top 20 coppie di deputati che firmano insieme DDL nella XVIII legislatura — aggregazione locale sul DB sincronizzato.
Ricerca per tema (vocabolario materie)
# Scopri le materie disponibili, filtra per parola chiave
ars-sicilia-pp-cli ddl materie | grep -i "sanit\|salut\|lavoro\|ambiente"
# Tutti i DDL sull'ambiente nella XVIII
ars-sicilia-pp-cli ddl cerca --legisl 18 --materia "Ambiente" --json | \
jq -r '.[] | "\(.data) — \(.title)"'
Utile per giornalisti che seguono un tema: la lista completa delle 123 materie è navigabile offline senza aprire il portale.
Veterani del parlamento — chi dura di più
ars-sicilia-pp-cli ddl firmatari --json | \
jq -r 'group_by(.nome)[] | select(length >= 4) | "\(length) legislature — \(.[0].nome)"' | \
sort -rn | head -10
Identifica i parlamentari con la carriera più lunga: quante e quali legislature hanno coperto. Cracolici Antonino è il record attuale con 6 legislature consecutive (XIII→XVIII).
Seguire un deputato — carriera e attività
# In quali legislature ha operato?
ars-sicilia-pp-cli ddl firmatari --search "Scoma" --json | jq -r '.[].legisl' | sort | tr '\n' ' '
# Tutti i DDL presentati nella XVIII
ars-sicilia-pp-cli ddl cerca --legisl 18 --firmatario "Scoma Francesco" --json | \
jq -r '.[] | "\(.data) — \(.title)"'
Nuovi deputati — chi è al primo mandato
ars-sicilia-pp-cli ddl firmatari --json | \
jq -r 'group_by(.nome)[] | select(length == 1 and .[0].legisl == "18") | .[0].nome'
Filtra i deputati presenti solo nella XVIII — al loro primo mandato regionale.
Iniziative parlamentari vs governative
# Tipi di iniziativa disponibili
ars-sicilia-pp-cli ddl iniziative
# DDL a iniziativa governativa nella XVIII
ars-sicilia-pp-cli ddl cerca --legisl 18 \
--isis-query "(18.LEGISL E Governativa.FIRMAT)" --limit 50 --json | jq 'length'
Distingue le proposte dei deputati (parlamentare) da quelle dell'esecutivo regionale (governativa).
Usage
Run ars-sicilia-pp-cli --help for the full command reference and flag list.
Commands
biblioteca
Catalogo Bibliografico (archivio 205) e Opere Multimediali (205multimedia).
ars-sicilia-pp-cli biblioteca cerca- Cerca nel catalogo bibliografico per autore, titolo, soggetto o ISBN.ars-sicilia-pp-cli biblioteca multimediali- Cerca nelle opere multimediali.
commissioni
Lavori delle Commissioni: convocazioni (229) e sommari (230).
ars-sicilia-pp-cli commissioni convocazioni- Convocazioni delle Commissioni.ars-sicilia-pp-cli commissioni sommari- Sommari dei lavori di commissione.
ddl
Disegni di Legge (archivio 221): proposte di legge presentate all'ARS.
ars-sicilia-pp-cli ddl cerca- Cerca disegni di legge per legislatura, anno, firmatario, materia o testo.ars-sicilia-pp-cli ddl get- Scarica un singolo disegno di legge.
interpellanze
Interpellanze parlamentari (archivio 234).
ars-sicilia-pp-cli interpellanze cerca- Cerca interpellanze.ars-sicilia-pp-cli interpellanze get- Scarica una singola interpellanza.
interrogazioni
Interrogazioni parlamentari (archivio 233).
ars-sicilia-pp-cli interrogazioni cerca- Cerca interrogazioni per legislatura, firmatario o rubrica.ars-sicilia-pp-cli interrogazioni get- Scarica una singola interrogazione.
leggi
Leggi della Regione Siciliana (archivio 201): testo storico delle leggi regionali.
ars-sicilia-pp-cli leggi cerca- Cerca leggi regionali per legislatura, anno, numero o testo.ars-sicilia-pp-cli leggi get- Scarica una singola legge regionale.
mozioni
Mozioni parlamentari (archivio 235).
ars-sicilia-pp-cli mozioni cerca- Cerca mozioni.ars-sicilia-pp-cli mozioni get- Scarica una singola mozione.
odg
Ordini del Giorno (archivio 236).
ars-sicilia-pp-cli odg cerca- Cerca ordini del giorno.ars-sicilia-pp-cli odg get- Scarica un singolo ordine del giorno.
pareri
Pareri richiesti dal Governo regionale alle Commissioni (archivio 226).
ars-sicilia-pp-cli pareri cerca- Cerca pareri richiesti dal Governo.ars-sicilia-pp-cli pareri get- Scarica un singolo parere.
resoconti
Resoconti delle Sedute d'Aula (archivio 217).
ars-sicilia-pp-cli resoconti cerca- Cerca resoconti per data, oratore o argomento.ars-sicilia-pp-cli resoconti get- Scarica un singolo resoconto.
risoluzioni
Risoluzioni parlamentari (archivio 238).
ars-sicilia-pp-cli risoluzioni cerca- Cerca risoluzioni.ars-sicilia-pp-cli risoluzioni get- Scarica una singola risoluzione.
Output Formats
# Human-readable table (default in terminal, JSON when piped)
ars-sicilia-pp-cli ddl get mock-value mock-value
# JSON for scripting and agents
ars-sicilia-pp-cli ddl get mock-value mock-value --json
# Filter to specific fields
ars-sicilia-pp-cli ddl get mock-value mock-value --json --select id,name,status
# Dry run — show the request without sending
ars-sicilia-pp-cli ddl get mock-value mock-value --dry-run
# Agent mode — JSON + compact + no prompts in one flag
ars-sicilia-pp-cli ddl get mock-value mock-value --agent
Agent Usage
This CLI is designed for AI agent consumption:
- Non-interactive - never prompts, every input is a flag
- Pipeable -
--jsonoutput to stdout, errors to stderr - Filterable -
--select id,namereturns only fields you need - Previewable -
--dry-runshows 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-friendlyis set
Exit codes: 0 success, 2 usage error, 3 not found, 5 API error, 7 rate limited, 10 config error.
Health Check
ars-sicilia-pp-cli doctor
Verifies configuration and connectivity to the API.
Configuration
Config file: ~/.config/ars-sicilia-pp-cli/config.toml
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
listcommand to see available items
API-specific
- I comandi
cercarestituiscono 0 risultati ma il sito ne mostra molti. — Verifica la legislatura: senza--legislla query usa il default. Il portale ARS richiede sempre una legislatura nel criterio. Esempio:--legisl 18per XVIII. - Errore di sessione o redirect inatteso. — Il portale resetta la sessione dopo 30 minuti di inattività. Riprova il comando: il client acquisisce una nuova
JSESSIONIDautomaticamente. - Comando
ddl iterodeputato profilonon trova nulla. — Le viste cross-archivio leggono dal DB locale: esegui primaars-sicilia-pp-cli sync --resources ddl,leggi,resoconti,convocazioni_commissioni,sommari_commissioni.
Sources & Inspiration
This CLI was built by studying these projects and resources:
Generated by CLI Printing Press
For agents: pass /documentation/ars-sicilia/agents.md to install this CLI from a prompt.