Skip to main content
La CLI est conçue pour être scriptée. Les données passent par stdout, les messages par stderr, et chaque échec se termine par un code de sortie non nul.

Sûre par défaut

  • Les suppressions et les actions irréversibles demandent d’abord une confirmation. Cela concerne les suppressions et des actions comme l’achat d’un numéro, le transfert d’un espace de travail ou la restauration d’une ancienne version. Dans un terminal, la CLI demande de confirmer. Dans les scripts, la CI et les agents de code, passez --yes ; sans cette option, la commande refuse de s’exécuter.
  • Simulations. --dry-run affiche la requête exacte (méthode, URL, en-têtes et corps) avec la clé API masquée, et n’envoie rien.
  • Des nouvelles tentatives sans risque de doublon. Lorsque la limite de requêtes est atteinte, la CLI attend le délai demandé par l’API, puis réessaie. Les requêtes qui créent quelque chose ne sont jamais répétées après un délai d’attente dépassé ou une limite d’utilisation : un appel n’est donc jamais passé deux fois. --timeout fixe le délai maximal de toute la commande, attente comprise.
  • Aucune invite sans personne pour y répondre. En CI et au sein des agents de code, la CLI n’attend jamais de saisie.

Exemples

Codes de sortie

Erreurs dans les scripts

Lorsqu’une commande échoue, stdout reste vide, de sorte qu’un échec n’est jamais lu comme des données. Lorsque stderr n’est pas un terminal, sa dernière ligne contient l’erreur en JSON (les éventuels avertissements la précèdent) :
code est le code d’erreur de l’API. Les échecs sans réponse de l’API utilisent network_error, timeout, invalid_response, usage_error ou auth_error. retry_after indique le nombre de secondes à attendre après une limite de requêtes. may_have_executed: true signifie qu’une requête qui crée quelque chose a peut-être atteint l’API avant l’échec de la connexion : vérifiez donc avant de réessayer.

GitHub Actions

Agents de code

Les agents de code comme Claude Code, Codex et Cursor peuvent utiliser la CLI directement :
  • famulor commands <topic> trouve les commandes. Hors d’un terminal, elle affiche du JSON compact : commande, résumé, méthode, chemin et domaine.
  • famulor <command> --help --output json affiche le schéma complet d’une commande : arguments, options, types, valeurs autorisées, valeurs par défaut, limites, champs obligatoires et un exemple. famulor commands --full --output json fait de même pour toutes les commandes.
  • Les couleurs, les animations et les invites se désactivent automatiquement en CI et au sein des agents de code. Les actions irréversibles nécessitent --yes.
  • Les messages d’erreur indiquent ce qui n’a pas fonctionné et la commande à exécuter ensuite.
Une instruction courte suffit généralement, par exemple : « Utilise la CLI famulor. Trouve les commandes avec famulor commands <topic> et consulte le détail d’une commande avec famulor <command> --help --output json. Teste d’abord les commandes d’écriture avec --dry-run. »
Pour un travail conversationnel au sein d’un assistant IA, le serveur MCP est plus adapté. Il propose les mêmes fonctionnalités sous forme d’outils.