gsc-cli 2.0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4e0189995ff86db46e177552d4f59c1818fb052ce8596771b007653d291e4e20
4
+ data.tar.gz: c460fc3df0a07d176777f662c729c11ae04ec2a31bac4b64c6e5480a11287317
5
+ SHA512:
6
+ metadata.gz: 6c79b81769a4aeb94d03b594c1a7ecbbe63fa41fa6898b9ad1ac7b2a1770cc9116f6881fded5fbe25dbb050d6d2bc3034d9e493003d2e22b9eb39ed4027b06d6
7
+ data.tar.gz: 6d51b70bb71d03e0ada49926a4fbad9b86a71f18ba73b9c96ae046bb9094bc8502ef6da5287ee44d51f27d4f8893703059a6e6f21f4528be6d793748acc98a59
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,500 @@
1
+ # πŸš€ GSC CLI β€” The Zero-Dependency Google Search Console, Trends & Indexing Engine for High-Growth Operators
2
+
3
+ > **Zero Gem Dependencies.** Pure Ruby standard library (`Net::HTTP`, `OpenSSL`, `JSON`).
4
+ > Sub-50ms CLI & AI Agent engine for real-time Google search rankings, instant Googlebot indexing, Google Trends velocity, Keywords Everywhere volume, and 360Β° SEO health audits.
5
+
6
+ [![Ruby](https://img.shields.io/badge/Ruby-3.0%2B-red.svg?logo=ruby&logoColor=white)](https://www.ruby-lang.org)
7
+ [![Dependencies](https://img.shields.io/badge/dependencies-0%20gems-brightgreen.svg)](#)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
9
+ [![AI Agent Native](https://img.shields.io/badge/AI%20Agent-Native%20Skill-purple.svg)](#-ai-agent-native-integration-antigravity-claude-cursor)
10
+
11
+ ---
12
+
13
+ <p align="center">
14
+ <b>gsc-cli</b> is a free, open-source initiative built and maintained by
15
+ <a href="https://apolloswave.com"><b>AppollosWave LLC</b></a>.
16
+ </p>
17
+
18
+ <p align="center">
19
+ <sub>Explore other software built by our team:</sub><br>
20
+ ⚑ <a href="https://superspeedapp.com"><b>Superspeed</b></a> β€” Lightning-fast macOS disk cleaner & RAM booster for Apple Silicon<br>
21
+ πŸ›’ <a href="https://supercart.app"><b>Supercart</b></a> β€” High-converting slide cart drawer & 1-click upsells for Shopify stores<br>
22
+ πŸ“¦ <a href="https://packinglog.com"><b>PackingLog</b></a> β€” Smart QR-code box inventory & photo catalog for residential & office moves
23
+ </p>
24
+
25
+ ---
26
+
27
+ ## ⚑ The Brutal Truth About Modern SEO (And Why We Built GSC CLI)
28
+
29
+ Every software company, indie hacker, and e-commerce founder faces the exact same painful reality:
30
+
31
+ 1. **You're Paying $300/Month for Guesswork**: Third-party SEO suites (Ahrefs, Semrush, Moz) scrape search results and guess your rankings using outdated third-party databases. Meanwhile, **Google already has the exact, ground-truth data** for your site sitting inside Search Consoleβ€”for free.
32
+ 2. **Official Google API Gems Are Bloated Monsters**: The official Google API Ruby gems (`google-apis-searchconsole_v1`, `google-apis-indexing_v3`, `googleauth`) drag in **40+ dependency gems**, take 3 to 5 seconds just to boot, trigger bundle conflicts, and introduce constant supply-chain security alerts.
33
+ 3. **Google Search Console's Web UI is Painfully Slow**: Clicking through Google Search Console's web interface to inspect 50 URLs or spot keyword cannibalization takes hours of repetitive clicking, filtering, and tab-switching.
34
+ 4. **AI Agents Need Clean, Fast, Machine-Readable Intelligence**: Modern AI coding agents (Google Antigravity, Claude Code, Cursor, Codex) cannot click web buttons. They need raw, fast, deterministic JSON over stdout.
35
+
36
+ ### The Epiphany Bridge
37
+ At **[AppollosWave](https://apolloswave.com)**, we run multiple production software businessesβ€”from macOS system utilities (**[Superspeed](https://superspeedapp.com)**) and Shopify e-commerce apps (**[Supercart](https://supercart.app)**) to physical moving inventory SaaS (**[PackingLog](https://packinglog.com)**).
38
+
39
+ We refused to bloat our repos with 40 gems or waste 10 hours a week clicking in Search Console. We needed a **single, standalone pure-Ruby CLI** that connects directly to Google APIs using native `OpenSSL` and `Net::HTTP` in **under 50 milliseconds**.
40
+
41
+ We built **`gsc-cli`** to run our own marketing. **We open-sourced it 100% free under the MIT License** so other builders and businesses can grow organic search traffic faster without the corporate SEO tax.
42
+
43
+ ---
44
+
45
+ ## πŸ’Ž Key Capabilities at a Glance
46
+
47
+ - πŸ“ˆ **Real-Time Google Trends Engine**: 5-year and 1-year search trajectory, growth velocity percentage, Unicode sparklines (` β–‚β–ƒβ–„β–…β–†β–‡β–ˆ`), and regional demand breakdowns with zero authentication.
48
+ - 🎯 **Zero-Auth Keyword Planner**: Instant seed expansion via Google Autocomplete with automated search intent classification (`Informational`, `Commercial`, `Transactional`).
49
+ - πŸ’° **Keywords Everywhere API Integration**: Fetch exact monthly search volume, CPC, competition index, and 12-month trends for up to 500 keywords in a single call.
50
+ - πŸ“Š **Google Ads Planner Ingestion**: Ingest CSV exports from Google Ads Keyword Planner, calculate composite Opportunity Scores (0–100), and cross-correlate with live GSC rankings.
51
+ - πŸš€ **Instant Googlebot Re-Indexing**: Ping Google's Indexing API with `URL_UPDATED` or `URL_DELETED` for priority crawl queueing within seconds.
52
+ - πŸ” **Live Google URL Inspection**: Direct Search Console API check for indexing verdict, assigned canonical URL, crawl timestamps, and robots.txt state.
53
+ - πŸ’€ **90-Day Zombie Page Detection**: Automatically scan XML sitemaps to find zero-impression deadweight URLs draining your Google crawl budget.
54
+ - πŸ›‘οΈ **Cannibalization & Decay Detection**: Spot internal URLs fighting for the same queries, and compare 28-day period-over-period traffic trends.
55
+ - πŸ“Š **Google Analytics 4 (GA4) Behavioral Link**: Stream live active visitors (`gsc realtime --watch`) and correlate SERP rankings with landing page bounce rates.
56
+ - πŸ“‘ **Off-Page & On-Page SEO Merger (`gsc page`)**: Combines Detailed SEO Extension DOM inspection (title pixel width & SERP truncation, meta description, H1–H6 tree, missing alt attributes, canonicals, JSON-LD schema, OG/Twitter cards) with real Google Search Console 90-day search queries, clicks, and rankings.
57
+ - πŸ•·οΈ **Autonomous Site Audit & Broken Link Repair (`gsc site-audit`)**: Crawls all sitemap URLs, checks HTTP response codes for dead internal links (404/500/timeouts), audits missing image alts and heading defects, and exports an AI-actionable Markdown fix sprint.
58
+ - πŸ€– **AI Agent Native**: Every single command supports `--json` for instantaneous programmatic consumption by AI agents.
59
+
60
+ ---
61
+
62
+ ## πŸ“¦ Quick Installation
63
+
64
+ ### Option 1: One-Line Installer (Recommended for macOS & Linux)
65
+ ```bash
66
+ curl -fsSL https://raw.githubusercontent.com/ApollosWave/gsc-cli/main/install.sh | bash
67
+ ```
68
+
69
+ ### Option 2: Clone & Install Standalone
70
+ `gsc-cli` is a standalone pure-Ruby executable with zero gem runtime dependencies:
71
+ ```bash
72
+ git clone https://github.com/ApollosWave/gsc-cli.git
73
+ cd gsc-cli
74
+ ./install.sh
75
+ ```
76
+
77
+ ### Option 3: RubyGem Installation
78
+ ```bash
79
+ gem install gsc-cli
80
+ ```
81
+
82
+ Ensure `~/.local/bin` is in your shell `PATH`:
83
+ ```bash
84
+ echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
85
+ source ~/.zshrc
86
+ ```
87
+
88
+ Verify your installation:
89
+ ```bash
90
+ gsc version
91
+ ```
92
+
93
+ ---
94
+
95
+ ## ⚑ 2-Minute Google Setup
96
+
97
+ ### Step 1: Create a Google Cloud Service Account Key
98
+ 1. Open [Google Cloud Console](https://console.cloud.google.com/).
99
+ 2. In **APIs & Services > Library**, enable:
100
+ - **Web Search Indexing API**
101
+ - **Google Search Console API**
102
+ - *(Optional for GA4)*: **Google Analytics Data API**
103
+ 3. In **IAM & Admin > Service Accounts**, click **Create Service Account** (e.g. `gsc-indexer`).
104
+ 4. Click your new service account > **Keys** tab > **Add Key** > **Create new key** > **JSON**. Download the file.
105
+
106
+ ### Step 2: Run 1-Click Interactive Connect
107
+ In your terminal, simply run:
108
+ ```bash
109
+ gsc connect
110
+ ```
111
+ `gsc` automatically searches your `~/Downloads` folder for recently created Google Cloud service account keys, lets you confirm with `Y`, and saves it securely to `~/.config/gsc/service-account.json`.
112
+
113
+ ### Step 3: Add the Email to Google Search Console
114
+ 1. Copy the service account email displayed in the terminal.
115
+ 2. Go to [Google Search Console](https://search.google.com/search-console/) > Select your property > **Settings** > **Users and permissions**.
116
+ 3. Click **Add User**, paste the email, and set permission to **Owner**.
117
+
118
+ Verify access immediately:
119
+ ```bash
120
+ gsc domains
121
+ ```
122
+
123
+ ---
124
+
125
+ ## 🧠 In-Depth Guides: Keyword Demand & Search Intelligence
126
+
127
+ ### 0. Detailed Off-Page + On-Page SEO Merger (`gsc page` & `gsc site-audit`)
128
+
129
+ #### The Problem
130
+ On-page SEO browser extensions (like Detailed SEO Extension) inspect your DOM (titles, meta, headings, schemas), but they are blind to whether your page actually ranks on Google. Conversely, Google Search Console shows search impressions and positions, but tells you nothing about missing H1s, broken links, or images missing alt tags.
131
+
132
+ #### The Magic
133
+ `gsc page` merges both worlds into a single, cohesive 360Β° audit:
134
+ ```bash
135
+ # Audit any URL combining DOM inspection with GSC 90-day search performance
136
+ gsc page https://packinglog.com/
137
+
138
+ # Deep internal link verification: tests HTTP status codes (200, 404, 500)
139
+ gsc page https://packinglog.com/ --check-links
140
+
141
+ # Local template auditing before deploying
142
+ gsc page src/routes/+page.svelte
143
+ ```
144
+
145
+ And `gsc site-audit` crawls entire XML sitemaps to generate prioritized AI fix sprints:
146
+ ```bash
147
+ gsc site-audit https://packinglog.com/sitemap.xml --report docs/seo/site_audit_issues.md
148
+ ```
149
+
150
+ ---
151
+
152
+ ### 1. Keywords Everywhere API Integration (`gsc ke`)
153
+
154
+ #### The Problem
155
+ Knowing *what* people search is only half the battle. You need to know **exact monthly search volume**, **Cost Per Click (CPC)**, and **commercial competition**. Manually logging into keyword tools, copying keyword tables, and checking spreadsheets breaks your flow and blocks autonomous AI agents.
156
+
157
+ #### The Magic
158
+ `gsc-cli` integrates directly with the official Keywords Everywhere API. In a single command, it expands any topic, pulls exact search volumes and CPCs, calculates an **Opportunity Score (0–100)**, and checks whether your domain already ranks for that keyword in Search Console:
159
+
160
+ ```bash
161
+ gsc ke "mac cleaner" --limit 25
162
+ ```
163
+
164
+ Terminal Output:
165
+ ```text
166
+ πŸ” KEYWORDS EVERYWHERE SEARCH DEMAND (Seed: mac cleaner)
167
+ Country: US Β· Provider: Google Keyword Planner via Keywords Everywhere API
168
+ Correlated with GSC: superspeedapp.com
169
+
170
+ KEYWORD VOL/MO CPC COMP OPP SCORE INTENT GSC RANK STATUS
171
+ ──────────────────────────────────────────────────────────────────────────────────────────────────────────
172
+ best mac cleaner 2025 18,100 $4.80 0.42 82/100 Commercial 🎯 Striking Distance (Pos 8.4)
173
+ free mac disk cleaner 12,400 $3.10 0.28 88/100 Transactional πŸš€ Untargeted
174
+ clean my mac alternative 6,600 $6.50 0.35 81/100 Commercial πŸ₯‡ Page 1 (Pos 4.2)
175
+ how to clear system storage mac 9,900 $1.20 0.15 89/100 Informational πŸš€ Untargeted
176
+ ```
177
+
178
+ #### How to Connect Keywords Everywhere in 10 Seconds
179
+ 1. Get an API key from [Keywords Everywhere](https://keywordseverywhere.com/) (credits start at just $1.25 for 100,000 keywords).
180
+ 2. Connect it in `gsc`:
181
+ ```bash
182
+ gsc connect ke YOUR_API_KEY
183
+ ```
184
+ *Your key is securely saved to `~/.config/gsc/config.json` alongside your Google credentials.*
185
+ 3. Check remaining account credits anytime:
186
+ ```bash
187
+ gsc ke-credits
188
+ ```
189
+ 4. Bulk inspect an entire keyword file:
190
+ ```bash
191
+ gsc ke keywords.txt --country us --limit 100 --json
192
+ ```
193
+
194
+ ---
195
+
196
+ ### 2. Google Trends Real-Time Demand Engine (`gsc trends`)
197
+
198
+ #### The Problem
199
+ Standard search volume metrics are **12-month trailing averages**. When consumer behavior shifts, or a seasonal moving spike occurs, static tools keep showing last year's data while you miss the active breakout.
200
+
201
+ #### The Magic
202
+ `gsc trends` queries Google Trends explore and widget APIs directly in real time with **zero authentication and zero API keys**. It calculates:
203
+ - **Trajectory Velocity**: Compares recent interest vs historical baseline.
204
+ - **Velocity Badges**: `πŸš€ (Explosive Breakout)`, `πŸ”₯ (Strong Surging)`, `πŸ“ˆ (Growing Demand)`, `βš–οΈ (Stable Demand)`, `πŸ“‰ (Cooling)`.
205
+ - **Unicode Sparklines**: Visualizes interest curves right in your terminal (` β–‚β–ƒβ–„β–…β–†β–‡β–ˆ`).
206
+ - **Geographic Heatmap**: Identifies top states and regions driving demand.
207
+
208
+ ```bash
209
+ gsc trends "moving boxes" --geo US --time 12m
210
+ ```
211
+
212
+ ```bash
213
+ gsc trends "local llm" --geo US --time 5y --json
214
+ ```
215
+
216
+ ---
217
+
218
+ ### 3. Autocomplete Keyword Intent Expander (`gsc planner`)
219
+
220
+ #### The Problem
221
+ You need fresh keyword ideas based on what Google users are actively searching *right now*, without setting up paid APIs or logging into Google Ads.
222
+
223
+ #### The Magic
224
+ `gsc planner` queries Google's autocomplete infrastructure with zero keys, extracts 20–50 qualified search phrases, and uses regex linguistic heuristics to classify **Search Intent**:
225
+ - **Informational**: *"how to pack dishes for moving"*, *"why is mac running slow"*
226
+ - **Commercial**: *"best moving apps"*, *"superspeed vs cleanmymac"*
227
+ - **Transactional**: *"buy wardrobe moving boxes cheap"*, *"hire movers near me"*
228
+
229
+ It then checks your active domain's GSC rankings so you instantly see untargeted opportunities:
230
+ ```bash
231
+ gsc planner "moving boxes" --limit 20
232
+ ```
233
+
234
+ ---
235
+
236
+ ### 4. Universal Keyword Ingestion: Google Ads & Keywords Everywhere (`gsc import`)
237
+
238
+ #### The Problem
239
+ Exporting search volume and CPC data from keyword tools usually results in messy spreadsheets that sit forgotten in your downloads folder. Merging those keywords with your live Google Search Console rankings requires complex VLOOKUPs and manual position checking.
240
+
241
+ #### The Magic
242
+ `gsc import` accepts raw exports from **both Google Ads Keyword Planner and Keywords Everywhere** (in `.csv`, `.tsv`, or markdown table format):
243
+ ```bash
244
+ # Import Keywords Everywhere export
245
+ gsc import path/to/KW.md --limit 30
246
+
247
+ # Import Google Ads Keyword Planner CSV/TSV
248
+ gsc import path/to/google-ads-keywords.csv --limit 30
249
+ ```
250
+
251
+ `gsc` automatically:
252
+ - **Deduplicates** redundant keyword rows across multiple concatenated batches.
253
+ - **Normalizes** search volumes, CPC bids, and competition tiers.
254
+ - **Extracts 12-Month Historical Demand**: Automatically identifies monthly columns and renders a live **Unicode Sparkline** (` β–‚β–ƒβ–„β–…β–†β–‡β–ˆ`) for each keyword in your terminal.
255
+ - **Calculates Opportunity Scores (0–100)**:
256
+ $$\text{Opportunity} = \text{Search Volume (0–50)} + (1 - \text{Competition}) \times 50$$
257
+ - **Cross-References Live GSC Rankings**: Instantly flags whether your active domain is already ranking (`πŸ† Top 3`, `πŸ₯‡ Page 1`, `🎯 Striking Distance`) or represents an untapped gap (`πŸš€ Untargeted`).
258
+ - **Auto-Archives to Domain Storage**: Automatically persists the dataset to `~/.config/gsc/domains/<domain>/keywords/` for historical rank tracking.
259
+
260
+ Terminal Output:
261
+ ```text
262
+ Opp Score | Volume/mo | CPC | Comp | Tier | Trend% [12m] | GSC Status | Intent | Keyword
263
+ --------------------------------------------------------------------------------------------------------------------------------
264
+ 75 | 1,000 | $11.04 | 0.10 | Low | -69% β–„β–…β–…β–ˆβ–…β– | πŸš€ Untargeted | Navigational | moving from san francisco to new york
265
+ 69 | 77 | $0.00 | 0.00 | Low | +0% β–„β–„β–„β–„β–„β–„ | πŸš€ Untargeted | Navigational | moving from dallas to orlando
266
+ 68 | 390 | $1.99 | 0.17 | Low | +25% β–β–„β–„β–„β–ˆβ–ˆ | πŸš€ Untargeted | Navigational | storage unit size calculator
267
+ 68 | 110 | $1.74 | 0.05 | Low | -65% β–‚β–ˆβ–ˆβ–β–„β– | πŸš€ Untargeted | Navigational | moving checklist app
268
+ 64 | 30 | $2.19 | 0.05 | Low | +83% β–ƒβ–β–β–†β–ˆβ–ˆ | πŸš€ Untargeted | Navigational | moving volume calculator
269
+ ```
270
+
271
+ ---
272
+
273
+ ### 5. Domain Keyword Archive & Rank Movement Tracker (`gsc saved`)
274
+
275
+ #### The Problem
276
+ Keyword research is only valuable if you track whether your content efforts actually move the needle over time. Without historical snapshots, you cannot tell if an unranked keyword from two months ago has entered striking distance.
277
+
278
+ #### The Magic
279
+ `gsc-cli` automatically stores all research and imported datasets in isolated domain directories under `~/.config/gsc/domains/<domain>/keywords/`.
280
+
281
+ ```text
282
+ ~/.config/gsc/
283
+ β”œβ”€β”€ config.json
284
+ β”œβ”€β”€ service-account.json
285
+ └── domains/
286
+ β”œβ”€β”€ packinglog.com/
287
+ β”‚ └── keywords/
288
+ β”‚ β”œβ”€β”€ 2026-09-10-kw-md.json
289
+ β”‚ └── 2026-09-10-moving-boxes.json
290
+ └── superspeedapp.com/
291
+ └── keywords/
292
+ └── 2026-09-10-mac-cleaner.json
293
+ ```
294
+
295
+ #### List Saved Snapshots
296
+ ```bash
297
+ gsc saved
298
+ ```
299
+ ```text
300
+ πŸ“ SAVED KEYWORD RESEARCH ARCHIVES (packinglog.com)
301
+ Location: ~/.config/gsc/domains/packinglog.com/keywords
302
+
303
+ # | Date | Source | Keywords | Seed / File
304
+ --------------------------------------------------------------------------------
305
+ [1] | 2026-09-10 | Import | 209 | KW.md
306
+ [2] | 2026-09-10 | Google Autocomplete | 50 | moving boxes
307
+ ```
308
+
309
+ #### Re-Check Live Search Console Rankings & Track Wins
310
+ Run `gsc saved check <id>` to re-query Search Console API in real-time and measure your rank progress:
311
+ ```bash
312
+ gsc saved check 1
313
+ ```
314
+
315
+ ```text
316
+ ══════════════════════════════════════════════════════════════
317
+ πŸ“Š KEYWORD RANKING & OPPORTUNITY TRACKER (packinglog.com)
318
+ ══════════════════════════════════════════════════════════════
319
+ πŸ† Top 3 Rankings: 2 (+2 new)
320
+ πŸ₯‡ Page 1 Rankings (4–10): 5 (+3 new)
321
+ 🎯 Striking Distance (11–20): 14 (+6 new)
322
+ πŸš€ Untargeted / Unranked: 188
323
+ πŸ“ˆ Total Tracked Keywords: 209
324
+ ══════════════════════════════════════════════════════════════
325
+ ```
326
+
327
+ ---
328
+
329
+ ## πŸ› οΈ Complete CLI Command Reference
330
+
331
+ ### 1. Setup, Configuration & Domain Switching
332
+ | Command | Description |
333
+ |---|---|
334
+ | `gsc connect` | 1-Click interactive setup wizard: auto-detects key in Downloads or drag & drop |
335
+ | `gsc connect ke [key]` | Connect Keywords Everywhere API key and save to `~/.config/gsc/config.json` |
336
+ | `gsc connect-ga4` | Interactive Google Analytics 4 linking wizard |
337
+ | `gsc domains` | List all verified Search Console properties and linked GA4 properties |
338
+ | `gsc use <domain or #>` | Switch active default domain (e.g. `gsc use 2` or `gsc use packinglog.com`) |
339
+ | `gsc open` | Open `~/.config/gsc` configuration directory in Finder |
340
+ | `gsc where` | Inspect CLI binary path, active credential file, and config path |
341
+ | `gsc update` | Self-update `gsc` to the latest version directly from GitHub |
342
+ | `gsc version` | Display CLI version and Ruby runtime environment |
343
+
344
+ ### 2. Google Trends & Keyword Intelligence
345
+ | Command | Description |
346
+ |---|---|
347
+ | `gsc trends <query>` | Real-time Google Trends 5y/1y demand velocity, sparklines, and geo breakdown |
348
+ | `gsc planner <seed>` | Zero-auth Google Suggest intent expander with live GSC rank correlation |
349
+ | `gsc import <file>` | Ingest Google Ads or Keywords Everywhere export (.csv, .tsv, .md) with 12m sparklines |
350
+ | `gsc planner-import <file>` | Ingest Google Ads / Keywords Everywhere export (alias for `import`) |
351
+ | `gsc ke <seed or file>` | Keywords Everywhere: Exact monthly volume, CPC, competition & GSC correlation |
352
+ | `gsc ke-credits` | Check remaining Keywords Everywhere account API credits |
353
+ | `gsc saved` | List saved keyword research snapshots for the active domain |
354
+ | `gsc saved check [id]` | Re-check saved keyword snapshots against live GSC rankings to track wins |
355
+ | `gsc saved view [id]` | View stored keyword metrics and opportunity scores |
356
+ | `gsc saved delete [id]` | Delete a saved keyword research snapshot |
357
+
358
+ ### 3. Search Performance & SEO Growth Intelligence
359
+ | Command | Description |
360
+ |---|---|
361
+ | `gsc top-queries` | Top search queries, impressions, CTR, and average position |
362
+ | `gsc top-pages` | Top indexed landing pages driving organic clicks & impressions |
363
+ | `gsc opportunities` | **Striking-distance queries (Pos 7–20)** to push to Page 1 and Top 3 |
364
+ | `gsc underperformers` | High-ranking queries (Top 10) with below-average CTR (title & meta tag wins) |
365
+ | `gsc cannibalization` | Detect multiple internal URLs competing for the same search queries |
366
+ | `gsc decay [--compare 28]` | Period-over-period decay detection (decaying vs surging queries) |
367
+ | `gsc devices` | Search traffic breakdown by device (Desktop, Mobile, Tablet) |
368
+ | `gsc countries` | Geographic search demand by country with flags and CTR |
369
+ | `gsc snippets` | Search appearance appearances (Reviews, Products, FAQs) |
370
+ | `gsc audit` | Comprehensive 4-step 360Β° SEO & Indexing Health Audit |
371
+
372
+ ### 4. Detailed On-Page DOM & Autonomous Site Crawling
373
+ | Command | Description |
374
+ |---|---|
375
+ | `gsc page <url or file>` | 360Β° On-Page DOM audit (Title pixel width, meta, H1-H6, images, schema) + GSC rankings |
376
+ | `gsc page <url> --check-links` | Verify HTTP status codes (detects 404 broken links) across all page links |
377
+ | `gsc site-audit [sitemap]` | Crawl sitemap/site, test dead links, audit DOM flaws, and output summary |
378
+ | `gsc site-audit --report <file>` | Export comprehensive AI-actionable Markdown fix sprint (e.g. `site_issues.md`) |
379
+
380
+ ### 4. Live Indexation & Googlebot Control
381
+ | Command | Description |
382
+ |---|---|
383
+ | `gsc inspect <url>` | Live Google Search Console URL inspection (coverage, canonical, crawl date) |
384
+ | `gsc index <url>` | Notify Googlebot to crawl/index a newly published URL immediately (`URL_UPDATED`) |
385
+ | `gsc remove <url>` | Notify Googlebot a URL has been permanently deleted (`URL_DELETED`) |
386
+ | `gsc status <url>` | Check Google Indexing API submission status and latest notification timestamp |
387
+ | `gsc inspect-sitemap <file/url>` | Bulk inspect indexation status for all URLs in an XML sitemap |
388
+ | `gsc index-sitemap <file/url>` | Batch submit all URLs in an XML sitemap to Google Indexing API |
389
+ | `gsc zombies <sitemap>` | Identify zero-impression deadweight URLs wasting crawl budget over 90 days |
390
+ | `gsc sitemaps-list` | List registered XML sitemaps in Search Console |
391
+ | `gsc sitemaps-submit <url>` | Submit or re-submit an XML sitemap to Search Console |
392
+
393
+ ### 5. Google Analytics 4 (GA4) On-Site Behavior
394
+ | Command | Description |
395
+ |---|---|
396
+ | `gsc realtime [--watch]` | Stream active visitors, real-time page paths, and countries |
397
+ | `gsc ga4 [--organic]` | Landing page bounce rates, engagement rates, and average session duration |
398
+ | `gsc correlation` | Merge GSC keyword rankings with GA4 bounce rates per landing page |
399
+ | `gsc channels` | Traffic acquisition channels (Organic Search, Direct, Referral, Paid) |
400
+ | `gsc ads` | Google Ads campaign performance (Clicks, Cost, CPC, Conversions) |
401
+
402
+ ---
403
+
404
+ ## πŸ€– AI Agent Native Integration (Antigravity, Claude, Cursor)
405
+
406
+ `gsc-cli` was built from the ground up for autonomous AI coding agents. Every single command supports the `--json` flag to return clean, deterministic, machine-readable JSON over stdout.
407
+
408
+ ### Agent Workflow Examples
409
+
410
+ ```bash
411
+ # 1. Ask your agent to inspect striking-distance keywords:
412
+ gsc opportunities --min-imp 20 --json
413
+
414
+ # 2. Ask your agent to audit indexation before shipping a release:
415
+ gsc audit --json
416
+
417
+ # 3. Ask your agent to discover keyword demand with volume and CPC:
418
+ gsc ke "moving boxes" --limit 50 --json
419
+
420
+ # 4. Ask your agent to notify Googlebot the second it publishes a new blog post:
421
+ gsc index https://example.com/blog/new-guide --json
422
+ ```
423
+
424
+ Install the official AI Agent Skill:
425
+ ```bash
426
+ gsc skills install
427
+ ```
428
+
429
+ ---
430
+
431
+ ## 🏒 Proudly Backed by AppollosWave LLC
432
+
433
+ `gsc-cli` is free and open-source software under the [MIT License](LICENSE). It is actively developed and maintained by the engineering team at **[AppollosWave LLC](https://apolloswave.com)**.
434
+
435
+ We build tools for high-performance software, e-commerce, and everyday logistics. Check out our commercial products:
436
+
437
+ - ⚑ **[Superspeed](https://superspeedapp.com)** β€” The native, lightning-fast macOS performance & storage cleaner designed for Apple Silicon. Purge multi-gigabyte Xcode caches, app leftovers, and reclaim RAM in one tap.
438
+ - πŸ›’ **[Supercart](https://supercart.app)** β€” The modern slide cart drawer for Shopify. Boost Average Order Value (AOV) with automated in-cart upsells, free shipping progress bars, and instant 1-click checkout.
439
+ - πŸ“¦ **[PackingLog](https://packinglog.com)** β€” The personal and business moving box inventory management app. Batch-photograph box items with your phone, print scannable QR stickers, and locate any item in seconds.
440
+
441
+ ---
442
+
443
+ ## πŸ—οΈ Architecture & Development
444
+
445
+ `gsc-cli` is engineered following a clean, modular Ruby architecture:
446
+
447
+ ```text
448
+ gsc-cli/
449
+ β”œβ”€β”€ bin/
450
+ β”‚ └── gsc # Lean executable runner (< 15 lines)
451
+ β”œβ”€β”€ lib/
452
+ β”‚ β”œβ”€β”€ gsc.rb # Central loader & stdlib requirements
453
+ β”‚ └── gsc/
454
+ β”‚ β”œβ”€β”€ version.rb # Semantic versioning (2.0.0)
455
+ β”‚ β”œβ”€β”€ color.rb # Zero-dependency ANSI formatting
456
+ β”‚ β”œβ”€β”€ config.rb # ~/.config/gsc/config.json persistence
457
+ β”‚ β”œβ”€β”€ auth.rb # Pure OpenSSL JWT generator
458
+ β”‚ β”œβ”€β”€ client.rb # Net::HTTP client with JSON serialization
459
+ β”‚ β”œβ”€β”€ api.rb # GSC, Indexing & GA4 API endpoints
460
+ β”‚ β”œβ”€β”€ sitemap_loader.rb # XML crawler & sitemap index parser
461
+ β”‚ β”œβ”€β”€ google_trends.rb # Real-time search demand engine
462
+ β”‚ β”œβ”€β”€ keyword_planner.rb # Autocomplete expander & intent classifier
463
+ β”‚ β”œβ”€β”€ keywords_everywhere.rb # Keywords Everywhere API client
464
+ β”‚ β”œβ”€β”€ command_registry.rb # Command catalog (47 commands) & AI skills
465
+ β”‚ └── cli.rb # Option parser, command router & wizards
466
+ β”œβ”€β”€ dist/
467
+ β”‚ └── gsc # Standalone bundled binary (curl distribution)
468
+ β”œβ”€β”€ gsc.gemspec # Standard RubyGem specification
469
+ β”œβ”€β”€ Rakefile # Tasks for build, test, and install
470
+ └── install.sh # Universal 1-click shell installer
471
+ ```
472
+
473
+ ### Development Tasks
474
+ ```bash
475
+ # Run syntax verification across all modular files
476
+ rake test
477
+
478
+ # Build the standalone single-file binary into dist/gsc
479
+ rake build:standalone
480
+
481
+ # Install local development build to ~/.local/bin/gsc
482
+ rake install:standalone
483
+
484
+ # Build gem package
485
+ rake gem:build
486
+ ```
487
+
488
+ ---
489
+
490
+ ## πŸ™ Acknowledgments & Credits
491
+
492
+ - **[Ben Sheldon](https://github.com/bensheldon)**: Inspired by Ben Sheldon's backend Ruby Google Ads API implementation and the Rails performance community's passion for lean, zero-dependency, server-side tools.
493
+ - **[Corey Haines](https://github.com/coreyhaines31)**: The companion SEO & marketing skills (`ai-seo`, `seo-audit`, `schema`, `programmatic-seo`, `copywriting`, `cro`) are adapted from the open-source [marketingskills](https://github.com/coreyhaines31/marketingskills) repository by [Corey Haines](https://github.com/coreyhaines31) (MIT License).
494
+ - **[Basecamp & Kamal](https://github.com/basecamp/kamal)**: Modular CLI directory layout and standalone distribution patterns inspired by Basecamp's open-source tooling.
495
+
496
+ ---
497
+
498
+ ## πŸ“„ License
499
+
500
+ This project is open-source software licensed under the **MIT License**. See [LICENSE](LICENSE) for details.