Passer au contenu principal
La CLI est conçue pour l’automatisation : elle affiche par défaut du JSON structuré, accepte les identifiants via des variables d’environnement et utilise des codes de sortie standard. Chaque commande correspond 1:1 à un endpoint REST de Social media studio ; tout ce que fait l’application peut donc être scripté.
Le binaire est so-me (la version de développement est so-me-dev). Tous les exemples ci-dessous utilisent so-me. Les sous-commandes utilisent la syntaxe à deux-points — posts:list, media:upload, agent export-tools.

Modes de sortie

Le format de sortie est contrôlé par des options globales qui s’appliquent à toutes les commandes. Elles doivent être placées sur la ligne de commande avec le reste de vos arguments (Commander les traite comme des options globales).
Utilisez --table pour les humains, pas pour les scripts. La vue en tableau tronque les champs longs et sélectionne un sous-ensemble de colonnes ; elle n’est donc pas exploitable par une machine. Dans l’automatisation, transmettez toujours le JSON par défaut à jq.
Le format par défaut peut aussi être conservé dans la configuration de la CLI (outputFormat), mais --table sur la ligne de commande l’emporte toujours pour cette invocation.

Sortie JSON et jq

Transmettez n’importe quelle commande à jq pour extraire et transformer les données.
Les endpoints de liste renvoient une enveloppe paginée, pas un simple tableau. Sa forme est { "data": [ ... ], "meta": { ... } } ; vous devez donc cibler .data[]. Les commandes à objet unique (posts:get, posts:create, posts:update, …) renvoient directement l’objet, et des champs comme .id sont donc au premier niveau.

Pagination

Les commandes de liste acceptent deux options de pagination. Il n’existe aucune option --cursor ni --all sur les commandes de liste — paginez en incrémentant --page.
L’option --all existe uniquement sur agent export-tools, où elle signifie « exporter tous les formats d’outils » — elle n’a aucun rapport avec la pagination.

Scripts shell

Créer et programmer

posts:create résout automatiquement le compte social à partir de --platform lorsque vous ne passez pas -a/--accounts. Si plusieurs comptes correspondent, la commande pose la question de façon interactive — donc, en CI non interactive, passez un ID de compte explicite avec -a ou veillez à n’avoir qu’un seul compte connecté pour cette plateforme.

Supprimer en masse les publications en échec

Convertir tous les brouillons

Authentification en CI

La CLI recherche les identifiants dans cet ordre : l’option --api-key, puis la variable d’environnement SOME_API_KEY, puis la clé d’API stockée par auth:login. Pour l’automatisation, préférez la variable d’environnement afin que rien ne soit écrit sur le disque.

GitHub Actions

Stockez votre clé d’API comme secret du dépôt (SOME_API_KEY). La CLI la lit automatiquement dans l’environnement — n’intégrez jamais la clé dans un fichier de workflow et ne la commitez jamais dans le dépôt.

Gestion des erreurs

Codes de sortie

En cas d’échec, la CLI définit un code de sortie non nul (process.exitCode = 1), de sorte que &&, set -e et les gardes if se comportent comme prévu.

Erreurs détaillées

Utilisez --verbose pour voir le détail complet des erreurs, y compris la pile d’appels lorsqu’elle est disponible :
Conditions d’erreur courantes remontées par le client d’API :

Gestion des limites de débit

Une requête limitée en débit (HTTP 429) se termine avec le code 1. Dans les scripts, ajoutez une logique de nouvelle tentative avec délai croissant :

Définitions d’outils pour agents

La CLI peut exporter le catalogue d’outils de Social media studio dans des formats exploitables par les frameworks d’agents IA. agent export-tools récupère la liste canonique des outils en direct depuis le serveur MCP (un appel JSON-RPC tools/list vers POST /mcp) et l’émet dans le format de votre choix. Le serveur MCP est l’unique source de vérité ; les définitions exportées correspondent donc toujours au catalogue en direct.
string
L’un des formats mcp, openai, anthropic, hermes, openclaw. Obligatoire sauf si --all est passé.
string
Écrit la sortie dans un fichier (et écrit les éventuels fichiers complémentaires à côté). Si le chemin ressemble à un répertoire (pas d’extension, ou barre oblique finale), le nom de fichier par défaut du format est ajouté. En son absence, la sortie principale est écrite sur la sortie standard.
boolean
défaut:"false"
Émet tous les formats pris en charge. Traite --out comme un répertoire (par défaut ./agent-tools) et écrit chaque format dans son propre sous-répertoire.

Formats pris en charge

Exemples

Chaque format est dérivé de la même réponse tools/list ; les définitions exportées restent donc synchronisées avec le catalogue d’outils en direct. Les noms d’outils sont en snake_case (par ex. create_post) et reprennent les commandes resource:verb de la CLI. Via le transport MCP, les mêmes outils sont enregistrés sous le nom mcp_so-me-studio_<tool_name> (par ex. mcp_so-me-studio_create_post).

Instances auto-hébergées

Pointez la CLI vers une URL d’API personnalisée via l’option ou la variable d’environnement :