Aller au contenu

@insourcia/cli est un client en ligne de commande générique pour les Tools RPC. Sans dépendance à l’exécution, utilisable via npx.

Via npx (sans installation persistante) :

Fenêtre de terminal
npx @insourcia/cli --help

Installation globale :

Fenêtre de terminal
npm install -g @insourcia/cli
insourcia --help

Node.js 20 ou plus récent est requis.

Deux façons de vous authentifier.

Par votre compte (OAuth), sans clé à copier :

Fenêtre de terminal
insourcia auth login # ouvre le navigateur pour autoriser l'accès
insourcia auth status # affiche l'état de la connexion
insourcia auth logout # oublie les identifiants enregistrés

Les identifiants sont enregistrés dans ~/.config/insourcia/credentials.json et renouvelés automatiquement.

Par une clé API, pratique en CI :

Fenêtre de terminal
# Par variable d'environnement
export INSOURCIA_API_TOKEN=isk_VOTRE_CLE
# Ou par option
insourcia tools list --token isk_VOTRE_CLE

Ordre de priorité : --token, puis INSOURCIA_API_TOKEN, puis la connexion OAuth. Générez une clé dans Paramètres > API / MCP.

Par défaut, l’URL de l’API est https://api.insourcia.io (option --base-url ou variable INSOURCIA_API_BASE_URL).

Fenêtre de terminal
insourcia tools list

Avec jq :

Fenêtre de terminal
insourcia tools list | jq '.tools[].name'
# "search_companies"
# "get_company"
# ...
Fenêtre de terminal
insourcia tools call <name> --input '<json>'

Exemples :

Fenêtre de terminal
insourcia tools call search_companies --input '{"query":"vinci","limit":3}'
insourcia tools call get_company --input '{"siren":"552037806"}'
insourcia tools call get_financials --input '{"siren":"552037806"}'
Fenêtre de terminal
insourcia tools call search_companies --input @search-params.json
Fenêtre de terminal
echo '{"siren":"552037806"}' | insourcia tools call get_company --input -

Pour enchaîner deux appels :

Fenêtre de terminal
insourcia tools call search_companies --input '{"query":"vinci"}' \
| jq '{siren: .data[0].siren}' \
| insourcia tools call get_financials --input -

Par défaut, la commande retire l’enveloppe {success, data} et n’affiche que data, en JSON indenté, ce qui facilite l’enchaînement des commandes.

Pour garder l’enveloppe (sur une ligne) :

Fenêtre de terminal
insourcia tools call get_company --input '{"siren":"552037806"}' --raw
# {"success":true,"data":{...}}
  • 0 : succès
  • 1 : erreur d’usage (clé manquante, JSON invalide, commande inconnue)
  • 2 : erreur de l’API (réponse autre que 200) ou erreur réseau

Pour enchaîner en bash :

Fenêtre de terminal
insourcia tools call get_company --input '{"siren":"552037806"}' > /dev/null 2>&1
code=$?
if [ "$code" -eq 0 ]; then echo "OK"; else echo "Erreur, code $code"; fi
Fenêtre de terminal
insourcia tools call get_company --input '{"siren":"552037806"}' --raw \
| jq -r '.success'
Fenêtre de terminal
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.csv