adapty-cli
Adaptyのアプリ内課金、ペイウォール、配置などをコマンドラインインターフェース(CLI)を通じて設定・管理する際に役立ち、エンジニアやマーケターが効率的に作業を進めることを支援するSkill。
📜 元の英語説明(参考)
Use when setting up or managing Adapty in-app subscriptions, paywalls, or placements via CLI.
🇯🇵 日本人クリエイター向け解説
Adaptyのアプリ内課金、ペイウォール、配置などをコマンドラインインターフェース(CLI)を通じて設定・管理する際に役立ち、エンジニアやマーケターが効率的に作業を進めることを支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o adapty-cli.zip https://jpskill.com/download/9536.zip && unzip -o adapty-cli.zip && rm adapty-cli.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9536.zip -OutFile "$d\adapty-cli.zip"; Expand-Archive "$d\adapty-cli.zip" -DestinationPath $d -Force; ri "$d\adapty-cli.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
adapty-cli.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
adapty-cliフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Adapty CLI Skill
インストール
npm install -g adapty
または、インストールせずに実行:
npx adapty@latest
2つのモード: Setup(新規ユーザー、クイズ形式) と Manage(既存ユーザー、直接コマンド)。
モード: Setup (Adapty 初心者向け)
セットアップフローは3つのフェーズで構成されます: Quiz → Create → Guide。最初にすべての情報を収集し、次にすべてを作成し、最後にユーザーに次の手順を指示します。
フェーズ 1: Quiz
何かを作成する前に、プラットフォームを検出し、インタラクティブなクイズを実行してすべてのデータを収集します。
重要: すべてのクイズの質問に AskUserQuestion ツールを使用する必要があります。 質問を通常のテキスト出力として出力しないでください。各質問は、ユーザーがインタラクティブな入力プロンプトを取得できるように、個別の AskUserQuestion ツール呼び出しである必要があります。各回答の後、次の AskUserQuestion に進みます。これは必須です。
ステップ 1: プラットフォームの検出 — コードベースをサイレントに glob します:
| プラットフォーム | Glob パターン |
|---|---|
| iOS/Swift | **/*.swift, **/Package.swift, *.xcodeproj |
| Android/Kotlin | **/*.kt, **/build.gradle.kts |
| Flutter | **/pubspec.yaml (flutter: キーを探す) |
| React Native | **/react-native.config.js, **/app.json with RN deps |
| Unity | **/ProjectSettings/ProjectSettings.asset |
| Capacitor | **/capacitor.config.ts, **/capacitor.config.json |
| KMP | **/build.gradle.kts with kotlin("multiplatform") |
ステップ 2: 質問 — AskUserQuestion ツール呼び出しを使用します。関連するサブ質問を1つの AskUserQuestion にまとめて、ラウンドトリップを最小限に抑えます (例: アプリ名 + プラットフォーム + バンドル ID = 1つの質問)。ユーザーが確認または番号を選択するだけで済むように、デフォルトを提案します。フィールドごとに1つではなく、合計2〜3回の AskUserQuestion 呼び出しを目指します。
2〜3回の AskUserQuestion 呼び出しにまとめます:
AskUserQuestion 1: アプリ + プロダクト — アプリ情報とプロダクトの選択をまとめます:
アプリ名: [package.json、Info.plist、または AndroidManifest から提案] バンドル ID: [検出された構成ファイルから提案] プラットフォーム: 1. iOS のみ / 2. Android のみ / 3. 両方
プロダクト: 1. 月額 (
monthly) / 2. 年額 (annual) / 3. 月額 + 年額 / 4. 週間 (weekly) / 5. ライフタイム (lifetime) / 6. カスタム有効な
--period値:weekly,monthly,two_months,trimonthly,semiannual,annual,lifetime。month,year,yearly、またはその他のエイリアスは使用しないでください — これらの正確な API 値を使用してください。 プロダクト名のプレフィックス: [アプリ名に基づいて提案、例: "Premium"]
この回答の後、ストアプロダクト ID を生成するのに十分な情報が得られます。規約 <bundle_id>.<prefix>.<period> を使用して事前に入力し、次の質問に含めます。
AskUserQuestion 2: ストア ID + プレースメント + Paywall アプローチ — 生成された ID を確認し、残りの情報を収集します:
ストアプロダクト ID — これらは、App Store Connect / Google Play Console で作成する (または作成する予定の) ID と一致する必要があります。 提案された ID を確認または編集します:
- iOS:
com.example.app.premium.monthly/com.example.app.premium.annual- Android プロダクト ID:
premium_monthly/ ベースプラン:monthly-base(Android の場合)iOS と Android の ID が異なる場合は、個別にそれらを入力します (例: "iOS: com.app.monthly, Android: monthly_sub / ベースプラン: monthly-bp")。 まだストアプロダクトを作成していない場合は、これらの提案が機能します — 後で App Store Connect / Google Play Console で設定するときに、同じ ID を使用してください。
プレースメント: 1. オンボーディング (
onboarding) / 2. 設定 (settings) / 3. フィーチャーゲート (feature_gate) / 4. 上記のすべて / 5. カスタムPaywall UI: 1. Paywall Builder (ビジュアルエディタ、UI コードなし) / 2. カスタム (独自の UI)
フェーズ 2: Create
すべての回答を収集した後、概要テーブルでユーザーにプランを確認し、次にすべてを順番に作成します。作成中に質問しないでください — 収集されたデータを使用します。
重要: プロダクトと paywall は、作成後に完全に編集することはできません (期間、ストアプロダクト ID、ベースプラン ID は永続的です)。これがフェーズ 1 の確認が重要な理由です。
実行順序 (各ステップは前のステップの出力を使用します):
adapty auth login(まだ認証されていない場合、adapty auth whoamiで確認)adapty apps create --title "..." --platform ... --apple-bundle-id/--google-bundle-id ...→ 出力を保存:id(--appとして使用)、sdk_key(SDK で使用)、さらに作成後に印刷されるデフォルトのアクセスレベルidとsdk_id- 各プロダクトについて:
adapty products create --app <APP_ID> --title "..." --period ... --access-level-id <DEFAULT_AL_ID> --ios-product-id/--android-product-id ... [--android-base-plan-id ...]→ プロダクト ID を保存します。Android サブスクリプション (ライフタイム以外) には--android-base-plan-idが必要です。 adapty paywalls create --app <APP_ID> --title "..." --product-id <ID1> --product-id <ID2> ...→ paywall ID を保存- 各プレースメントについて:
adapty placements create --app <APP_ID> --title "..." --developer-id ... --paywall-id <PAYWALL_ID>
進行状況を印刷します (例: "アプリを作成しました ✓", "プロダクト 'Monthly' を作成しました ✓")。 ステップが失敗した場合は、停止してユーザーに続行方法を尋ねます — 盲目的に再試行しないでください。
フェーズ 3: Guide (インタラクティブループ)
すべてのエンティティが作成された後、キー値を含む簡単な概要を印刷します:
ダッシュボード: https://app.adapty.io
あなたの SDK キー: <sdk_key from apps create>
プレースメント開発者 ID: <list of developer_ids>
アクセスレベル SDK ID: <sdk_id from access level, e.g. "premium">
次に、AskUserQuestion を使用して、次に何をしたいかを尋ねます。ユーザーが完了と言うまで、各サブガイドの後にこれを繰り返します。 セットアップの回答に基づいてオプションを動的に構築します:
次に何をしたいですか?
- SDK をコードベースに統合する
- Apple 側でアプリ/プロダクトを構成する (iOS の場合のみ)
- Google 側でアプリ/プロダクトを構成する (Android の場合のみ)
- Paywall Builder で paywall をデザインする (Paywall Builder を選択した場合のみ)
- 完了
(原文はここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Adapty CLI Skill
Installation
npm install -g adapty
Or run without installing:
npx adapty@latest
Two modes: Setup (new users, quiz-driven) and Manage (existing users, direct commands).
Mode: Setup (New to Adapty)
The setup flow has 3 phases: Quiz → Create → Guide. Collect ALL information first, then create everything, then tell the user what to do next.
Phase 1: Quiz
Before creating anything, detect the platform and then run an interactive quiz to collect all data.
CRITICAL: You MUST use the AskUserQuestion tool for EVERY quiz question. Do NOT print questions as regular text output. Each question must be a separate AskUserQuestion tool call so the user gets an interactive input prompt. After each answer, proceed to the next AskUserQuestion. This is non-negotiable.
Step 1: Detect platform — silently glob the codebase:
| Platform | Glob pattern |
|---|---|
| iOS/Swift | **/*.swift, **/Package.swift, *.xcodeproj |
| Android/Kotlin | **/*.kt, **/build.gradle.kts |
| Flutter | **/pubspec.yaml (look for flutter: key) |
| React Native | **/react-native.config.js, **/app.json with RN deps |
| Unity | **/ProjectSettings/ProjectSettings.asset |
| Capacitor | **/capacitor.config.ts, **/capacitor.config.json |
| KMP | **/build.gradle.kts with kotlin("multiplatform") |
Step 2: Ask questions — use AskUserQuestion tool calls. Bundle related sub-questions into a single AskUserQuestion to minimize round-trips (e.g. app name + platforms + bundle ID = one question). Suggest defaults so the user can just confirm or pick a number. Aim for 2-3 total AskUserQuestion calls, not one per field.
Bundle into 2-3 AskUserQuestion calls:
AskUserQuestion 1: App + Products — bundle app info and product selection:
App name: [suggest from package.json, Info.plist, or AndroidManifest] Bundle ID: [suggest from detected config files] Platforms: 1. iOS only / 2. Android only / 3. Both
Products: 1. Monthly (
monthly) / 2. Annual (annual) / 3. Monthly + Annual / 4. Weekly (weekly) / 5. Lifetime (lifetime) / 6. CustomValid
--periodvalues:weekly,monthly,two_months,trimonthly,semiannual,annual,lifetime. Do NOT usemonth,year,yearly, or any other aliases — use these exact API values. Product name prefix: [suggest based on app name, e.g. "Premium"]
After this answer, you have enough to generate store product IDs. Pre-fill them using the convention <bundle_id>.<prefix>.<period> and include in the next question.
AskUserQuestion 2: Store IDs + Placements + Paywall approach — confirm generated IDs and collect remaining info:
Store product IDs — these MUST match the IDs you create (or will create) in App Store Connect / Google Play Console. Confirm or edit the suggested IDs:
- iOS:
com.example.app.premium.monthly/com.example.app.premium.annual- Android product ID:
premium_monthly/ base plan:monthly-base(if Android)If your iOS and Android IDs differ, enter them separately (e.g. "iOS: com.app.monthly, Android: monthly_sub / base plan: monthly-bp"). If you haven't created store products yet, these suggestions work — just use the same IDs when you set them up in App Store Connect / Google Play Console later.
Placements: 1. Onboarding (
onboarding) / 2. Settings (settings) / 3. Feature gate (feature_gate) / 4. All of the above / 5. CustomPaywall UI: 1. Paywall Builder (visual editor, no UI code) / 2. Custom (your own UI)
Phase 2: Create
After collecting all answers, confirm the plan with the user in a summary table, then create everything sequentially. Do NOT ask questions during creation — use collected data.
IMPORTANT: Products and paywalls cannot be fully edited after creation (period, store product IDs, base plan IDs are permanent). This is why Phase 1 confirmation is critical.
Execution order (each step uses output from previous):
adapty auth login(if not already authenticated, check withadapty auth whoami)adapty apps create --title "..." --platform ... --apple-bundle-id/--google-bundle-id ...→ save output:id(use as--app),sdk_key(use in SDK), plus the default access levelidandsdk_idprinted after creation- For each product:
adapty products create --app <APP_ID> --title "..." --period ... --access-level-id <DEFAULT_AL_ID> --ios-product-id/--android-product-id ... [--android-base-plan-id ...]→ save product IDs. Android subscriptions (non-lifetime) require--android-base-plan-id. adapty paywalls create --app <APP_ID> --title "..." --product-id <ID1> --product-id <ID2> ...→ save paywall ID- For each placement:
adapty placements create --app <APP_ID> --title "..." --developer-id ... --paywall-id <PAYWALL_ID>
Print progress as you go (e.g. "Created app ✓", "Created product 'Monthly' ✓"). If a step fails, stop and ask the user how to proceed — don't retry blindly.
Phase 3: Guide (Interactive Loop)
After all entities are created, print a brief summary with key values:
Dashboard: https://app.adapty.io
Your SDK key: <sdk_key from apps create>
Placement developer IDs: <list of developer_ids>
Access level SDK ID: <sdk_id from access level, e.g. "premium">
Then use AskUserQuestion to ask what they want to do next. Repeat this after each sub-guide until the user says they're done. Build the options dynamically based on their setup answers:
What do you want to do next?
- Integrate SDK into the codebase
- Configure app/products on Apple side (only if iOS)
- Configure app/products on Google side (only if Android)
- Design paywall in Paywall Builder (only if they chose Paywall Builder)
- I'm done for now
Option 1: SDK Integration — print the quickstart link for their platform + paywall approach, plus the key values above. Use Context7 MCP for latest SDK code examples:
resolve-library-id: "adaptyteam/adapty-docs"
query-docs: topic="<platform> <feature>"
Paywall Builder quickstarts:
- iOS:
https://adapty.io/docs/ios-quickstart-paywalls.md - Android:
https://adapty.io/docs/android-quickstart-paywalls.md - Flutter:
https://adapty.io/docs/flutter-quickstart-paywalls.md - React Native:
https://adapty.io/docs/react-native-quickstart-paywalls.md
Custom paywall quickstarts:
- iOS:
https://adapty.io/docs/ios-quickstart-manual.md - Android:
https://adapty.io/docs/android-quickstart-manual.md - Flutter:
https://adapty.io/docs/flutter-quickstart-manual.md - React Native:
https://adapty.io/docs/react-native-quickstart-manual.md
Option 2: Apple side — print checklist:
- Create subscription products in App Store Connect with IDs:
<list ios_product_ids> - Adapty Dashboard → App Store Connect: upload In-App Purchase Key (.p8), enter Key ID, Issuer ID, Bundle ID, App Apple ID →
https://adapty.io/docs/app-store-connection-configuration.md - App Store Connect → Server Notifications V2: set URL from Adapty Dashboard →
https://adapty.io/docs/enable-app-store-server-notifications.md
Option 3: Google side — print checklist:
- Create subscription products in Google Play Console with IDs:
<list android_product_ids>, base plans:<list base_plan_ids> - Adapty Dashboard → Google Play: upload service account JSON key, enter Package Name →
https://adapty.io/docs/google-play-store-connection-configuration.md - Google Play Console → RTDN: configure Pub/Sub topic from Adapty Dashboard →
https://adapty.io/docs/enable-real-time-developer-notifications-rtdn.md
Option 4: Paywall Builder — link to dashboard paywalls section and guide: https://adapty.io/docs/adapty-paywall-builder.md
After showing any option's guide, loop back — ask "What's next?" again with the same AskUserQuestion (minus completed items if user indicates they're done with a step). Stop only when user picks "I'm done."
Mode: Manage (Existing Adapty Users)
For users who already have an Adapty app and want to manage entities, see references/cli-commands.md for the full command reference.
Key notes:
- All resource commands (except
apps) require--app <APP_ID>(UUID) apps get <app_id>andapps update <app_id>use a positional arg (no--appflag)- All other
get/updatecommands use a positional arg for the resource ID plus--appflag - All
listcommands support--pageand--page-size - All commands support
--json - Use
--title(not--name) for all entities - Use
--apple-bundle-id/--google-bundle-id(not ios/android)
Adapty Concepts
- Product — subscription or one-time purchase mapped to store product IDs. Has a period, grants an access level.
- Paywall — screen showing products. Can use Paywall Builder (visual editor) or remote config (custom JSON).
- Placement — location in app where paywall appears. Identified by
developer_id. Links to one paywall per audience. - Access Level — permission gate (e.g. "premium"). Products grant access levels on purchase. Identified by
sdk_id. - Audience — user segment. Different audiences at same placement can see different paywalls.
Documentation
- Full docs index:
https://adapty.io/docs/llms.txt - Individual pages:
https://adapty.io/docs/<slug>.md - SDK code examples: Context7 MCP with
adaptyteam/adapty-docs