aso-cli 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,19 +1,38 @@
1
- # App Store Optimization CLI
1
+ <h1 align="center">App Store Optimization CLI</h1>
2
2
 
3
- [![npm version](https://img.shields.io/npm/v/aso-cli)](https://www.npmjs.com/package/aso-cli)
4
- [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
5
- [![Node.js](https://img.shields.io/node/v/aso-cli)](https://www.npmjs.com/package/aso-cli)
6
- [![CI](https://img.shields.io/github/actions/workflow/status/semihcihan/App-Store-Optimization-CLI/ci.yml?branch=main&label=ci)](https://github.com/semihcihan/App-Store-Optimization-CLI/actions/workflows/ci.yml)
3
+ <p align="center">
4
+ <img src="./assets/app-icon/aso-icon-readme.png" alt="ASO icon" width="132" />
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/aso-cli"><img src="https://img.shields.io/npm/v/aso-cli" alt="npm version" /></a>
9
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License: MIT" /></a>
10
+ <a href="https://www.npmjs.com/package/aso-cli"><img src="https://img.shields.io/node/v/aso-cli" alt="Node.js" /></a>
11
+ <a href="https://github.com/semihcihan/App-Store-Optimization-CLI/actions/workflows/ci.yml"><img src="https://github.com/semihcihan/App-Store-Optimization-CLI/actions/workflows/ci.yml/badge.svg?branch=main" alt="CI" /></a>
12
+ </p>
7
13
 
8
14
  Research ASO keywords, inspect competition, and manage results from one local-first CLI.
9
15
 
10
- ## Why use it
16
+ ## What Is It?
11
17
 
12
18
  - Fast, free keyword research and visibility tracking
13
19
  - Keyword scoring with popularity + difficulty in one command
14
- - Local dashboard for reviewing keyword/app data
15
- - MCP tool (`aso_suggest`) for agent workflows and automated keyword research
16
- - Local persistence and reusable auth session
20
+ - Local ASO dashboard for reviewing keyword/app data
21
+ - MCP tool (`aso_evaluate_keywords`) for agent workflows and automated keyword research
22
+
23
+ <h3 align="center">ASO Dashboard</h3>
24
+
25
+ <p align="center">
26
+ <img src="./cli/dashboard-ui/public/dashboard.jpg" alt="ASO dashboard" title="ASO Dashboard" width="900" />
27
+ </p>
28
+
29
+ <h3 align="center">MCP</h3>
30
+
31
+ The dashboard keywords shown above were discovered and added automatically by an agent using the MCP tool.
32
+
33
+ <p align="center">
34
+ <img src="./cli/dashboard-ui/public/mcp.jpg" alt="ASO MCP workflow" width="900" />
35
+ </p>
17
36
 
18
37
  ## Install
19
38
 
@@ -21,32 +40,42 @@ Research ASO keywords, inspect competition, and manage results from one local-fi
21
40
  npm install -g aso-cli
22
41
  ```
23
42
 
43
+ Note: requires Node.js `>=20.18.1`.
44
+
24
45
  ## Apple Search Ads Setup
25
46
 
26
47
  ASO commands require Apple Search Ads setup.
27
48
 
28
49
  ### Prerequisites
29
50
 
30
- - Apple Search Ads account
31
- - Linked App Store Connect account
51
+ - App Store Connect account
32
52
  - App ID of a published app you can access
33
- - No campaign creation or billing required
53
+ - No campaign creation required
54
+ - No billing information required
34
55
 
35
56
  ### Setup
36
57
 
37
58
  1. Create/sign in: https://searchads.apple.com
38
- 2. Open Advanced: https://searchads.apple.com/advanced
39
- 3. Link your App Store Connect account in campaign group settings
40
- 4. Copy an App ID from your App Store URL (number after `id`)
41
- 5. Run `aso auth` and complete Apple ID + password + 2FA in terminal
42
-
43
- Example App Store URL:
44
-
45
- ```text
46
- https://apps.apple.com/us/app/example-app/id123456789
47
- ```
48
-
49
- App ID is `123456789` in this example.
59
+ - If your country is not available during signup, select `United States`.
60
+ 2. Open Apple Search Ads Advanced: https://searchads.apple.com/advanced
61
+ 3. Click your account name in the top-left corner.
62
+ 4. Under Campaign Groups, click Settings.
63
+ 5. Click Link Accounts.
64
+ 6. Select your App Store Connect account and save.
65
+ - If this is your first time using Apple Search Ads, you will usually have only one campaign group.
66
+ 7. Copy an App ID from your App Store URL (number after `id`)
67
+ Example App Store URL:
68
+ ```text
69
+ https://apps.apple.com/us/app/example-app/id123456789
70
+ ```
71
+ App ID is `123456789` in this example.
72
+ 8. Run `aso auth` and complete Apple ID + password + 2FA in terminal
73
+
74
+ Notes:
75
+
76
+ - You may see a missing billing information warning; this can be safely ignored.
77
+ - Ensure all campaign groups are linked to a valid App Store Connect account.
78
+ - [Troubleshoot App Store Connect account linking](https://ads.apple.com/app-store/help/get-started/0012-link-app-store-connect-accounts)
50
79
 
51
80
  ## Quick Start
52
81
 
@@ -63,36 +92,52 @@ aso
63
92
 
64
93
  ## Command Reference
65
94
 
66
- | Command | What it does |
67
- | --- | --- |
68
- | `aso` | Starts the local dashboard (default command) |
69
- | `aso keywords "k1,k2,k3"` | Fetches keyword popularity/difficulty and prints JSON |
95
+ | Command | What it does |
96
+ | ------------------------------- | ------------------------------------------------------- |
97
+ | `aso` | Starts the local dashboard (default command) |
98
+ | `aso keywords "k1,k2,k3"` | Fetches keyword popularity/difficulty and prints JSON |
70
99
  | `aso keywords "k1,k2" --stdout` | Machine-safe non-interactive mode for automation/agents |
71
- | `aso auth` | Reauthenticates Apple Search Ads session |
72
- | `aso reset-credentials` | Clears saved credentials/cookies |
73
- | `aso --primary-app-id <id>` | Sets primary App ID used for popularity requests |
100
+ | `aso auth` | Reauthenticates Apple Search Ads session |
101
+ | `aso reset-credentials` | Clears saved credentials/cookies |
102
+ | `aso --primary-app-id <id>` | Sets primary App ID used for popularity requests |
74
103
 
75
104
  ### Supported flags
76
105
 
77
106
  - `--country <code>`: currently `US` only
78
107
  - `--primary-app-id <id>`: saved locally for future runs
79
108
 
80
- ## Output Example (`aso keywords`)
109
+ ## Output Example (`aso keywords "meditation"`)
110
+
111
+ ````json
112
+ {
113
+ "items": [
114
+ {
115
+ "keyword": "meditation",
116
+ "popularity": 45,
117
+ "difficultyScore": 62,
118
+ "minDifficultyScore": 38
119
+ }
120
+ ],
121
+ "failedKeywords": []
122
+ }
81
123
 
82
124
  ```json
83
- [
84
- {
85
- "keyword": "meditation",
86
- "popularity": 45,
87
- "difficultyScore": 62,
88
- "minDifficultyScore": 38
89
- }
90
- ]
91
- ```
125
+ {
126
+ "items": [
127
+ {
128
+ "keyword": "meditation",
129
+ "popularity": 45,
130
+ "difficultyScore": 62,
131
+ "minDifficultyScore": 38
132
+ }
133
+ ],
134
+ "failedKeywords": []
135
+ }
136
+ ````
92
137
 
93
138
  ## MCP
94
139
 
95
- This package also installs `aso-mcp` with tool: `aso_suggest`.
140
+ This package also installs `aso-mcp` with tool: `aso_evaluate_keywords`.
96
141
 
97
142
  Example MCP config:
98
143
 
@@ -106,12 +151,6 @@ Example MCP config:
106
151
  }
107
152
  ```
108
153
 
109
- ## Help
110
-
111
- ```bash
112
- aso --help
113
- ```
114
-
115
154
  ## Current Scope
116
155
 
117
156
  - Storefront support: `US`