CLI @insourcia/cli
@insourcia/cli est un client en ligne de commande générique pour les tools RPC. Zéro dépendance runtime, installable via npx.
Installation
Section titled “Installation”Via npx (sans installation persistante) :
npx @insourcia/cli --helpInstallation globale :
npm install -g @insourcia/cliinsourcia --helpRequiert Node.js ≥ 20.
Configuration
Section titled “Configuration”Deux façons de fournir la clé API :
# Via env var (recommandé pour scripts CI)export INSOURCIA_API_TOKEN=isk_xxx
# Ou via flaginsourcia tools list --token isk_xxxOverride de l’URL (utile pour tests sur staging) :
export INSOURCIA_API_BASE_URL=https://staging.insourcia.ioDéfaut : https://app.insourcia.io.
Commandes
Section titled “Commandes”Lister les tools disponibles
Section titled “Lister les tools disponibles”insourcia tools listCombine avec jq :
insourcia tools list | jq '.tools[].name'# "search_companies"# "get_company"# ...Invoquer un tool
Section titled “Invoquer un tool”insourcia tools call <name> --input '<json>'Exemples :
insourcia tools call search_companies --input '{"query":"vinci","limit":3}'
insourcia tools call get_company --input '{"siren":"552120222"}'
insourcia tools call get_financials --input '{"siren":"552120222","years":5}'Lire l’input depuis un fichier
Section titled “Lire l’input depuis un fichier”insourcia tools call search_companies --input @search-params.jsonLire l’input depuis stdin (pipe)
Section titled “Lire l’input depuis stdin (pipe)”echo '{"siren":"552120222"}' | insourcia tools call get_company --input -Utile pour chaîner :
insourcia tools call search_companies --input '{"query":"vinci"}' \ | jq '{siren: .data[0].siren}' \ | insourcia tools call get_financials --input -Format de sortie
Section titled “Format de sortie”Par défaut, la commande unwrap l’envelope {success, data} et renvoie juste data. Plus pratique pour piper.
Pour conserver l’envelope (utile en debug) :
insourcia tools call get_company --input '{"siren":"552120222"}' --raw# {"success": true, "data": {...}}Codes de sortie
Section titled “Codes de sortie”0: succès1: erreur d’usage (token manquant, JSON invalide, commande inconnue)2: erreur API (4xx/5xx) ou réseau (ECONNREFUSED, timeout)
Permet d’enchaîner en bash :
if insourcia tools call get_company --input '{"siren":"552120222"}' > /dev/null 2>&1; then echo "OK"else echo "Erreur — code $?"fiCas d’usage typiques
Section titled “Cas d’usage typiques”Vérifier qu’un SIREN existe
Section titled “Vérifier qu’un SIREN existe”insourcia tools call get_company --input '{"siren":"552120222"}' --raw \ | jq -r '.success'Export CSV de bilans
Section titled “Export CSV de bilans”for siren in $(cat sirens.txt); do insourcia tools call get_financials --input "{\"siren\":\"$siren\"}" \ | jq -r '[.exercices[] | [.annee, .chiffre_affaires, .resultat_net]] | @csv'done > export.csvSmoke test après déploiement
Section titled “Smoke test après déploiement”insourcia tools list --base-url https://staging.insourcia.io > /dev/null \ && echo "✓ Staging OK" \ || echo "✗ Staging KO"