Référence des commandes de l'Adapty Developer CLI

Cet article liste les commandes Adapty CLI qui configurent votre compte — applications, niveaux d’accès, produits, paywalls, flows, placements et segments — ainsi que les commandes permettant de migrer un projet RevenueCat et d’installer les skills Adapty, avec leurs arguments, indicateurs et valeurs acceptées. Pour les campagnes Apple Ads, consultez Commandes Ads Manager.

Indicateurs globaux

Ces indicateurs sont disponibles sur toutes les commandes.

IndicateurDescription
--jsonAfficher en JSON plutôt qu’en texte formaté
--helpAfficher l’aide de la commande

Toutes les commandes list acceptent également des indicateurs de pagination :

IndicateurDéfautDescription
--page1Numéro de page
--page-size20Éléments par page (max : 100)

Applications

Gérez les applications de votre compte Adapty. Pour la configuration via le tableau de bord, consultez Paramètres de l’application.

adapty apps list

Listez toutes les applications de votre compte Adapty.

adapty apps list

Accepte les options de pagination.

adapty apps get

Obtenez les détails d’une application spécifique.

adapty apps get <app-id>
ArgumentDescription
app-idID de l’application (UUID)

adapty apps create

Créer une nouvelle application.

adapty apps create --title "My App" --platform ios --apple-bundle-id com.example.app
FlagRequiredDescription
--titleYesTitre de l’application
--platformYesPlateforme : ios ou android. Répéter pour les deux : --platform ios --platform android
--apple-bundle-idRequired with --platform iosBundle ID Apple
--google-bundle-idRequired with --platform androidBundle ID Google

adapty apps update

Mettre à jour une application existante.

adapty apps update <app-id> --title "New Name"
ArgumentDescription
app-idID de l’application (UUID)
FlagDescription
--titleNouveau titre de l’application
--apple-bundle-idNouvel Apple bundle ID
--google-bundle-idNouvel Google bundle ID

Au moins un flag est requis. --platform ne peut pas être modifié après la création.

Niveaux d’accès

adapty access-levels list

Liste tous les niveaux d’accès d’une application.

adapty access-levels list --app <app-id>
FlagRequiredDescription
--appYesApp ID (UUID)

Accepte les options de pagination.

adapty access-levels get

Obtenez les détails d’un niveau d’accès spécifique.

adapty access-levels get --app <app-id> <access-level-id>
ArgumentDescription
access-level-idID du niveau d’accès (UUID)
FlagRequisDescription
--appOuiID de l’application (UUID)

adapty access-levels create

Créer un nouveau niveau d’accès.

adapty access-levels create --app <app-id> --sdk-id "pro" --title "Pro"
FlagRequisDescription
--appOuiID de l’app (UUID)
--sdk-idOuiIdentifiant utilisé dans le code de l’app pour vérifier l’accès (par exemple, "pro" ou "premium")
--titleOuiLibellé d’affichage dans l’Adapty Dashboard

adapty access-levels update

Mettez à jour un niveau d’accès existant.

adapty access-levels update --app <app-id> <access-level-id> --title "Pro Access"
ArgumentDescription
access-level-idID du niveau d’accès (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)
--titleOuiNouveau libellé d’affichage

--sdk-id ne peut pas être modifié après la création.

Produits

Liste des produits Adapty

Listez tous les produits d’une application.

adapty products list --app <app-id>
FlagRequisDescription
--appOuiID de l’application (UUID)

Accepte les flags de pagination.

adapty products get

Obtenez les détails d’un produit spécifique.

adapty products get --app <app-id> <product-id>
ArgumentDescription
product-idID du produit (UUID)
IndicateurRequisDescription
--appOuiID de l’application (UUID)

adapty products create

Créez un nouveau produit.

Important

Les identifiants de produit et de prix du store ne peuvent pas être modifiés après la création. Pour utiliser d’autres identifiants de store, créez un nouveau produit.

adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --ios-product-id com.example.monthly
ParamètreObligatoireDescription
--appOuiID de l’app (UUID)
--titleOuiTitre du produit
--access-level-idOuiID (UUID) du niveau d’accès que ce produit débloque
--periodOuiPériode d’abonnement : weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime
--ios-product-idAu moins un store requisID du produit dans App Store Connect
--android-product-idAu moins un store requisID du produit dans Google Play Console
--android-base-plan-idObligatoire avec --android-product-id sauf si --period lifetimeID du plan de base dans Google Play Console
--stripe-product-idAu moins un store requisID du produit dans Stripe
--stripe-price-idObligatoire avec --stripe-product-idID du prix dans Stripe
--paddle-product-idAu moins un store requisID du produit dans Paddle
--paddle-price-idObligatoire avec --paddle-product-idID du prix dans Paddle

Chaque produit nécessite au moins un store : --ios-product-id, --android-product-id, --stripe-product-id ou --paddle-product-id. Un même produit peut avoir des identifiants pour plusieurs stores à la fois.

Pour vendre un produit sur le web via Stripe ou Paddle, connectez d’abord le fournisseur de paiement à Adapty : voir Stripe et Paddle. Pour chacun de ces stores, passez l’identifiant du produit et l’identifiant du prix ensemble. La commande échoue si vous ne passez qu’un seul des deux.

adapty products create --app <app-id> --title "Monthly" --access-level-id <access-level-id> --period monthly --stripe-product-id prod_xxx --stripe-price-id price_xxx

Un produit web uniquement est valide : vous pouvez créer un produit avec des identifiants Stripe ou Paddle sans identifiants App Store ou Google Play.

adapty products update

Mettez à jour un produit existant.

Les identifiants de produit et de prix du store ne peuvent pas être modifiés après la création et ne sont pas disponibles dans cette commande. Pour utiliser des identifiants de store différents, créez un nouveau produit.

adapty products update --app <app-id> <product-id> --title "Monthly" --access-level-id <access-level-id>
ArgumentDescription
product-idID du produit (UUID)
IndicateurRequisDescription
--appOuiID de l’application (UUID)
--titleNonTitre du produit
--access-level-idNonID (UUID) du niveau d’accès que ce produit déverrouille

Paywalls

Liste des paywalls Adapty

Listez tous les paywalls d’une application.

adapty paywalls list --app <app-id>
IndicateurRequisDescription
--appOuiID de l’application (UUID)

Accepte les indicateurs de pagination.

adapty paywalls get

Obtenir les détails d’un paywall spécifique.

adapty paywalls get --app <app-id> <paywall-id>
ArgumentDescription
paywall-idID du paywall (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)

adapty paywalls create

Crée un nouveau paywall.

adapty paywalls create --app <app-id> --title "Default Paywall" --product-id <product-id>
FlagRequisDescription
--appOuiID de l’application (UUID)
--titleOuiTitre du paywall
--product-idOuiID du produit (UUID). Répétez pour plusieurs produits : --product-id <id1> --product-id <id2>

adapty paywalls update

Remplacez tous les champs d’un paywall existant.

Important

Une fois qu’un paywall est lié à un placement, ses produits ne peuvent plus être modifiés. Pour utiliser des produits différents dans un paywall actif, créez un nouveau paywall et mettez à jour le placement pour qu’il pointe vers celui-ci.

adapty paywalls update --app <app-id> <paywall-id> --title "Default Paywall" --product-id <product-id>

Cette commande remplace tous les champs du paywall, y compris la liste complète des produits.

ArgumentDescription
paywall-idID du paywall (UUID)
IndicateurObligatoireDescription
--appOuiID d’application (UUID)
--titleOuiTitre du paywall
--product-idOuiID de produit (UUID). Répéter pour plusieurs produits : --product-id <id1> --product-id <id2>

adapty paywalls placements

Liste tous les placements qui utilisent actuellement un paywall donné.

adapty paywalls placements --app <app-id> <paywall-id>
ArgumentDescription
paywall-idID du paywall (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)

Utilisez cette commande avant de remplacer un paywall pour voir quels placements seraient affectés.

Les éléments de cette liste ne contiennent pas de champ is_active. Pour lire l’état d’activation d’un placement, utilisez placements list ou placements get.

Flows

Les flows sont les paywalls et onboardings que vous créez dans le Flow & Paywall Builder. La CLI gère l’enregistrement du flow, sa configuration de builder et sa publication. Une configuration de builder est un document JSON volumineux que le Flow & Paywall Builder produit normalement — la CLI n’en génère pas. Pour créer ou modifier une configuration depuis le terminal, utilisez le skill flow-generator, qui pilote ces commandes à votre place. Avant la publication, le skill flow-audit vérifie si le flow est prêt pour la production. Les commandes sont listées ici à titre de référence.

Liste des flows

Liste tous les flows d’une application.

adapty flows list --app <app-id>
FlagRequisDescription
--appOuiID de l’application (UUID)

Accepte les flags de pagination.

adapty flows get

Obtenez les détails d’un flow spécifique.

adapty flows get --app <app-id> <flow-id>
ArgumentDescription
flow-idID du flow (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)

La réponse contient id, name, status, et updated_at. Le statut est l’un des suivants :

StatutSignification
draftLe flow n’a jamais été publié
publishedLa version actuelle est en ligne
dirtyLe flow a déjà été publié, et la version actuelle contient des modifications non publiées. Les utilisateurs continuent de voir la dernière version publiée
publishingLa publication est en cours
publication_failedLa dernière publication a échoué. Corrigez la configuration et publiez à nouveau
archivedLe flow est archivé

adapty flows create

Crée un flow. Le nouveau flow a un nom et aucune configuration. Pour ajouter une configuration, utilisez flows config update.

adapty flows create --app <app-id> --name "Onboarding"
FlagRequisDescription
--appOuiID de l’application (UUID)
--nameOuiNom du flow

adapty flows update

Renommer un flow.

adapty flows update --app <app-id> <flow-id> --name "Onboarding v2"
ArgumentDescription
flow-idID du flow (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)
--nameOuiNouveau nom du flow

adapty flows publish

Publiez la version actuelle d’un flow à vos utilisateurs.

adapty flows publish --app <app-id> <flow-id>
ArgumentDescription
flow-idID du flow (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)
--yes, -yNonPublie sans demander de confirmation. Requis lorsque la sortie est redirigée ou que --json est utilisé

Parce que la publication modifie ce que voient vos utilisateurs, la commande affiche le nom du flow et demande une confirmation. Toute réponse autre que y annule la commande avec le code de sortie 1. Avec --json ou dans un pipe, la commande refuse avec le code de sortie 2 au lieu d’attendre une réponse — passez donc --yes dans les scripts et les sessions agent.

La publication est asynchrone : la réponse indique status: publishing, et le flow n’est pas encore en ligne. Interrogez flows get jusqu’à ce que le statut devienne published ou publication_failed. En cas de publication_failed, flows config get indique la raison de l’échec.

La publication échoue avec une erreur HTTP 400 si le flow n’a pas de config, si la config n’est pas publiable, ou si la version actuelle est déjà en ligne. Pour vérifier une config avant de la publier, utilisez flows config validate.

adapty flows config get

Lit la configuration du builder d’un flow.

adapty flows config get --app <app-id> <flow-id>
ArgumentDescription
flow-idID du flow (UUID)
FlagRequisDescription
--appOuiID de l’application (UUID)

La réponse contient config, remote_configs, status et updated_at. updated_at est un horodatage en millisecondes de la dernière modification de la config. Passez-le à flows config update via --expected-updated-at pour éviter d’écraser une modification concurrente. Un flow dont la config n’a jamais été enregistrée renvoie 404.

Après une tentative de publication, la réponse contient également trois champs décrivant son déroulement. Lisez-les lorsque flows get signale publication_failed :

ChampDescription
publication_statusAvancement de la publication de cette version de flow : transforming, transformed, uploading, uploaded, published, ou failed
transform_errorL’erreur de transformation brute — soit un payload JSON listant les problèmes, soit une chaîne récapitulative
publication_errorUn message lisible pour une publication échouée

adapty flows config update

Écrit la configuration du builder d’un flow.

adapty flows config update --app <app-id> <flow-id> --config-file config.json
ArgumentDescription
flow-idID du flow (UUID)
IndicateurRequisDescription
--appOuiID d’application (UUID)
--configL’un des deuxConfiguration du builder sous forme de chaîne JSON
--config-fileL’un des deuxChemin vers un fichier JSON contenant la configuration du builder, ou - pour lire depuis stdin
--remote-configsNonTableau JSON d’entrées {locale, data}, où data est le Remote Config sous forme de chaîne
--expected-updated-atNonLa valeur updated_at issue d’un précédent flows config get. Si la configuration a été modifiée après cette lecture, la commande échoue plutôt que d’écraser la modification. Omettez ce paramètre pour écraser sans condition

La sauvegarde de la configuration crée un brouillon sans le publier. Sur un flow publié, l’écriture crée une nouvelle version : le statut du flow devient dirty, et les utilisateurs continuent de voir la version publiée jusqu’à ce que vous exécutiez flows publish.

adapty flows config validate

Vérifiez si une configuration du builder est publiable, sans la sauvegarder.

adapty flows config validate --app <app-id> <flow-id> --config-file config.json
ArgumentDescription
flow-idID du flow (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)
--configL’un des deuxConfiguration du builder en chaîne JSON
--config-fileL’un des deuxChemin vers un fichier JSON contenant la configuration du builder, ou - pour lire depuis stdin

La réponse contient valid et une liste d’issues. Lorsque la configuration n’est pas publiable, la commande se termine avec le code 1, ce qui permet aux scripts de s’y bloquer.

adapty flows config preview

Affiche un fichier de configuration local dans le navigateur. Cette commande n’effectue aucun appel API et n’accepte pas le flag --app.

adapty flows config preview ./config.json --screen <screen-id> --device iphone-14 --orientation portrait
ArgumentDescription
config-fileChemin vers un fichier JSON de configuration du builder local
FlagDéfautDescription
--screenPremier écran du flowID de l’écran à afficher
--deviceiphone-14Cadre d’appareil dans lequel afficher
--orientationportraitportrait ou landscape

Dans un terminal, la commande ouvre l’aperçu dans votre navigateur. Avec --json ou dans un pipe, elle affiche l’URL à la place. L’URL contient toute la configuration et peut être longue : redirigez-la vers un outil de capture d’écran plutôt que de l’afficher. Les configurations dépassant environ 32 Ko s’affichent lentement.

adapty flows media upload

Téléversez une image à utiliser dans une configuration de flow.

adapty flows media upload --app <app-id> ./hero.png
ArgumentDescription
fileChemin vers le fichier image
FlagRequisDescription
--appOuiID de l’app (UUID)

Formats acceptés : GIF, HEIC, JPEG, PNG, SVG et WebP. La réponse contient l’id, le name et l’url CDN de l’image, à référencer depuis la config.

Placements

Les placements sont les endroits où vos flows, paywalls et onboardings atteignent les utilisateurs. Le type de contenu d’un placement est fixé à sa création, donc faire passer une application de paywalls à des flows implique de créer de nouveaux placements plutôt que de mettre à jour les existants — la skill migrate-placements pilote ces commandes pour le faire en masse.

adapty placements list

Listez tous les placements d’une application.

adapty placements list --app <app-id>
FlagRequiredDescription
--appYesApp ID (UUID)

Accepte les options de pagination.

Chaque élément contient id, developer_id, title et is_active. is_active vaut true pour un placement actif et false pour un placement inactif.

adapty placements get

Récupère les détails d’un placement spécifique.

adapty placements get --app <app-id> <placement-id>
ArgumentDescription
placement-idID du placement (UUID)
FlagRequisDescription
--appOuiID de l’application (UUID)

La réponse contient id, developer_id, title, is_active, et un tableau audiences. is_active est true pour un placement actif et false pour un placement inactif. Chaque entrée d’audience comporte content_type (paywall ou flow), segment_ids, priority, ainsi que paywall_id ou flow_id. L’audience par défaut a segment_ids: [] et la valeur de priorité la plus élevée (évaluée en dernier). Voir Forme des audiences.

adapty placements create

Créez un nouveau placement.

adapty placements create --app <app-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'
IndicateurRequisDescription
--appOuiID de l’app (UUID)
--titleOuiTitre du placement
--developer-idOuiIdentifiant string utilisé dans le code de l’app pour demander ce placement
--audiencesL’un des deuxTableau JSON d’entrées d’audience, chacune avec un content_type explicite. Voir Format des audiences
--paywall-idL’un des deuxDéprécié. ID de paywall (UUID). Encapsulé côté client dans une audience par défaut unique

Passez exactement l’un de --audiences ou --paywall-id. Passer les deux ou aucun génère une erreur.

Warning

--paywall-id est obsolète et sera supprimé. Lorsqu’il est passé, le CLI affiche un avertissement sur stderr et convertit la valeur en audience par défaut. Utilisez --audiences pour les nouvelles automatisations.

adapty placements update

Remplace tous les champs d’un placement existant.

adapty placements update --app <app-id> <placement-id> --title "Main" --developer-id "main" --audiences '[{"content_type":"paywall","segment_ids":[],"paywall_id":"<paywall-id>","priority":0}]'

Cette commande remplace tous les champs du placement, y compris la liste complète des audiences.

ArgumentDescription
placement-idID du placement (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)
--titleOuiTitre du placement
--developer-idOuiIdentifiant utilisé dans le code de l’app pour appeler ce placement
--audiencesL’un des deuxTableau JSON d’entrées d’audience, chacune avec un content_type explicite. Voir Format des audiences
--paywall-idL’un des deuxDéprécié. ID du paywall (UUID). Remplace toutes les audiences par une audience par défaut unique
Warning

Passer --paywall-id réécrit toutes les audiences du placement. Les audiences spécifiques à un segment sont supprimées. Pour les conserver, utilisez --audiences et incluez toutes les entrées que vous souhaitez garder.

Structure des audiences

Le paramètre --audiences prend un tableau JSON. Chaque entrée contient :

ChampTypeDescription
content_typestring"paywall" ou "flow". Obligatoire pour chaque entrée. Toutes les entrées d’un même placement doivent avoir la même valeur
segment_idsstring[]IDs de segment ciblés par cette audience. Longueur 0 ou 1. Un tableau vide désigne l’audience par défaut — le repli pour les utilisateurs qui ne correspondent à aucun autre segment
paywall_idstringID (UUID) du paywall affiché aux utilisateurs de cette audience. Obligatoire lorsque content_type vaut "paywall"
flow_idstringID (UUID) du flow affiché aux utilisateurs de cette audience. Obligatoire lorsque content_type vaut "flow"
prioritynumberBasé sur 0, unique au sein du placement. Les audiences sont évaluées de la valeur la plus basse à la plus haute ; l’audience par défaut doit avoir la valeur la plus élevée

Un placement doit avoir exactement une audience par défaut.

Le type de contenu d’un placement est fixé à sa création, donc placements update ne peut pas convertir un placement paywall en flow ni l’inverse. Servez le flow depuis un placement dédié — voir Créer un nouveau placement pour votre flow.

La CLI vérifie chaque entrée avant d’envoyer la requête. Une entrée avec un content_type manquant ou inconnu, ou sans l’ID requis par son content_type, provoque une sortie avec le code 2 et rien n’est envoyé.

Un flow ne peut être associé qu’après avoir été publié. Un flow à l’état draft, ou dont la première publication est encore en cours, est rejeté par le serveur ; le CLI reconnaît ce rejet et se termine avec le code 2, en affichant la commande flows publish correspondant à ce flow. Pour publier un flow, utilisez flows publish ou le Flow & Paywall Builder, puis attendez que son statut passe à published.

Exemple avec une audience ciblée et une audience par défaut :

adapty placements update <placement-id> --app <app-id> --title "Main" --developer-id "main" \
  --audiences '[{"content_type":"paywall","segment_ids":["<vip-segment-id>"],"paywall_id":"<vip-paywall-id>","priority":0},{"content_type":"paywall","segment_ids":[],"paywall_id":"<default-paywall-id>","priority":1}]'

Exemple d’un placement qui affiche un flow publié à tous les utilisateurs :

adapty placements create --app <app-id> --title "Onboarding" --developer-id "onboarding" \
  --audiences '[{"content_type":"flow","segment_ids":[],"flow_id":"<flow-id>","priority":0}]'

Pour remplacer un paywall dans plusieurs placements sans perdre le routage par segment :

  1. Trouvez les placements concernés :

    adapty paywalls placements --app <app-id> <old-paywall-id>
  2. Pour chacun, lisez le tableau audiences complet :

    adapty placements get --app <app-id> <placement-id> --json
  3. Remplacez les valeurs paywall_id correspondantes côté client.

  4. Renvoyez le payload modifié :

    adapty placements update --app <app-id> <placement-id> --title "<title>" --developer-id "<developer-id>" --audiences '<modified-payload>'

Segments

Les segments regroupent les utilisateurs selon leurs attributs de profil. Utilisez ces commandes pour créer des segments et rechercher des identifiants de segment lors de la composition des audiences de placement. Pour créer un segment à partir de campagnes Apple Ads, de groupes d’annonces ou de mots-clés, utilisez plutôt adapty asa segments create : cette commande recherche les identifiants Apple à votre place et nomme le segment de la même façon qu’Ads Manager.

adapty segments list

Liste tous les segments d’une application.

adapty segments list --app <app-id>
FlagRequiredDescription
--appYesApp ID (UUID)

Accepte les drapeaux de pagination.

adapty segments get

Obtenez les détails d’un segment spécifique.

adapty segments get --app <app-id> <segment-id>
ArgumentDescription
segment-idID du segment (UUID)
FlagRequisDescription
--appOuiID de l’application (UUID)

La réponse contient id, title, description, filters, profile_count, refresh_in_progress, created_at et updated_at. list retourne uniquement id, title et description.

adapty segments create

Créez un segment à partir d’un ou plusieurs filtres.

adapty segments create --app <app-id> --title "US installs" --filter ip_country:IN:US --filter install_date:>=:2026-01-01
FlagRequisDescription
--appOuiID de l’application (UUID)
--titleOuiTitre du segment
--filterOuiRègle de filtre. Répétable. Voir Syntaxe des filtres
--descriptionNonDescription du segment

Un utilisateur correspond au segment uniquement s’il correspond à chaque filtre. La réponse contient les mêmes champs que segments get. profile_count commence à 0, et Adapty le recalcule après la création du segment.

adapty segments update

Remplace le titre, la description et les filtres d’un segment existant.

adapty segments update --app <app-id> <segment-id> --title "US installs" --filter ip_country:IN:US,CA
ArgumentDescription
segment-idID du segment (UUID)
FlagRequisDescription
--appOuiID de l’app (UUID)
--titleOuiTitre du segment
--filterOuiRègle de filtre. Répétable. Voir Syntaxe des filtres
--descriptionNonDescription du segment
Warning

segments update remplace l’intégralité du segment. Passez tous les filtres que vous souhaitez conserver, pas seulement celui que vous modifiez. Pour lire les filtres actuels, exécutez adapty segments get --app <app-id> <segment-id> --json.

Syntaxe des filtres

Écrivez chaque --filter sous la forme field:OPERATOR:value. Pour correspondre à plusieurs valeurs, séparez-les par des virgules : ip_country:IN:US,CA.

OpérateurValeursExemple
IN, NOT INUne ou plusieursip_country:NOT IN:US,CA
>, >=, <, <=Uneage:>:18
BETWEENDeuxtotal_revenue_usd:BETWEEN:10,100
IS NULL, IS NOT NULLAucuneage:IS NULL

Passez les nombres sous forme de valeurs simples, par exemple age:>:18. Adapty les convertit pour les champs numériques tels que age, total_revenue_usd et les attributs personnalisés de type float.

Pour une valeur que cette forme abrégée ne peut pas exprimer, passez le filtre sous forme d’objet JSON :

adapty segments create --app <app-id> --title "Adults" --filter '{"field_name":"age","operator":">","value_list":[18]}'

Adapty valide les noms de champs, les opérateurs et les types de valeurs, et signale une erreur pour chaque filtre invalide. Pour voir les noms de champs et les formats de valeurs des filtres existants, exécutez adapty segments get --app <app-id> <segment-id> --json sur un segment créé dans le tableau de bord.

Migrations

Déplacez un projet RevenueCat vers Adapty : son catalogue, puis éventuellement ses événements store et son historique de transactions. Adapty exécute chaque migration sous forme d’une séquence d’étapes et vous indique les actions disponibles à chaque fois — lisez toujours status avant chaque action. Pour la procédure complète, consultez Migration depuis RevenueCat.

Toutes les commandes sauf list, create, use, current et unuse acceptent le flag de migration :

FlagRequisDescription
-m, --migrationNonID de migration. Sans cette option, le CLI utilise la variable d’environnement ADAPTY_MIGRATION, puis la migration enregistrée par create ou use.

adapty migrations list

Listez vos migrations et les flows de migration que vous pouvez démarrer, groupés par application.

adapty migrations list

adapty migrations create

Démarrez une migration et enregistrez-la comme migration courante.

adapty migrations create --name <app-name>
adapty migrations create --flow <flow> --app <app-id>
IndicateurRequisDescription
--nameL’un de --name ou --flowNom de la nouvelle application Adapty. Lance la migration du catalogue. Incompatible avec --flow ou --app.
--flowL’un de --name ou --flowFlow à démarrer dans une application existante, tel qu’affiché par adapty migrations list. Requiert --app.
--appAvec --flowID de l’application (UUID)
--no-selectNonCrée la migration sans l’enregistrer comme migration courante

Les flows disponibles pour une application existante après sa migration de catalogue :

FlowDescription
transactionsImporter l’historique des transactions depuis un export cloud RevenueCat quotidien
transactions_supportImporter l’historique des transactions via le support RevenueCat et le support Adapty, pour les plans RevenueCat sans export cloud
apple_eventsTransférer les notifications App Store à Adapty pendant que RevenueCat continue de les recevoir
google_eventsAbonner Adapty au sujet Pub/Sub utilisé par RevenueCat pour les notifications Google Play
codeDemander à votre agent de code de remplacer le SDK RevenueCat dans une base de code de l’application
integrationsDemander à votre agent de code d’identifier les outils d’analytics, d’attribution et de messagerie dans le code de l’application pour les configurer dans Adapty
paywall_designDemander à votre agent de code de reconstruire les designs de paywall RevenueCat dans les flows créés par la migration du catalogue

adapty migrations use

Enregistre une migration comme migration courante, afin que les autres commandes n’aient pas besoin de -m.

adapty migrations use <migration-id>
ArgumentDescription
migration-idID de migration issu de adapty migrations list

La CLI vérifie que vous avez accès à la migration avant d’enregistrer l’ID. La migration enregistrée est associée au token courant et s’applique dans tous les terminaux.

adapty migrations current

Affiche la migration en cours et son origine : la variable d’environnement ADAPTY_MIGRATION ou la sélection sauvegardée.

adapty migrations current

adapty migrations unuse

Supprimez la migration sauvegardée. Une valeur ADAPTY_MIGRATION définie dans votre shell reste active jusqu’à ce que vous la désactiviez.

adapty migrations unuse

adapty migrations status

Affiche l’état d’une migration, ses problèmes et les actions que vous pouvez exécuter ensuite.

adapty migrations status
FlagRequiredDescription
--waitNoInterroge jusqu’à ce que la migration change, puis renvoie le dernier état
--timeoutNoDurée d’interrogation pour --wait : 1–600 secondes, 120 par défaut. Accepte 300, 300s ou 5m. Nécessite --wait.

Avec --json, next_actions et available_actions listent l’identifiant de chaque action, les ressources qu’elle lit, son input_schema et son texte confirm.

Le code de sortie 0 signifie que la requête a réussi, pas la migration. Vérifiez migration.state dans la réponse.

adapty migrations steps

Affiche la liste de contrôle de migration et le statut de chaque étape.

adapty migrations steps

adapty migrations show

Listez les ressources disponibles à l’étape actuelle, ou lisez-en une.

adapty migrations show [resource]
ArgumentDescription
resourceNom de la ressource, par exemple apps, mapping, report ou export-config. Omettez-le pour lister les ressources disponibles à l’étape actuelle.

adapty migrations run

Exécute une action depuis adapty migrations status.

adapty migrations run <action-id>
ArgumentDescription
action-idID d’action provenant de next_actions ou available_actions dans adapty migrations status
OptionObligatoireDescription
--inputNonEntrée de l’action sous forme d’objet JSON correspondant au input_schema de l’action. Sans entrée, le CLI envoie {}.
--input-fileNonChemin vers un fichier contenant l’entrée de l’action, ou - pour la lire depuis stdin. Incompatible avec --input.
-y, --yesPour les actions avec un texte confirmConfirme l’action après avoir lu son texte confirm. Aucune invite interactive.
--openNonOuvre le lien de l’action même avec un pipe ou --json
--no-browserNonAffiche le lien de l’action sans ouvrir de navigateur

Les actions se déclinent en trois types :

  • Les actions d’entrée envoient vos données à Adapty, par exemple les applications RevenueCat à migrer ou vos décisions de mapping.
  • Les actions externes ouvrent une page dans l’Adapty Dashboard, par exemple pour coller la clé API secrète RevenueCat. Remplissez la page, puis vérifiez status.
  • Les actions agent, par exemple migrate_code, sont des tâches pour votre agent de codage. Exécutez-les depuis le dépôt git de l’application : le CLI enregistre les données de la migration dans .git/adapty/<migration-id>/ et affiche les instructions pour l’agent. L’agent rapporte le résultat en relançant l’action avec --input.

adapty migrations close

Terminer ou annuler une migration. Vous ne pouvez pas la rouvrir ensuite.

adapty migrations close --outcome finish --yes
FlagRequiredDescription
--outcomeYesfinish marque la migration comme terminée ; cancel l’abandonne
-y, --yesYesConfirmer la fermeture

Skills

adapty skills install

Installe les skills Adapty dans les agents de code sur cette machine.

adapty skills install
FlagRequiredDescription
--agentNoAgent to install into: claude-code, codex, or gemini-cli. Repeat the flag for several agents.
-y, --yesNoInstall into every agent found without asking. Required when the CLI finds several agents and can’t ask, for example with --json.

The CLI looks for Claude Code, Codex, and Gemini CLI on PATH. If it finds none, it asks whether to run npx skills@1.7.0 add adaptyteam/adapty-skills --all --global, which covers other agents. Restart the agent to load the skills.

Auth

CommandeDescription
adapty auth loginS’authentifier via le navigateur en utilisant le flux d’appareils
adapty auth logoutEffacer les identifiants stockés et la migration sauvegardée localement
adapty auth whoamiVérifier le token auprès du serveur et afficher les informations utilisateur
adapty auth statusAfficher l’état d’authentification local sans appel serveur
adapty auth revokeRévoquer le token côté serveur, puis l’effacer avec sa migration sauvegardée localement

Consultez Authentification pour tous les détails sur chaque commande.