gsc-cli 2.1.0 → 2.2.2

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.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. data/AUTH.md +4 -1
  3. data/README.md +448 -408
  4. data/bin/gsc +28067 -5661
  5. data/dist/gsc +29121 -5046
  6. data/lib/gsc/aio_hunter.rb +343 -0
  7. data/lib/gsc/answer_synthesizer.rb +157 -0
  8. data/lib/gsc/api.rb +53 -1
  9. data/lib/gsc/auth.rb +26 -0
  10. data/lib/gsc/brand_segmenter.rb +140 -0
  11. data/lib/gsc/cache_manager.rb +806 -0
  12. data/lib/gsc/cannibalization_analyzer.rb +141 -0
  13. data/lib/gsc/canonical_chains.rb +367 -0
  14. data/lib/gsc/citation_simulator.rb +339 -0
  15. data/lib/gsc/cli/aio_hunter.rb +154 -0
  16. data/lib/gsc/cli/analytics.rb +788 -0
  17. data/lib/gsc/cli/audit.rb +1976 -0
  18. data/lib/gsc/cli/base.rb +384 -0
  19. data/lib/gsc/cli/cache.rb +266 -0
  20. data/lib/gsc/cli/canonical.rb +223 -0
  21. data/lib/gsc/cli/citation_simulator.rb +152 -0
  22. data/lib/gsc/cli/dashboard.rb +354 -0
  23. data/lib/gsc/cli/doctor.rb +129 -0
  24. data/lib/gsc/cli/eeat.rb +125 -0
  25. data/lib/gsc/cli/ga4.rb +852 -0
  26. data/lib/gsc/cli/growth.rb +650 -0
  27. data/lib/gsc/cli/hreflang.rb +164 -0
  28. data/lib/gsc/cli/image_seo.rb +162 -0
  29. data/lib/gsc/cli/indexing.rb +458 -0
  30. data/lib/gsc/cli/intent_shift.rb +125 -0
  31. data/lib/gsc/cli/keyword_value.rb +134 -0
  32. data/lib/gsc/cli/keywords.rb +795 -0
  33. data/lib/gsc/cli/landing_roi.rb +308 -0
  34. data/lib/gsc/cli/low_ctr.rb +213 -0
  35. data/lib/gsc/cli/mobile_parity.rb +150 -0
  36. data/lib/gsc/cli/report.rb +100 -0
  37. data/lib/gsc/cli/rich_results.rb +172 -0
  38. data/lib/gsc/cli/schema_generate.rb +149 -0
  39. data/lib/gsc/cli/seasonal.rb +232 -0
  40. data/lib/gsc/cli/security.rb +153 -0
  41. data/lib/gsc/cli/setup.rb +1291 -0
  42. data/lib/gsc/cli/sitemap_tree.rb +143 -0
  43. data/lib/gsc/cli/skill_pack.rb +62 -0
  44. data/lib/gsc/cli/soft_404.rb +199 -0
  45. data/lib/gsc/cli/sparkline.rb +227 -0
  46. data/lib/gsc/cli/watchdog.rb +150 -0
  47. data/lib/gsc/cli/zombie_purger.rb +208 -0
  48. data/lib/gsc/cli.rb +707 -5265
  49. data/lib/gsc/cli_advanced.rb +987 -44
  50. data/lib/gsc/client.rb +17 -2
  51. data/lib/gsc/color.rb +16 -1
  52. data/lib/gsc/command_registry.rb +47 -9
  53. data/lib/gsc/config.rb +2 -2
  54. data/lib/gsc/ctr_curve.rb +115 -0
  55. data/lib/gsc/decay_predictor.rb +322 -0
  56. data/lib/gsc/doctor.rb +434 -0
  57. data/lib/gsc/eeat_auditor.rb +428 -0
  58. data/lib/gsc/entity_auditor.rb +229 -0
  59. data/lib/gsc/firewall_scanner.rb +733 -0
  60. data/lib/gsc/geo_auditor.rb +368 -0
  61. data/lib/gsc/google_trends.rb +8 -1
  62. data/lib/gsc/heading_validator.rb +283 -0
  63. data/lib/gsc/hreflang_validator.rb +412 -0
  64. data/lib/gsc/image_seo.rb +286 -0
  65. data/lib/gsc/indexing_queue.rb +179 -0
  66. data/lib/gsc/indexnow.rb +93 -0
  67. data/lib/gsc/intent_shift.rb +188 -0
  68. data/lib/gsc/internal_links.rb +153 -36
  69. data/lib/gsc/keyword_value.rb +191 -0
  70. data/lib/gsc/landing_roi.rb +195 -0
  71. data/lib/gsc/llms_generator.rb +343 -22
  72. data/lib/gsc/low_ctr_rewriter.rb +408 -0
  73. data/lib/gsc/mobile_parity.rb +222 -0
  74. data/lib/gsc/network_tracer.rb +8 -1
  75. data/lib/gsc/page_analyzer.rb +47 -7
  76. data/lib/gsc/prompts.rb +38 -29
  77. data/lib/gsc/questions_harvester.rb +178 -0
  78. data/lib/gsc/report_generator.rb +461 -0
  79. data/lib/gsc/rich_results.rb +388 -0
  80. data/lib/gsc/robots_checker.rb +46 -15
  81. data/lib/gsc/schema_generator.rb +788 -0
  82. data/lib/gsc/schema_validator.rb +36 -38
  83. data/lib/gsc/seasonal_predictor.rb +381 -0
  84. data/lib/gsc/security_scanner.rb +496 -0
  85. data/lib/gsc/serp_feature_detector.rb +359 -0
  86. data/lib/gsc/serp_preview.rb +108 -22
  87. data/lib/gsc/site_crawler.rb +113 -21
  88. data/lib/gsc/sitemap_loader.rb +15 -4
  89. data/lib/gsc/sitemap_tree.rb +301 -0
  90. data/lib/gsc/skill_pack.rb +195 -0
  91. data/lib/gsc/soft_404_analyzer.rb +385 -0
  92. data/lib/gsc/sparkline.rb +171 -0
  93. data/lib/gsc/speed_correlator.rb +416 -0
  94. data/lib/gsc/striking_playbook.rb +190 -0
  95. data/lib/gsc/title_optimizer.rb +420 -0
  96. data/lib/gsc/vault.rb +260 -0
  97. data/lib/gsc/version.rb +1 -1
  98. data/lib/gsc/watchdog.rb +235 -0
  99. data/lib/gsc/zombie_purger.rb +366 -0
  100. data/lib/gsc.rb +118 -0
  101. metadata +75 -1
data/README.md CHANGED
@@ -1,14 +1,16 @@
1
- # 🚀 GSC CLI — The Zero-Dependency Google Search Console, Trends & Indexing Engine for High-Growth Operators
1
+ # 🚀 GSC-CLI: The Zero-Gem Google Search Console & Technical SEO Engine in Pure Ruby
2
2
 
3
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.
4
+ > **Sub-millisecond Google Search Console inspection, instant Googlebot indexing, and AI Overview detection in pure standard library.** Extract first-party Google rankings, automate technical SEO audits, and generate server-side remediation rules in **< 50 milliseconds** with zero external dependencies.
5
5
 
6
6
  [![Ruby](https://img.shields.io/badge/Ruby-3.0%2B-red.svg?logo=ruby&logoColor=white)](https://www.ruby-lang.org)
7
7
  [![Gem Version](https://badge.fury.io/rb/gsc-cli.svg)](https://rubygems.org/gems/gsc-cli)
8
8
  [![Dependencies](https://img.shields.io/badge/dependencies-0%20gems-brightgreen.svg)](#)
9
9
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
10
- [![Sponsor](https://img.shields.io/badge/Sponsor-Stripe-635BFF.svg?logo=stripe&logoColor=white)](#-sponsorship--backing)
10
+ [![Commands](https://img.shields.io/badge/commands-80%20production-orange.svg)](#-complete-cli-command-reference-80-commands)
11
+ [![Security: AES-256-GCM](https://img.shields.io/badge/Vault-AES--256--GCM-blueviolet.svg)](#8-agency-credential-vault-gsc-vault)
11
12
  [![AI Agent Native](https://img.shields.io/badge/AI%20Agent-Native%20Skill-purple.svg)](#-ai-agent-native-integration-antigravity-claude-cursor)
13
+ [![GitHub Stars](https://img.shields.io/github/stars/ApollosWave/gsc-cli?style=social)](https://github.com/ApollosWave/gsc-cli)
12
14
 
13
15
  ---
14
16
 
@@ -19,45 +21,107 @@
19
21
 
20
22
  <p align="center">
21
23
  <sub>Explore other software built by our team:</sub><br>
22
- ⚡ <a href="https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>Superspeed</b></a> — Shopify speed, CRO & revenue leak intelligence app (5.0 ★)<br>
23
- 🛒 <a href="https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>Supercart</b></a> — High-converting slide cart drawer & 1-click upsells for Shopify stores<br>
24
- 📦 <a href="https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>PackingLog</b></a> — Smart QR-code box inventory & photo catalog for residential & office moves
24
+ ⚡ <a href="https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>Superspeed</b></a> — Built for Shopify speed, CRO & revenue leak intelligence app (5.0 ★)<br>
25
+ 🛒 <a href="https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>Supercart</b></a> — Built for Shopify slide cart drawer, in-house shipping protection & upsells (5.0 ★)<br>
26
+ 📦 <a href="https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli"><b>PackingLog</b></a> — Our newly launched physical moving inventory and QR-code tracking SaaS — where waiting weeks for Googlebot to discover new landing pages wasn't an option.
25
27
  </p>
26
28
 
27
29
  ---
28
30
 
29
- ## ⚡ The Brutal Truth About Modern SEO (And Why We Built GSC CLI)
31
+ ## ⚡ Why We Built This: Escaping the 40-Gem Tax
30
32
 
31
- Every software company, indie hacker, and e-commerce founder faces the exact same painful reality:
33
+ Every software engineer, technical SEO, and developer-operator managing search presence faces the exact same architectural frustrations:
32
34
 
33
- 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.
34
- 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.
35
- 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.
36
- 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
+ 1. **The 40-Gem Dependency Tax**: The official Google API Ruby gems (`google-apis-searchconsole_v1`, `google-apis-indexing_v3`, `googleauth`, `signet`, `faraday`) pull in **40+ transitive gem dependencies**. They add 3 to 5 seconds to cold-boot time, trigger Bundler version conflicts, inflate container image sizes, and introduce ongoing supply-chain vulnerability alerts.
36
+ 2. **Paying $300 to $1,000+/Month for Sampled Guesswork**: Third-party SEO suites charge hundreds of dollars per month to scrape search results with external proxy farms and estimate traffic using sampled third-party panels. Meanwhile, **Google Search Console provides 100% first-party ground-truth data** for your domain directly from production search logs—completely free.
37
+ 3. **Google Search Console's Web UI Does Not Scale**: Inspecting 50 URLs, isolating soft-404 indexation drops, or detecting cannibalization across multiple client properties requires hours of manual tab switching, filtering, and clicking.
38
+ 4. **Google AI Overviews (AIO) Intercepting Search Clicks**: Zero-click searches continue to expand. If technical content is not structured for citation in Gemini and AI Overviews, organic visibility drops even when ranking on Page 1.
39
+ 5. **AI Coding Agents Cannot Click Web Buttons**: Modern coding agents (Antigravity, Claude Code, Cursor, Cline) require deterministic, sub-50ms JSON over stdout to diagnose and fix search issues directly inside the local repository.
37
40
 
38
- ### The Epiphany Bridge
39
- At **[ApollosWave](https://apolloswave.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**, we run multiple production software businesses—from Shopify revenue & speed intelligence (**[Superspeed](https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**) and e-commerce upsell apps (**[Supercart](https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**) to physical moving inventory SaaS (**[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**).
41
+ ### 🛠️ Battle-Tested in Production (The Origin)
40
42
 
41
- 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**.
43
+ `gsc-cli` was not engineered in a vacuum or built as a synthetic demo.
42
44
 
43
- 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.
45
+ At **[ApollosWave](https://apolloswave.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**, we operate multiple high-throughput production applications:
46
+ - **[Superspeed](https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Automated Core Web Vitals, INP, and speed intelligence for high-volume Shopify storefronts.
47
+ - **[Supercart](https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: High-converting slide cart and upsell infrastructure processing real-time e-commerce checkouts.
48
+ - **[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Our newly launched physical moving inventory and QR-code tracking SaaS — where waiting weeks for Googlebot to discover new landing pages wasn't an option.
49
+
50
+ Managing Search Console indexing, sitemap trees, and SERP positions across these live codebases meant either pulling in 40+ bloated API gems, burning hours clicking in Google's web UI, or paying thousands every year for sampled proxy scrapers.
51
+
52
+ We built **`gsc-cli`** as our internal engine to automate Googlebot indexing and search diagnostics in **< 50 milliseconds** using pure standard-library Ruby.
53
+
54
+ We open-sourced it 100% free under the MIT License so every builder, engineering team, and operator can run first-party search automation with zero dependency bloat.
55
+
56
+ ---
57
+
58
+ ## 📐 Core Engineering Principles
59
+
60
+ 1. **First-Party Ground Truth Over Guesswork**: Third-party estimation suites rely on sampled clickstream models and external proxy scraping. Google Search Console stores the exact, 100% first-party click, impression, and position data directly from Google's search infrastructure—completely free.
61
+ 2. **Zero-Dependency Purity (< 1ms Boot Time)**: Official Google API gems drag in 40+ dependency gems, slowing down boot times and creating dependency lock-in. GSC-CLI communicates directly with Google's bare-metal HTTP APIs using pure Ruby standard library (`Net::HTTP`, `OpenSSL`, `JSON`), executing in **< 1 millisecond**.
62
+ 3. **Actionable Remediation Over Passive Error Dumps**: Most diagnostic tools dump hundreds of error rows into a table without solutions. `gsc-cli` pairs forensic diagnostics with automated remediation—such as generating copy-paste redirect blocks for 14 server environments (Nginx, Caddy, Cloudflare, Next.js, Vercel, etc.) for soft-404 traps.
63
+ 4. **Zero-Trust Local Execution (No Telemetry, No External AI Calls)**: Developer tools should respect machine resources and codebase privacy. `gsc-cli` runs 100% locally, requires zero external LLM API keys, makes zero calls to third-party AI servers, collects zero telemetry, and never reads or transmits private repository files.
64
+
65
+ ---
66
+
67
+ ## ⚡ The Contrarian Architecture: Why Pure-Ruby Beats 40-Gem SDKs
68
+
69
+ Conventional wisdom says: *"To build Google API integrations, you must install the official Google API gems (`google-apis-searchconsole_v1`, `googleauth`)."*
70
+
71
+ **We reject that completely.**
72
+
73
+ Google's APIs are just standard, RFC-compliant HTTPS endpoints returning JSON. Forcing a developer to pull in 40+ transitive gem dependencies just to send a signed HTTP POST request is architectural malpractice:
74
+ - It bloats container images.
75
+ - It inflates Docker deployment sizes.
76
+ - It creates endless `bundle install` version conflicts.
77
+ - It slows down sub-millisecond AI agent loops.
78
+
79
+ By implementing Google's JWT service account authentication in pure `OpenSSL` and streaming responses through native `Net::HTTP` with Gzip decompression, `gsc-cli` boots in **< 1 millisecond** and executes entire multi-step audit loops in under 50 milliseconds.
44
80
 
45
81
  ---
46
82
 
47
83
  ## 💎 Key Capabilities at a Glance
48
84
 
49
- - 📈 **Real-Time Google Trends Engine**: 5-year and 1-year search trajectory, growth velocity percentage, Unicode sparklines (` ▂▃▄▅▆▇█`), and regional demand breakdowns with zero authentication.
50
- - 🎯 **Zero-Auth Keyword Planner**: Instant seed expansion via Google Autocomplete with automated search intent classification (`Informational`, `Commercial`, `Transactional`).
51
- - 💰 **Keywords Everywhere Dual Ingestion (Zero-Cost Clipboard & Headless API)**: Ingest free keyword tables directly from the Keywords Everywhere web dashboard via `gsc import clip` (zero credits required), or connect paid API keys for 1-step automated terminal lookups (`gsc ke`).
52
- - 📊 **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.
53
- - 🚀 **Instant Googlebot Re-Indexing**: Ping Google's Indexing API with `URL_UPDATED` or `URL_DELETED` for priority crawl queueing within seconds.
54
- - 🔍 **Live Google URL Inspection**: Direct Search Console API check for indexing verdict, assigned canonical URL, crawl timestamps, and robots.txt state.
55
- - 💀 **90-Day Zombie Page Detection**: Automatically scan XML sitemaps to find zero-impression deadweight URLs draining your Google crawl budget.
56
- - 🛡️ **Cannibalization & Decay Detection**: Spot internal URLs fighting for the same queries, and compare 28-day period-over-period traffic trends.
57
- - 📊 **Google Analytics 4 (GA4) Behavioral Link**: Stream live active visitors (`gsc realtime --watch`) and correlate SERP rankings with landing page bounce rates.
58
- - 📑 **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.
85
+ - 🤖 **Google AI Overview (AIO) Hunter (`gsc aio-hunter`)**: Detects Google AI Overviews on SERPs, extracts cited sources, measures citation gaps, and generates snippet capture recipes.
86
+ - 🔮 **AI Citation Simulator (`gsc cite-sim`)**: Tests how likely LLMs (Gemini, ChatGPT, Claude) are to cite your URL based on information density, fact ratios, and structural headings.
87
+ - 🏦 **Agency Credential Vault (`gsc vault`)**: Local AES-256-GCM encrypted store managing 50+ service accounts with instant switching (`gsc switch <domain>`), strict POSIX permissions, and path-traversal isolation.
88
+ - 🚨 **Soft-404 Diagnostic Engine with Instant Fixes (`gsc soft-404 --fix nginx`)**: Diagnoses soft-404 traps and outputs copy-paste redirect blocks for 14 server stacks (Nginx, Caddy, Cloudflare, SvelteKit, Next.js, Astro, Shopify, Vercel).
89
+ - 🎯 **Tactical Striking Distance Playbook (`gsc strike`)**: Automatically detects high-impression Page 2 queries (Positions 4–20) paired with intent-matched title hook rewrites and internal link anchor recipes.
90
+ - 📉 **Organic CTR Curve Simulator (`gsc ctr-curve`)**: Non-linear regression modeling expected CTR by position and calculating exact click upside for ranking leaps.
91
+ - ⚡ **Ultra-Low Token Modes for AI Agents (`--compact` & `--ndjson`)**: Minified single-line JSON (`--compact`) saving 35–45% LLM context tokens, and newline-delimited streaming (`--ndjson`) for array data.
92
+ - 📱 **Mobile vs. Desktop SERP Parity Auditor (`gsc mobile-parity`)**: Uncovers cross-device rank discrepancies, responsive suppression penalties, and mobile CTR leaks.
93
+ - 🩺 **Zero-Gem Cold-Start Doctor (`gsc doctor`)**: Verifies 100% standard library purity, measures sub-50ms execution speed, and validates credential security.
94
+ - 📈 **Real-Time Google Trends Engine (`gsc trends`)**: 5-year and 1-year search trajectory, velocity percentages, Unicode sparklines (` ▂▃▄▅▆▇█`), and regional demand breakdowns with zero authentication.
95
+ - 🎯 **Zero-Auth Keyword Planner (`gsc planner`)**: Instant seed expansion via Google Autocomplete with automated search intent classification (`Informational`, `Commercial`, `Transactional`).
96
+ - 💰 **Keywords Everywhere Ingestion (`gsc import clip` & `gsc ke`)**: Ingest free keyword tables directly from clipboard (zero credits required) or connect a [Keywords Everywhere API key](https://keywordseverywhere.com/?fpr=us25sg) *(referral link)* for automated terminal lookups.
97
+ - 🚀 **Instant Googlebot Re-Indexing (`gsc index`)**: Ping Google's Indexing API with `URL_UPDATED` or `URL_DELETED` for priority crawl queueing within seconds.
98
+ - ⚡ **Multi-Engine IndexNow Protocol (`gsc indexnow`)**: Instantly submit pages and sitemaps across Microsoft Bing, Yandex, Seznam, and Naver simultaneously.
99
+ - 🖥️ **Google SERP & Title Pixel Simulator (`gsc serp`)**: Simulate desktop (580px) and mobile (650px) Google SERP cards, calculate precise proportional pixel widths, and prevent truncation before publishing.
100
+ - 🛡️ **Cannibalization & Decay Detection (`gsc cannibalization`, `gsc decay`)**: Spot internal URLs fighting for the same queries, and compare 28-day period-over-period traffic trends.
101
+ - 📊 **Google Analytics 4 (GA4) Behavioral Link (`gsc realtime`, `gsc ga4`)**: Stream live active visitors and correlate SERP rankings with landing page bounce rates.
59
102
  - 🕷️ **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.
60
- - 🤖 **AI Agent Native**: Every single command supports `--json` for instantaneous programmatic consumption by AI agents.
103
+ - 🤖 **AI Agent Native**: Every single command supports `--compact`, `--ndjson`, and `--json` for instantaneous programmatic consumption by AI agents.
104
+
105
+ ---
106
+
107
+ ## ⚡ Architectural Comparison & Trade-Offs
108
+
109
+ | Traditional Stack (Official SDK / SaaS) | GSC-CLI Architecture |
110
+ | :--- | :--- |
111
+ | **Manual Web UI Bottleneck**: Clicking through 15 tabs in Google Search Console to inspect 50 URLs takes 45+ minutes. | **Instant 1-Command Batching**: `gsc inspect-sitemap sitemap.xml` inspects all URLs with automatic quota pacing in seconds. |
112
+ | **Sampled Third-Party Guesswork**: Paying $300–$1,000+/mo ($3,600–$12,000/yr) for external proxy scrapers that model keyword volumes. | **100% Google Ground Truth ($0)**: Raw impression, click, and position logs direct from Google Search Console. |
113
+ | **40-Gem Dependency Tax**: Bloating your `Gemfile` with Google SDK gems that add 3–5 seconds to cold boot. | **0 Gem Dependencies**: Pure Ruby standard library (`OpenSSL`, `Net::HTTP`, `JSON`) executing in **< 1 millisecond**. |
114
+ | **Multi-Client Credential Chaos**: Juggling loose JSON keys across folders and risking credential leaks. | **Agency Credential Vault (`gsc vault`)**: Local AES-256-GCM encrypted vault with instant domain switching (`gsc switch`). |
115
+ | **Passive Error Reporting**: Diagnostic tools tell you that you have 404s, but leave you to write the server rules. | **Active Automated Remediation**: `gsc soft-404 <url> --fix nginx` synthesizes instant, copy-paste server blocks for 14 stacks. |
116
+ | **Blind to AI Overviews**: Unaware that Google Gemini / AI Overviews are intercepting 40% of zero-click searches. | **Google AIO Hunter & Citation Simulator**: `gsc aio-hunter` identifies AI Overviews and extracts competitor citation recipes. |
117
+ | **Token-Guzzling JSON in AI Agents**: Feeding pretty-printed JSON into coding agents wastes 40% of your LLM context window. | **Ultra-Low Token Modes (`--compact`, `--ndjson`)**: Minified output saving **35–50% of tokens** for Claude Code, Cursor, and Antigravity. |
118
+ | **Untrusted Third-Party Scripts**: Running opaque scripts that scan your repository or send files to external servers. | **Zero-Trust Local Execution**: Completely isolated, deterministic UNIX tool. Never scans, reads, or transmits your private code. |
119
+
120
+ ---
121
+
122
+ > ### ⭐ Star the Repository
123
+ > If `gsc-cli` saved your team from 40 bloated gems or streamlined your search data pipeline:
124
+ > 👉 **[Star GSC CLI on GitHub](https://github.com/ApollosWave/gsc-cli)** to support zero-dependency open-source tooling.
61
125
 
62
126
  ---
63
127
 
@@ -87,6 +151,7 @@ source ~/.zshrc
87
151
  Verify your installation:
88
152
  ```bash
89
153
  gsc version
154
+ gsc doctor
90
155
  ```
91
156
 
92
157
  ---
@@ -124,534 +189,502 @@ gsc domains
124
189
 
125
190
  ---
126
191
 
127
- ## 🧠 In-Depth Guides: Keyword Demand & Search Intelligence
192
+ ## 🧠 Deep-Dive Feature Walkthroughs
128
193
 
129
- ### 0. Detailed Off-Page + On-Page SEO Merger (`gsc page` & `gsc site-audit`)
194
+ ### 1. Core Search Performance: Top Queries, Pages & CTR (`gsc top-queries`, `gsc top-pages`, `gsc performance`)
130
195
 
131
196
  #### The Problem
132
- 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.
197
+ Google Search Console's web UI is sluggish, hides low-volume long-tail queries behind pagination limits, and makes cross-referencing brand vs. non-brand queries painful. Exporting CSVs to spreadsheets burns 20+ minutes every time you want to check yesterday's organic clicks.
198
+
199
+ #### The Solution
200
+ `gsc-cli` streams your exact Google Search Console ground-truth performance directly into your terminal in **under 50 milliseconds**. Filter by brand, segment devices, compare date ranges, and export clean JSON or CSV in one command:
133
201
 
134
- #### The Magic
135
- `gsc page` merges both worlds into a single, cohesive 360° audit:
136
202
  ```bash
137
- # Audit any URL combining DOM inspection with GSC 90-day search performance
138
- gsc page https://packinglog.com/
203
+ # Top 20 search queries with impressions, clicks, CTR, and average SERP position
204
+ gsc top-queries --limit 20
139
205
 
140
- # Deep internal link verification: tests HTTP status codes (200, 404, 500)
141
- gsc page https://packinglog.com/ --check-links
206
+ # Filter brand vs. non-brand queries automatically
207
+ gsc top-queries --brand
208
+ gsc top-queries --non-brand
142
209
 
143
- # Local template auditing before deploying
144
- gsc page src/routes/+page.svelte
145
- ```
210
+ # Top indexed landing pages driving search traffic
211
+ gsc top-pages --limit 15
146
212
 
147
- And `gsc site-audit` crawls entire XML sitemaps to generate prioritized AI fix sprints:
148
- ```bash
149
- gsc site-audit https://packinglog.com/sitemap.xml --report docs/seo/site_audit_issues.md
213
+ # Overall 30-day domain performance scorecard with device & country breakdown
214
+ gsc performance --days 30
215
+
216
+ # Retrieve 100% of all queries via automated API pagination (no 1,000-row web limit)
217
+ gsc top-queries --all --csv > all_search_queries.csv
150
218
  ```
151
219
 
152
220
  ---
153
221
 
154
- ### 1. Keywords Everywhere Dual Workflow (`gsc import clip` & `gsc ke`)
222
+ ### 2. Tactical Striking Distance Playbook & Organic CTR Curve (`gsc strike` & `gsc ctr-curve`)
155
223
 
156
224
  #### The Problem
157
- Knowing *what* people search is only half the battle. You need to know **exact monthly search volume**, **Cost Per Click (CPC)**, and **commercial competition**. But keyword tools either force you to buy expensive API subscriptions or lock valuable data inside disconnected browser spreadsheets.
225
+ Most SEO reports simply dump a list of keywords without telling you **what to write, where to link, or what the revenue payoff will be**. Page 2 keywords (Positions 4–20) generate 80% of your search impressions but only 5% of your clicks.
158
226
 
159
- `gsc-cli` provides **two flexible workflows** tailored to how you work:
227
+ #### The Solution
228
+ - **`gsc ctr-curve`**: Generates an empirical, non-linear CTR regression curve mapping your domain's real CTR by position against Google's global benchmarks, simulating the exact click gain of advancing to Top 3.
229
+ - **`gsc strike`**: Automatically synthesizes a tactical Page 2 attack plan with **3 SERP-safe hook titles (< 560px)**, heading recipes, and targeted internal link anchor suggestions:
160
230
 
161
- ---
231
+ ```bash
232
+ # Simulate organic CTR curve and click upside for Page 2 rankings
233
+ gsc ctr-curve --days 30 --target-pos 3
162
234
 
163
- #### 🆓 Method A: Zero-Cost Clipboard Ingestion (`gsc import clip`)
164
- > **No API key or paid credits required!** Works 100% free with the Keywords Everywhere web dashboard or browser extension.
165
-
166
- If you don't have paid API credits, or prefer using the free daily lookups on the Keywords Everywhere website:
167
-
168
- 1. **Copy Your Keywords in the Browser**:
169
- * Open [Keywords Everywhere](https://keywordseverywhere.com/) (or use their Chrome/Firefox extension or bulk keyword tool).
170
- * View any table of search volumes, CPCs, and competition metrics.
171
- * Click **"Copy"** / **"Copy to Clipboard"** (or select the rows and press `Cmd+C` / `Ctrl+C`).
172
- 2. **Run One Command in Your Terminal**:
173
- ```bash
174
- gsc import clip
175
- ```
176
- 3. **Instant Analysis & GSC Correlation**:
177
- `gsc-cli` uses native OS clipboard tools (`pbpaste` on macOS, `xclip`/`wl-paste` on Linux) to:
178
- * Parse volume, CPC, competition score, and monthly history at zero cost.
179
- * Draw live **Unicode Sparklines (` ▂▃▄▅▆▇█`)** showing 12-month demand trajectory.
180
- * Calculate **Opportunity Scores (0–100)** to prioritize low-competition/high-volume wins.
181
- * Automatically cross-reference your live Google Search Console rankings (`🏆 Top 3`, `🥇 Page 1`, `🎯 Striking Distance`, or `🚀 Untargeted`).
182
- * Automatically archive the snapshot into `~/.config/gsc/domains/<domain>/keywords/` so you can track rank progress over time!
235
+ # Generate tactical Page 2 striking distance playbook
236
+ gsc strike --limit 10
183
237
 
184
- ---
238
+ # Surface quick-win CTR underperformers (Top 10 ranking but low click-through)
239
+ gsc underperformers --min-imp 50
185
240
 
186
- #### ⚡ Method B: Headless Direct API Integration (`gsc ke`)
187
- > **For automated, headless terminal lookups.** Requires a Keywords Everywhere API key with paid credits.
188
-
189
- If you have purchased an API key from [Keywords Everywhere](https://keywordseverywhere.com/) (credits start at just $1.25 for 100,000 keyword lookups), you can query search demand directly from the terminal without ever opening a browser:
190
-
191
- 1. **Connect your API key once**:
192
- ```bash
193
- gsc connect ke YOUR_API_KEY
194
- ```
195
- *Your key is securely stored in `~/.config/gsc/config.json` alongside your Google service account.*
196
- 2. **Check your remaining account credits**:
197
- ```bash
198
- gsc ke-credits
199
- ```
200
- 3. **Query any keyword topic or seed directly**:
201
- ```bash
202
- gsc ke "mac cleaner" --limit 25
203
- ```
204
- 4. **Bulk inspect an entire keyword list headlessly**:
205
- ```bash
206
- gsc ke keywords.txt --country us --limit 100 --json
207
- ```
208
-
209
- Terminal Output:
210
- ```text
211
- 🔍 KEYWORDS EVERYWHERE SEARCH DEMAND (Seed: mac cleaner)
212
- Country: US · Provider: Google Keyword Planner via Keywords Everywhere API
213
- Correlated with GSC: superspeedapp.com
214
-
215
- KEYWORD VOL/MO CPC COMP OPP SCORE INTENT GSC RANK STATUS
216
- ──────────────────────────────────────────────────────────────────────────────────────────────────────────
217
- best mac cleaner 2025 18,100 $4.80 0.42 82/100 Commercial 🎯 Striking Distance (Pos 8.4)
218
- free mac disk cleaner 12,400 $3.10 0.28 88/100 Transactional 🚀 Untargeted
219
- clean my mac alternative 6,600 $6.50 0.35 81/100 Commercial 🥇 Page 1 (Pos 4.2)
220
- how to clear system storage mac 9,900 $1.20 0.15 89/100 Informational 🚀 Untargeted
241
+ # Export playbook directly to CSV for copywriters & content teams
242
+ gsc strike --limit 20 --csv docs/seo/striking_playbook.csv
221
243
  ```
222
244
 
223
245
  ---
224
246
 
225
- ### 2. Google Trends Real-Time Demand Engine (`gsc trends`)
247
+ ### 3. Instant Googlebot Priority Indexing & Live URL Inspection (`gsc index`, `gsc inspect`, `gsc indexnow`)
226
248
 
227
249
  #### The Problem
228
- 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.
250
+ Waiting days or weeks for Googlebot to discover new landing pages or updated documentation kills organic momentum. Meanwhile, checking if Google has indexed a URL or flagged a canonical error requires tedious manual clicking inside Search Console's URL Inspection tool.
229
251
 
230
- #### The Magic
231
- `gsc trends` queries Google Trends explore and widget APIs directly in real time with **zero authentication and zero API keys**. It calculates:
232
- - **Trajectory Velocity**: Compares recent interest vs historical baseline.
233
- - **Velocity Badges**: `🚀 (Explosive Breakout)`, `🔥 (Strong Surging)`, `📈 (Growing Demand)`, `⚖️ (Stable Demand)`, `📉 (Cooling)`.
234
- - **Unicode Sparklines**: Visualizes interest curves right in your terminal (` ▂▃▄▅▆▇█`).
235
- - **Geographic Heatmap**: Identifies top states and regions driving demand.
252
+ #### The Solution
253
+ `gsc-cli` communicates directly with Google's Indexing API and live URL Inspection API to check status and force priority crawling in seconds:
236
254
 
237
255
  ```bash
238
- gsc trends "moving boxes" --geo US --time 12m
239
- ```
256
+ # Query live Google indexing verdict, assigned canonical, and crawl timestamp
257
+ gsc inspect https://example.com/blog/core-web-vitals
240
258
 
241
- ```bash
242
- gsc trends "local llm" --geo US --time 5y --json
259
+ # Ping Googlebot to prioritize crawling a newly published or updated URL
260
+ gsc index https://example.com/blog/core-web-vitals
261
+
262
+ # Batch inspect an entire XML sitemap with automatic quota pacing
263
+ gsc inspect-sitemap https://example.com/sitemap.xml
264
+
265
+ # Multi-Engine IndexNow: Instantly notify Bing, Yandex, Seznam, and Naver simultaneously
266
+ gsc indexnow https://example.com/blog/core-web-vitals
243
267
  ```
244
268
 
245
269
  ---
246
270
 
247
- ### 3. Autocomplete Keyword Intent Expander (`gsc planner`)
271
+ ### 4. Cannibalization, Traffic Decay & Zombie Page Detection (`gsc cannibalization`, `gsc decay`, `gsc zombies`)
248
272
 
249
273
  #### The Problem
250
- 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.
274
+ Internal URLs competing for the same search intent (keyword cannibalization) split page equity, causing Google to oscillate rankings between pages. Meanwhile, stealth traffic decay and dead zero-click URLs quietly drain your Google crawl budget.
251
275
 
252
- #### The Magic
253
- `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**:
254
- - **Informational**: *"how to pack dishes for moving"*, *"why is mac running slow"*
255
- - **Commercial**: *"best moving apps"*, *"superspeed vs cleanmymac"*
256
- - **Transactional**: *"buy wardrobe moving boxes cheap"*, *"hire movers near me"*
276
+ #### The Solution
277
+ `gsc-cli` diagnoses algorithmic cannibalization conflicts and period-over-period decay before traffic crashes:
257
278
 
258
- It then checks your active domain's GSC rankings so you instantly see untargeted opportunities:
259
279
  ```bash
260
- gsc planner "moving boxes" --limit 20
280
+ # Detect internal URLs fighting for the exact same queries
281
+ gsc cannibalization
282
+
283
+ # Period-over-period decay detection (28-day comparison: decaying vs surging queries)
284
+ gsc decay --compare 28
285
+
286
+ # Scan XML sitemap for 90-day zero-impression zombie pages draining crawl budget
287
+ gsc zombies https://example.com/sitemap.xml --purge-map
261
288
  ```
262
289
 
263
290
  ---
264
291
 
265
- ### 4. Universal Keyword Ingestion: Clipboard, Google Ads & Files (`gsc import`)
292
+ ### 5. Zero-Cost Clipboard Keyword Ingestion & Demand Trends (`gsc import clip`, `gsc trends`, `gsc planner`)
266
293
 
267
294
  #### The Problem
268
- 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.
295
+ Keyword research tools either lock data behind expensive API subscriptions or leave valuable volume data trapped in disconnected browser extensions.
269
296
 
270
- #### The Magic
271
- `gsc import` accepts raw keyword data directly from your **clipboard** or files exported from **both Google Ads Keyword Planner and Keywords Everywhere** (in `.csv`, `.tsv`, or markdown table format):
297
+ #### The Solution
298
+ `gsc-cli` provides zero-cost clipboard ingestion and real-time demand tracking with **zero API keys required**:
272
299
 
273
300
  ```bash
274
- # 1-click ingest directly from your system clipboard (free & zero setup):
301
+ # 1. Copy any keyword table from Keywords Everywhere or Google Ads in your browser (Cmd+C)
302
+ # 2. Run one command to parse volumes, sparklines, and cross-reference live GSC rankings:
275
303
  gsc import clip
276
304
 
277
- # Import a Keywords Everywhere markdown or CSV export:
278
- gsc import path/to/KW.md --limit 30
279
-
280
- # Import a Google Ads Keyword Planner CSV/TSV:
281
- gsc import path/to/google-ads-keywords.csv --limit 30
282
- ```
283
-
284
- `gsc` automatically:
285
- - **Deduplicates** redundant keyword rows across multiple concatenated batches.
286
- - **Normalizes** search volumes, CPC bids, and competition tiers.
287
- - **Extracts 12-Month Historical Demand**: Automatically identifies monthly columns and renders a live **Unicode Sparkline** (` ▂▃▄▅▆▇█`) for each keyword in your terminal.
288
- - **Calculates Opportunity Scores (0–100)**:
289
- $$\text{Opportunity} = \text{Search Volume (0–50)} + (1 - \text{Competition}) \times 50$$
290
- - **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`).
291
- - **Auto-Archives to Domain Storage**: Automatically persists the dataset to `~/.config/gsc/domains/<domain>/keywords/` for historical rank tracking.
305
+ # Real-time Google Trends 5y/1y search trajectory and velocity percentage (zero-auth)
306
+ gsc trends "technical seo audit" --geo US --time 12m
292
307
 
293
- Terminal Output:
294
- ```text
295
- Opp Score | Volume/mo | CPC | Comp | Tier | Trend% [12m] | GSC Status | Intent | Keyword
296
- --------------------------------------------------------------------------------------------------------------------------------
297
- 75 | 1,000 | $11.04 | 0.10 | Low | -69% ▄▅▅█▅▁ | 🚀 Untargeted | Navigational | moving from san francisco to new york
298
- 69 | 77 | $0.00 | 0.00 | Low | +0% ▄▄▄▄▄▄ | 🚀 Untargeted | Navigational | moving from dallas to orlando
299
- 68 | 390 | $1.99 | 0.17 | Low | +25% ▁▄▄▄██ | 🚀 Untargeted | Navigational | storage unit size calculator
300
- 68 | 110 | $1.74 | 0.05 | Low | -65% ▂██▁▄▁ | 🚀 Untargeted | Navigational | moving checklist app
301
- 64 | 30 | $2.19 | 0.05 | Low | +83% ▃▁▁▆██ | 🚀 Untargeted | Navigational | moving volume calculator
308
+ # Google Autocomplete intent expander (Informational, Commercial, Transactional)
309
+ gsc planner "nextjs seo"
302
310
  ```
303
311
 
304
312
  ---
305
313
 
306
- ### 5. Domain Keyword Archive & Rank Movement Tracker (`gsc saved`)
314
+ ### 6. Detailed Off-Page + On-Page SEO Merger & Site Audit (`gsc page` & `gsc site-audit`)
307
315
 
308
316
  #### The Problem
309
- 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.
317
+ On-page SEO checkers (titles, headings, meta tags) live in browser extensions, completely disconnected from your real Google Search Console performance data.
310
318
 
311
- #### The Magic
312
- `gsc-cli` automatically stores all research and imported datasets in isolated domain directories under `~/.config/gsc/domains/<domain>/keywords/`.
319
+ #### The Solution
320
+ `gsc page` unites on-page DOM inspection with 90-day GSC search queries, clicks, and rankings in a single terminal view:
313
321
 
314
- ```text
315
- ~/.config/gsc/
316
- ├── config.json
317
- ├── service-account.json
318
- └── domains/
319
- ├── packinglog.com/
320
- │ └── keywords/
321
- │ ├── 2026-09-10-kw-md.json
322
- │ └── 2026-09-10-moving-boxes.json
323
- └── superspeedapp.com/
324
- └── keywords/
325
- └── 2026-09-10-mac-cleaner.json
326
- ```
327
-
328
- #### List Saved Snapshots
329
322
  ```bash
330
- gsc saved
331
- ```
332
- ```text
333
- 📁 SAVED KEYWORD RESEARCH ARCHIVES (packinglog.com)
334
- Location: ~/.config/gsc/domains/packinglog.com/keywords
323
+ # Audit any URL combining DOM inspection with GSC 90-day search performance
324
+ gsc page https://example.com/
335
325
 
336
- # | Date | Source | Keywords | Seed / File
337
- --------------------------------------------------------------------------------
338
- [1] | 2026-09-10 | Import | 209 | KW.md
339
- [2] | 2026-09-10 | Google Autocomplete | 50 | moving boxes
340
- ```
326
+ # Deep internal link verification: tests HTTP status codes (200, 404, 500)
327
+ gsc page https://example.com/ --check-links
341
328
 
342
- #### Re-Check Live Search Console Rankings & Track Wins
343
- Run `gsc saved check <id>` to re-query Search Console API in real-time and measure your rank progress:
344
- ```bash
345
- gsc saved check 1
346
- ```
347
-
348
- ```text
349
- ══════════════════════════════════════════════════════════════
350
- 📊 KEYWORD RANKING & OPPORTUNITY TRACKER (packinglog.com)
351
- ══════════════════════════════════════════════════════════════
352
- 🏆 Top 3 Rankings: 2 (+2 new)
353
- 🥇 Page 1 Rankings (4–10): 5 (+3 new)
354
- 🎯 Striking Distance (11–20): 14 (+6 new)
355
- 🚀 Untargeted / Unranked: 188
356
- 📈 Total Tracked Keywords: 209
357
- ══════════════════════════════════════════════════════════════
329
+ # Crawl entire XML sitemaps to audit dead links, missing alts, and heading hierarchy
330
+ gsc site-audit https://example.com/sitemap.xml --report docs/seo/site_audit_issues.md
358
331
  ```
359
332
 
360
333
  ---
361
334
 
362
- ## 🛠️ Complete CLI Command Reference
363
-
364
- ### 1. Setup, Configuration & Domain Switching
365
- | Command | Description |
366
- |---|---|
367
- | `gsc connect` | 1-Click interactive setup wizard: auto-detects key in Downloads or drag & drop |
368
- | `gsc connect ke [key]` | Connect Keywords Everywhere API key and save to `~/.config/gsc/config.json` |
369
- | `gsc connect-ga4` | Interactive Google Analytics 4 linking wizard |
370
- | `gsc domains` | List all verified Search Console properties and linked GA4 properties |
371
- | `gsc use <domain or #>` | Switch active default domain (e.g. `gsc use 2` or `gsc use packinglog.com`) |
372
- | `gsc open` | Open `~/.config/gsc` configuration directory in Finder |
373
- | `gsc where` | Inspect CLI binary path, active credential file, and config path |
374
- | `gsc update` | Self-update `gsc` to the latest version directly from GitHub |
375
- | `gsc version` | Display CLI version and Ruby runtime environment |
376
-
377
- ### 2. Google Trends & Keyword Intelligence
378
- | Command | Description |
379
- |---|---|
380
- | `gsc trends <query>` | Real-time Google Trends 5y/1y demand velocity, sparklines, and geo breakdown |
381
- | `gsc planner <seed>` | Zero-auth Google Suggest intent expander with live GSC rank correlation |
382
- | `gsc import <file or clip>` | Ingest Google Ads / Keywords Everywhere data from clipboard (`gsc import clip`) or file (.csv, .tsv, .md) with 12m sparklines |
383
- | `gsc planner-import <file>` | Ingest Google Ads / Keywords Everywhere export (alias for `import`) |
384
- | `gsc ke <seed or file>` | Keywords Everywhere: Exact monthly volume, CPC, competition & GSC correlation |
385
- | `gsc ke-credits` | Check remaining Keywords Everywhere account API credits |
386
- | `gsc saved` | List saved keyword research snapshots for the active domain |
387
- | `gsc saved check [id]` | Re-check saved keyword snapshots against live GSC rankings to track wins |
388
- | `gsc saved view [id]` | View stored keyword metrics and opportunity scores |
389
- | `gsc saved delete [id]` | Delete a saved keyword research snapshot |
390
-
391
- ### 3. Search Performance & SEO Growth Intelligence
392
- | Command | Description |
393
- |---|---|
394
- | `gsc top-queries` | Top search queries, impressions, CTR, and average position |
395
- | `gsc top-pages` | Top indexed landing pages driving organic clicks & impressions |
396
- | `gsc opportunities` | **Striking-distance queries (Pos 7–20)** to push to Page 1 and Top 3 |
397
- | `gsc underperformers` | High-ranking queries (Top 10) with below-average CTR (title & meta tag wins) |
398
- | `gsc cannibalization` | Detect multiple internal URLs competing for the same search queries |
399
- | `gsc decay [--compare 28]` | Period-over-period decay detection (decaying vs surging queries) |
400
- | `gsc devices` | Search traffic breakdown by device (Desktop, Mobile, Tablet) |
401
- | `gsc countries` | Geographic search demand by country with flags and CTR |
402
- | `gsc snippets` | Search appearance appearances (Reviews, Products, FAQs) |
403
- | `gsc audit` | Comprehensive 4-step 360° SEO & Indexing Health Audit |
404
-
405
- ### 4. Detailed On-Page DOM & Autonomous Site Crawling
406
- | Command | Description |
407
- |---|---|
408
- | `gsc page <url or file>` | 360° On-Page DOM audit (Title pixel width, meta, H1-H6, images, schema) + GSC rankings |
409
- | `gsc page <url> --check-links` | Verify HTTP status codes (detects 404 broken links) across all page links |
410
- | `gsc site-audit [sitemap]` | Crawl sitemap/site, test dead links, audit DOM flaws, and output summary |
411
- | `gsc site-audit --report <file>` | Export comprehensive AI-actionable Markdown fix sprint (e.g. `site_issues.md`) |
412
-
413
- ### 4. Live Indexation & Googlebot Control
414
- | Command | Description |
415
- |---|---|
416
- | `gsc inspect <url>` | Live Google Search Console URL inspection (coverage, canonical, crawl date) |
417
- | `gsc index <url>` | Notify Googlebot to crawl/index a newly published URL immediately (`URL_UPDATED`) |
418
- | `gsc remove <url>` | Notify Googlebot a URL has been permanently deleted (`URL_DELETED`) |
419
- | `gsc status <url>` | Check Google Indexing API submission status and latest notification timestamp |
420
- | `gsc inspect-sitemap <file/url>` | Bulk inspect indexation status for all URLs in an XML sitemap |
421
- | `gsc index-sitemap <file/url>` | Batch submit all URLs in an XML sitemap to Google Indexing API |
422
- | `gsc zombies <sitemap>` | Identify zero-impression deadweight URLs wasting crawl budget over 90 days |
423
- | `gsc sitemaps-list` | List registered XML sitemaps in Search Console |
424
- | `gsc sitemaps-submit <url>` | Submit or re-submit an XML sitemap to Search Console |
425
-
426
- ### 5. Google Analytics 4 (GA4) On-Site Behavior
427
- | Command | Description |
428
- |---|---|
429
- | `gsc realtime [--watch]` | Stream active visitors, real-time page paths, and countries |
430
- | `gsc ga4 [--organic]` | Landing page bounce rates, engagement rates, and average session duration |
431
- | `gsc correlation` | Merge GSC keyword rankings with GA4 bounce rates per landing page |
432
- | `gsc channels` | Traffic acquisition channels (Organic Search, Direct, Referral, Paid) |
433
- | `gsc ads` | Google Ads campaign performance (Clicks, Cost, CPC, Conversions) |
335
+ ### 7. Google AI Overview (AIO) Opportunity Hunter & Citation Simulator (`gsc aio-hunter` & `gsc cite-sim`)
434
336
 
435
- ---
337
+ #### The Problem
338
+ Google AI Overviews (Gemini in search results) intercept high-intent queries before users ever reach blue links. If an AI Overview appears for your core keywords, your organic CTR can crater unless your site is cited inside the AI answer box.
436
339
 
437
- ## 🤖 AI Agent Native Integration (Antigravity, Claude, Cursor)
340
+ #### The Solution
341
+ `gsc aio-hunter` scans live SERPs for AI Overviews, extracts cited sources, and measures your citation readiness:
438
342
 
439
- `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.
343
+ ```bash
344
+ # Hunt AI Overview presence and extract cited competitor sources
345
+ gsc aio-hunter "best technical seo audit tools"
440
346
 
441
- ### Agent Workflow Examples
347
+ # Test how likely LLMs (Gemini, ChatGPT, Perplexity) are to cite your URL
348
+ gsc cite-sim https://example.com/guides/core-web-vitals
442
349
 
443
- ```bash
444
- # 1. Ask your agent to inspect striking-distance keywords:
445
- gsc opportunities --min-imp 20 --json
350
+ # Synthesize 40–60 word high-density direct answers with FAQ schema embedding
351
+ gsc answer "what is soft 404 error"
352
+ ```
446
353
 
447
- # 2. Ask your agent to audit indexation before shipping a release:
448
- gsc audit --json
354
+ ---
449
355
 
450
- # 3. Ask your agent to discover keyword demand with volume and CPC:
451
- gsc ke "moving boxes" --limit 50 --json
356
+ ### 8. Soft-404 Forensic Diagnostic Engine with 14-Stack Instant Fixes (`gsc soft-404`)
452
357
 
453
- # 4. Ask your agent to notify Googlebot the second it publishes a new blog post:
454
- gsc index https://example.com/blog/new-guide --json
455
- ```
358
+ #### The Problem
359
+ Soft-404 errors silently destroy your Google crawl budget by returning `200 OK` on empty templates or missing content. Writing server redirect rules manually across different stacks is slow and error-prone.
360
+
361
+ #### The Solution
362
+ `gsc soft-404` detects empty templates, blank pages, and canonical loops, auto-detects your tech stack, and generates copy-paste redirect blocks for 14 server environments:
456
363
 
457
- Install the official AI Agent Skill:
458
364
  ```bash
459
- gsc skills install
365
+ # Diagnose any URL for soft-404 status (auto-detects tech stack & server)
366
+ gsc soft-404 https://example.com/broken-page
367
+
368
+ # Generate copy-paste rules for your specific tech stack:
369
+ gsc soft-404 https://example.com/broken-page --fix sveltekit
370
+ gsc soft-404 https://example.com/broken-page --fix caddy
371
+ gsc soft-404 https://example.com/broken-page --fix cloudflare
372
+ gsc soft-404 https://example.com/broken-page --fix nextjs
373
+ gsc soft-404 https://example.com/broken-page --fix nginx
374
+ gsc soft-404 https://example.com/broken-page --fix shopify
375
+ gsc soft-404 https://example.com/broken-page --fix all
460
376
  ```
461
377
 
462
378
  ---
463
379
 
464
- ## 🏢 Proudly Backed by ApollosWave LLC
380
+ ### 9. Agency Credential Vault & Instant Domain Switching (`gsc vault` & `gsc switch`)
465
381
 
466
- `gsc-cli` is free and open-source software under the [MIT License](LICENSE). It is actively developed and maintained by the engineering team at **[ApollosWave LLC](https://apolloswave.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**.
382
+ #### The Problem
383
+ Agencies and multi-brand operators juggle dozens of client Google service account JSON files. Leaving unencrypted keys scattered across client folders invites credential leakage, path-traversal vulnerabilities, and accidental cross-client query pollution.
384
+
385
+ #### The Solution
386
+ `gsc vault` provides a hardened, local **AES-256-GCM encrypted credential vault** supporting 50+ client service accounts with strict POSIX permissions (0700/0600) and instant zero-friction domain switching:
387
+
388
+ ```bash
389
+ # Check encrypted vault status, stored keys & cipher health
390
+ gsc vault status
467
391
 
468
- We build tools for high-performance software, e-commerce, and everyday logistics. Check out our commercial products:
392
+ # Add a client service account key to the encrypted store
393
+ gsc vault add ./client-key.json --domain client.com --alias client1
469
394
 
470
- - ⚡ **[Superspeed](https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)** — The premier Shopify speed, CRO & revenue leak intelligence app. Detect ghost checkouts, rage clicks, and latency bottlenecks, then automatically optimize Core Web Vitals to reclaim lost sales.
471
- - 🛒 **[Supercart](https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)** — 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.
472
- - 📦 **[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)** — 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.
395
+ # List all vaulted domains, client emails & GA4 property links
396
+ gsc vault list
397
+
398
+ # Switch active client context instantly (by domain, alias, or index #)
399
+ gsc switch client.com
400
+ gsc switch client1
401
+ gsc use 2
402
+ ```
473
403
 
474
404
  ---
475
405
 
476
- ## 🧠 Modern SEO, AI Search (AEO) & Competitor Intelligence (v2.1)
406
+ ## 🛠️ Complete CLI Command Reference (80 Commands)
407
+
408
+ > **💡 Token Economy Note for AI Agents & Pipelines:**
409
+ > Every command supporting `--json` also natively supports `--compact` (single-line minified JSON saving **35–45% LLM tokens**) and `--ndjson` (newline-delimited streaming JSON). Commands handling tabular ranking data also support `--csv` (saving **65–75% LLM tokens**).
410
+
411
+ ### 1. Setup, Doctor & Authentication
412
+ | Command | Shortcut | Description | Flags |
413
+ |---|---|---|---|
414
+ | `gsc connect` | `auth` | 1-Click interactive setup wizard (auto-detects service account in Downloads) | `--json`, `--compact` |
415
+ | `gsc connect ke [key]` | — | Connect Keywords Everywhere API key | — |
416
+ | `gsc connect-ga4` | — | Interactive Google Analytics 4 property linking wizard | — |
417
+ | `gsc doctor` | `health` | Zero-Gem Stdlib & Cold Start Doctor: validates < 50ms latency & config integrity | `--fix`, `--json`, `--compact` |
418
+ | `gsc domains` | `sites` | List all verified Search Console properties and linked GA4 properties | `--json`, `--compact` |
419
+ | `gsc use <domain>` | `switch` | Switch active default domain property | — |
420
+ | `gsc switch <domain>` | `use` | Fast agency switch between client domains or credential vault profiles | — |
421
+ | `gsc vault [status|add|list|remove]`| — | AES-256-GCM encrypted credential vault manager (multi-client safe) | `--json`, `--compact` |
422
+ | `gsc where` | — | Inspect CLI binary path, active credential file, and config path | `--json`, `--compact` |
423
+ | `gsc version` | `-v` | Display CLI version and Ruby runtime environment | `--json`, `--compact` |
424
+ | `gsc commands` | — | Machine-readable catalog of all 80 commands | `--json`, `--compact` |
425
+
426
+ ### 2. Search Analytics & Organic Performance
427
+ | Command | Shortcut | Description | Flags |
428
+ |---|---|---|---|
429
+ | `gsc performance` | `perf` | Search performance summary (Clicks, Impressions, CTR, Position) | `--days`, `--json` |
430
+ | `gsc top-queries` | `queries` | Top search queries, impressions, CTR, and average position | `--limit`, `--days`, `--brand`, `--non-brand`, `--csv`, `--json` |
431
+ | `gsc top-pages` | `pages` | Top indexed landing pages driving organic clicks & impressions | `--limit`, `--days`, `--csv`, `--json` |
432
+ | `gsc opportunities` | `opps` | Striking-distance queries (Pos 7–20) with high impression volume | `--min-imp`, `--days`, `--csv`, `--json` |
433
+ | `gsc strike` | `striker` | Tactical Striking Playbook: High-yield queries primed for Top 3 rankings | `--min-imp`, `--limit`, `--json` |
434
+ | `gsc underperformers` | `u` | High-ranking queries with below-average CTR (title & meta tag wins) | `--limit`, `--days`, `--json` |
435
+ | `gsc cannibalization` | `cannibal` | Detect multiple internal URLs competing for the same search queries | `--limit`, `--days`, `--json` |
436
+ | `gsc decay` | — | Period-over-period decay detection (decaying vs surging queries) | `--compare`, `--days`, `--json` |
437
+ | `gsc devices` | — | Search traffic breakdown by device (Desktop, Mobile, Tablet) | `--days`, `--json` |
438
+ | `gsc countries` | — | Geographic search demand by country with flags and CTR | `--days`, `--json` |
439
+ | `gsc snippets` | — | Search appearance appearances (Reviews, Products, FAQs) | `--days`, `--json` |
440
+ | `gsc brand` | — | Brand vs. Non-brand query segmentation and traffic split | `--days`, `--brand-terms`, `--json` |
441
+ | `gsc ctr-curve` | — | Empirical CTR curve modeling by position with revenue lift simulator | `--days`, `--target-pos`, `--json` |
442
+ | `gsc intent-shift` | — | Search intent volatility and position shift monitor | `--days`, `--min-imp`, `--json` |
443
+ | `gsc kw-value` | `kwval` | Mathematical keyword conversion pipeline & dollar valuation matrix | `--aov`, `--conv-rate`, `--margin`, `--target-pos`, `--csv`, `--json` |
444
+ | `gsc landing-roi <url>` | `roi` | Landing page economic ROI & revenue leakage audit (merges GSC + bounce rates) | `--aov`, `--conv-rate`, `--benchmark`, `--csv`, `--json` |
445
+
446
+ ### 3. AI Search, Generative Engine Optimization (GEO) & SERP Simulation
447
+ | Command | Shortcut | Description | Flags |
448
+ |---|---|---|---|
449
+ | `gsc aio-hunter <query>` | `aio` | Google AI Overview Opportunity Hunter: detects AIO presence & cited sources | `--limit`, `--min-imp`, `--days`, `--csv`, `--json` |
450
+ | `gsc cite-sim <url>` | `citability` | AI Citation Simulator: tests LLM citability readiness and content density | `--json` |
451
+ | `gsc geo <url>` | `aeo` | Generative Engine Optimization (GEO) & LLM answer audit | `--json` |
452
+ | `gsc serp <title>` | `preview` | Google SERP Card & Pixel Simulator (Desktop 580px, Mobile 650px) | `--desc`, `--url`, `--json` |
453
+ | `gsc serp-features <q>` | — | Live SERP feature detector (AI Overviews, PAA, Featured Snippets) | `--geo`, `--json` |
454
+ | `gsc llms <url>` | `ai-ready` | AI Knowledge Base Generator: outputs structured `/llms.txt` bundle | `--save`, `--json` |
455
+ | `gsc entity <url>` | `kg` | Knowledge Graph & Entity Authority Auditor (Wikidata, Wikipedia links) | `--json` |
456
+ | `gsc firewall <url>` | `ai-bots` | AI Search Bot Firewall Scanner: audits robots.txt for GPTBot, ClaudeBot | `--json` |
457
+ | `gsc answer <q>` | — | Direct answer box and featured snippet synthesizer | `--json` |
458
+
459
+ ### 4. Technical SEO, Crawl Errors & Automated Fixes
460
+ | Command | Shortcut | Description | Flags |
461
+ |---|---|---|---|
462
+ | `gsc soft-404 <url>` | — | Soft-404 Diagnostic Engine with automated multi-stack redirect generation | `--fix <stack>`, `--json` |
463
+ | `gsc mobile-parity <dom>`| `mobile` | Mobile vs. Desktop SERP Parity Auditor: cross-device rank gap diagnosis | `--days`, `--gap-threshold`, `--csv`, `--json` |
464
+ | `gsc audit` | `360` | Comprehensive 360° technical and organic health audit | `--json` |
465
+ | `gsc report` | — | Executive 360° Health Scorecard with letter grade and sparklines | `--days`, `--sparkline`, `--json` |
466
+ | `gsc page <url>` | — | Detailed On-Page DOM audit (meta, headings, alts, schema) + GSC performance | `--check-links`, `--json` |
467
+ | `gsc site-audit <sitemap>`| — | Crawls sitemaps, tests 404 dead links, audits DOM flaws, and outputs fix sprint | `--report <file>`, `--json` |
468
+ | `gsc speed <url>` | `vitals` | Official Core Web Vitals via PageSpeed Insights (LCP, INP, CLS, TTFB) | `--strategy mobile|desktop`, `--json` |
469
+ | `gsc speed-correlate` | `sc-perf` | Correlates Core Web Vitals page speed with GSC organic rankings | `--days`, `--strategy`, `--json` |
470
+ | `gsc canonical-chains` | `chains` | Canonical redirect loops and multi-hop chain detector | `--limit`, `--json` |
471
+ | `gsc low-ctr` | — | High-impression low-CTR title & meta description rewriter | `--limit`, `--min-imp`, `--json` |
472
+ | `gsc titles <url>` | `title-opt` | Title pixel width calculator and SERP truncation optimizer | `--json` |
473
+ | `gsc headings <url>` | `h1` | Heading structure (H1–H6) depth, order, and keyword presence auditor | `--json` |
474
+ | `gsc orphans` | — | Internal link equity analyzer: rescues orphaned unlinked pages | `--json` |
475
+ | `gsc internal-links` | — | Deep internal link equity audit and anchor text distribution | `--json` |
476
+ | `gsc image-seo <url>` | — | Image SEO auditor: missing alt attributes, next-gen formats (WebP/AVIF) | `--json` |
477
+ | `gsc hreflang <url>` | — | International hreflang reciprocity and ISO language/region validator | `--json` |
478
+ | `gsc eeat <url>` | — | E-E-A-T Auditor: author credentials, publisher transparency & trust signals | `--json` |
479
+ | `gsc security <url>` | — | Security & HTTP headers auditor: SSL, HSTS, CSP, and X-Robots-Tag | `--json` |
480
+ | `gsc rich-results <url>` | `rich` | Google Rich Results eligibility and Schema.org test | `--type`, `--json` |
481
+ | `gsc schema <url>` | `ld-json` | JSON-LD Structured Data Validator and generator | `--json` |
482
+ | `gsc schema-generate` | `schema-gen`| Valid Schema.org JSON-LD generator (`faq`, `software`, `article`, `product`)| `--type`, `--json` |
483
+ | `gsc trace <domain>` | `redirects` | Multi-hop 301/302 redirect tracer with SSL and header inspection | `--json` |
484
+ | `gsc robots <url>` | `robots-txt`| Robots.txt crawler permissions simulator across major bots | `--bot`, `--json` |
485
+ | `gsc authority <domain>` | `opr` | OpenPageRank Domain Authority (0–10) and Global Rank from Common Crawl | `--json` |
486
+ | `gsc compare <u1> <u2>` | `vs` | Head-to-head on-page technical benchmark comparison | `--json` |
487
+ | `gsc content-gap <u1> <u2>`| `gap` | Topical content gap analyzer: missing 1-gram, 2-gram, and 3-gram keyphrases | `--json` |
488
+
489
+ ### 5. Live Indexation & Googlebot Control
490
+ | Command | Shortcut | Description | Flags |
491
+ |---|---|---|---|
492
+ | `gsc inspect <url>` | — | Live Google URL inspection (coverage status, assigned canonical, crawl date)| `--json` |
493
+ | `gsc index <url>` | — | Priority Googlebot crawl submission (`URL_UPDATED`) | `--dry-run`, `--json` |
494
+ | `gsc remove <url>` | — | Notify Googlebot of permanently deleted URL (`URL_DELETED`) | `--dry-run`, `--json` |
495
+ | `gsc status <url>` | — | Check Google Indexing API submission status and latest notification timestamp| `--json` |
496
+ | `gsc index-batch` | — | Batch URL indexing processor with daily 200-URL quota tracking | `--run`, `--status`, `--json` |
497
+ | `gsc indexnow <url>` | — | Multi-engine instant submission (Bing, Yandex, Seznam, Naver) | `--key`, `--json` |
498
+ | `gsc zombies <sitemap>` | — | Detect zero-impression deadweight URLs wasting crawl budget over 90 days | `--days`, `--json` |
499
+ | `gsc sitemaps-list` | — | List registered XML sitemaps in Search Console | `--json` |
500
+ | `gsc sitemaps-submit <url>`| — | Submit or re-submit an XML sitemap to Search Console | `--json` |
501
+ | `gsc sitemap-tree <url>` | — | Visual sitemap hierarchy tree and URL limit validator | `--json` |
502
+
503
+ ### 6. Keyword Research & Demand Trends
504
+ | Command | Shortcut | Description | Flags |
505
+ |---|---|---|---|
506
+ | `gsc trends <query>` | — | Real-time Google Trends trajectory velocity, sparklines & geo breakdown | `--geo`, `--time`, `--json` |
507
+ | `gsc planner <seed>` | — | Autocomplete seed expander with intent classification & live GSC correlation| `--limit`, `--json` |
508
+ | `gsc suggest <seed>` | — | Google Autocomplete & Alphabet Soup (a-z) keyword harvester | `--alphabet`, `--json` |
509
+ | `gsc questions <seed>` | `paa` | People Also Ask (PAA) question miner for FAQs and blog outlines | `--limit`, `--json` |
510
+ | `gsc import <file|clip>`| — | Ingest Google Ads / Keywords Everywhere data from clipboard (`clip`) or file | `--limit`, `--json` |
511
+ | `gsc ke <seed|file>` | — | Keywords Everywhere direct API: exact monthly volume, CPC & competition | `--country`, `--limit`, `--json` |
512
+ | `gsc ke-credits` | — | Check remaining Keywords Everywhere account API credits | `--json` |
513
+ | `gsc saved` | — | List saved keyword research snapshots for the active domain | `--json` |
514
+ | `gsc saved check [id]` | — | Re-check saved keyword snapshots against live GSC rankings to track wins | `--json` |
515
+ | `gsc saved view [id]` | — | View stored keyword metrics and opportunity scores | `--json` |
516
+ | `gsc saved delete [id]`| — | Delete a saved keyword research snapshot | — |
517
+ | `gsc seasonal <keyword>` | — | Seasonal keyword demand forecasting and peak month detection | `--json` |
518
+ | `gsc sparkline <query>` | — | High-resolution Unicode sparkline visualizer (` ▂▃▄▅▆▇█`) | `--days`, `--json` |
519
+
520
+ ### 7. Google Analytics 4 (GA4) On-Site Behavior
521
+ | Command | Shortcut | Description | Flags |
522
+ |---|---|---|---|
523
+ | `gsc realtime` | — | Stream active visitors, real-time page paths, and countries (`--watch`) | `--watch`, `--json` |
524
+ | `gsc ga4` | — | Landing page bounce rates, engagement rates, and average session duration | `--organic`, `--json` |
525
+ | `gsc correlation` | — | Merge GSC keyword rankings with GA4 bounce rates per landing page | `--json` |
526
+ | `gsc channels` | — | Traffic acquisition channels (Organic Search, Direct, Referral, Paid) | `--json` |
527
+ | `gsc ads` | — | Google Ads campaign performance (Clicks, Cost, CPC, Conversions) | `--json` |
528
+
529
+ ### 8. AI Agent Skills & System Tools
530
+ | Command | Shortcut | Description | Flags |
531
+ |---|---|---|---|
532
+ | `gsc skills [install|show]` | — | Inspect or auto-install native AI Agent Skill (`SKILL.md`) | `--json` |
533
+ | `gsc skill-pack` | — | Autonomous Agent Skill Pack Generator for Cursor, Antigravity, and Claude | `--install`, `--json` |
534
+ | `gsc prompts [list|show]` | — | 27 battle-tested tactical SEO growth prompts and playbooks | `--json` |
535
+ | `gsc vault [status|add|list|remove]` | — | AES-256-GCM encrypted credential vault manager | `--json` |
536
+ | `gsc cache [status|clear]` | — | Multi-tier gzip response cache manager | `--json` |
477
537
 
478
- GSC CLI v2.1 introduces a zero-cost, zero-gem suite of tools covering **AI search readiness**, **competitor gap analysis**, **Core Web Vitals**, and **first-party Google autocompletions**:
538
+ ---
479
539
 
480
- ### 1. Google Autocomplete & Alphabet Soup (`gsc suggest`)
481
- Harvest 100+ high-intent search suggestions across the full alphabet in seconds without paying for KeywordTool.io:
482
- ```bash
483
- # Standard Google search suggestions
484
- gsc suggest "moving boxes"
540
+ ## 🤖 AI Agent Native Integration (Antigravity, Claude, Cursor)
485
541
 
486
- # Alphabet soup harvester (a-z permutations)
487
- gsc suggest "storage units" --alphabet
542
+ > 💡 **Zero External LLM Calls**: `gsc-cli` does NOT require an OpenAI or Anthropic API key and sends zero data to third-party AI servers. Everything runs locally on your machine. "AI Agent Native" refers to our deterministic `--compact` (minified JSON) and `--ndjson` flags designed to save 35–45% context tokens when called by local coding agents (Claude Code, Cursor Composer, Antigravity).
488
543
 
489
- # Machine-readable JSON output for AI pipelines
490
- gsc suggest "commercial packaging" --alphabet --json
491
- ```
544
+ `gsc-cli` was engineered from the ground up to serve as the high-speed sensory organ for autonomous AI coding agents (**Antigravity**, **Claude Code**, **Cursor Composer**, **Windsurf**, and **OpenCode**).
492
545
 
493
- ### 2. People Also Ask (PAA) Question Miner (`gsc questions`)
494
- Mine real user questions directly from Google search intent modules to build instant FAQ sections and blog content outlines:
495
- ```bash
496
- gsc questions "packing dishes"
497
- ```
546
+ Traditional CLI tools output ANSI-colored terminal text designed exclusively for human eyes—forcing AI agents to burn thousands of tokens scraping strings, guessing table columns, and hallucinating missing fields. `gsc-cli` eliminates this waste completely with **sub-millisecond execution**, **zero gem overhead**, and **three ultra-efficient machine output formats**.
498
547
 
499
- ### 3. Real Core Web Vitals via PageSpeed Insights (`gsc speed`)
500
- Directly measure Google's official Core Web Vitals (LCP, INP, CLS, FCP, TTFB) and Lighthouse scores with 25,000 free queries/day:
501
- ```bash
502
- # Audit mobile Core Web Vitals
503
- gsc speed https://packinglog.com/ --strategy mobile
548
+ ### 📉 Token Economics: Why Format Matters for AI Agents
504
549
 
505
- # Audit desktop performance with machine-readable diagnostics
506
- gsc speed https://packinglog.com/features --strategy desktop --json
507
- ```
550
+ Every token consumed by CLI output burns developer budget, introduces LLM generation latency, and pushes critical prompt context out of the agent's memory window. `gsc-cli` provides four deterministic output formats to optimize your token economics:
508
551
 
509
- ### 4. SurferSEO-Style Topical Content Gap (`gsc content-gap`)
510
- Compare your page against any top-ranking competitor to uncover missing 1-gram, 2-gram, and 3-gram keyphrases and omitted headings:
511
- ```bash
512
- gsc content-gap https://packinglog.com/ https://uhaul.com/
513
- ```
552
+ | Format | Flag | Avg. Chars (100 Rows) | Est. Tokens | Token Savings | Optimal AI Agent Scenario |
553
+ | :--- | :--- | :--- | :--- | :--- | :--- |
554
+ | **Tabular CSV** | `--csv` | 3,920 | ~980 | **72.5% savings** | High-cardinality exports (100–5,000 keywords/pages) |
555
+ | **Compact JSON**| `--compact` | 8,110 | ~2,028 | **43.0% savings** | Default for Claude Code & Cursor single-turn queries |
556
+ | **Streaming NDJSON** | `--ndjson` | 8,230 | ~2,058 | **42.2% savings** | Streaming processors, jq/grep pipes & subagent tasks |
557
+ | **Pretty JSON** | `--json` | 14,240 | ~3,560 | 0% *(Baseline)* | Human developer terminal inspection & debugging |
514
558
 
515
- ### 5. Head-to-Head On-Page Benchmark (`gsc compare`)
516
- Run an instant side-by-side comparison of titles, meta descriptions, H1 counts, image alt tags, JSON-LD schemas, and server response times:
517
- ```bash
518
- gsc compare https://packinglog.com/free-moving-labels https://uhaul.com/moving-supplies/boxes/
519
- ```
559
+ > ⚡ **The Bottom Line:** Switching your autonomous agents from `--json` to `--compact` immediately **cuts token consumption by ~43%**, allowing your agents to ingest more than **double the keyword and performance data** within identical context limits.
520
560
 
521
- ### 6. AI Search & LLM Citation Readiness (`gsc llms`)
522
- Perplexity, ChatGPT, and Claude prioritize sites with clean markdown knowledge bases and structured layouts:
523
- ```bash
524
- # Generate a production-ready /llms.txt file from your sitemap
525
- gsc llms https://packinglog.com/ --save
561
+ ---
526
562
 
527
- # Audit a page's citation readiness score for AI answer engines
528
- gsc llms https://packinglog.com/ audit
529
- ```
563
+ ### 📋 Deterministic Output Contract & Zero-Pollution Guarantee
530
564
 
531
- ### 7. Rich Schema Validator & Generator (`gsc schema`)
532
- Validate JSON-LD structured data against Google's Rich Result guidelines or generate copy-paste snippets:
533
- ```bash
534
- # Validate existing structured data on a live page
535
- gsc schema https://packinglog.com/
565
+ Autonomous coding agents require strict, unpolluted output streams. `gsc-cli` enforces a military-grade stdout/stderr separation contract:
566
+ - **Zero ANSI Pollution**: When `--compact`, `--ndjson`, `--json`, or `--csv` is detected, all ANSI terminal colors, progress bars, and Unicode spinners are automatically suppressed.
567
+ - **Pure Stdout Payload**: Stdout contains *only* valid, parseable JSON, NDJSON, or CSV.
568
+ - **Stderr Diagnostic Routing**: Network warnings, rate-limit retries, and error traces are routed strictly to `stderr`.
569
+ - **POSIX Exit Codes**: Clean exit `0` on success, `1` on error or validation failure.
570
+
571
+ ---
536
572
 
537
- # Generate valid FAQPage JSON-LD snippet
538
- gsc schema generate faq
573
+ ### 🚀 Autonomous Agent Workflow Recipes
539
574
 
540
- # Generate valid SoftwareApplication JSON-LD snippet
541
- gsc schema generate software
542
- ```
575
+ Feed these exact commands to your AI agents (or add them to your `cursorrules` / agent system prompts):
543
576
 
544
- ### 8. Google SERP & Social Card Simulator (`gsc preview`)
545
- Render an exact ASCII preview of your Google desktop search snippet and OpenGraph/Twitter social cards before publishing:
577
+ #### 1. Tactical Striking Distance Harvest
546
578
  ```bash
547
- gsc preview https://packinglog.com/
579
+ # Agent prompt: "Find our highest-impression striking distance queries (Pos 7–20) and save token budget"
580
+ gsc strike --min-imp 25 --limit 15 --compact
548
581
  ```
549
582
 
550
- ### 9. Redirect Chain & Header Tracer (`gsc trace`)
551
- Trace multi-hop 301/302 redirect loops, HSTS security headers, canonical links, and `X-Robots-Tag` directives:
583
+ #### 2. Google AI Overview (AIO) Defense Scan
552
584
  ```bash
553
- gsc trace packinglog.com
585
+ # Agent prompt: "Check if Google is showing an AI Overview for our core product query and who they cite"
586
+ gsc aio-hunter "technical seo checklist" --compact
554
587
  ```
555
588
 
556
- ### 10. Robots.txt Crawler Simulator (`gsc robots`)
557
- Simulate crawl permissions for Googlebot, GPTBot, PerplexityBot, or ClaudeBot:
589
+ #### 3. Forensic Soft-404 Audit & Automated Server Fix
558
590
  ```bash
559
- gsc robots https://packinglog.com/ /admin --bot gptbot
591
+ # Agent prompt: "Inspect missing landing page and synthesize an automated Nginx redirect block"
592
+ gsc soft-404 https://example.com/missing-guide --fix nginx --compact
560
593
  ```
561
594
 
562
- ### 11. Domain Authority via OpenPageRank (`gsc authority`)
563
- Query PageRank (0–10) and Global Web Rank computed across Common Crawl's open graph with 300,000 free calls/month:
595
+ #### 4. Instant Googlebot Priority Indexing Notification
564
596
  ```bash
565
- gsc authority packinglog.com uhaul.com
597
+ # Agent prompt: "Submit our newly published blog post to Google's Indexing API for crawl queueing"
598
+ gsc index https://example.com/blog/high-impact-seo --compact
566
599
  ```
567
600
 
568
- ### 12. GSC External Backlink Ingestion (`gsc backlinks`)
569
- Ingest your official Google Search Console External Links export without third-party crawler fees:
601
+ #### 5. Multi-Client Agency Domain Switching
570
602
  ```bash
571
- # Ingest links from clipboard or CSV file
572
- gsc backlinks import clip
573
- gsc backlinks import Links_External_Pages.csv
574
-
575
- # View top referring domains and most linked landing pages
576
- gsc backlinks packinglog.com
603
+ # Agent prompt: "Switch to client domain and pull 28-day performance summary"
604
+ gsc switch clientdomain.com && gsc perf --days 28 --compact
577
605
  ```
578
606
 
579
607
  ---
580
608
 
581
- ## 🥊 How GSC CLI Compares (The Zero-Bloat Advantage)
609
+ ### 📦 1-Click AI Agent Skill Installation
582
610
 
583
- ### Full First-Party SEO Intelligence Without the $300/Mo Scraping Tax
584
- Get complete ground-truth Search Console analytics, instant Googlebot indexing, and real-time trends in under 50ms — even if you refuse to pay third-party API fees, run heavy Docker containers, or manage bloated database dependencies.
611
+ Install the official `gsc-cli` skill directly into your coding agent's environment:
585
612
 
586
- Every other open-source SEO tool on GitHub falls into one of three painful traps:
613
+ ```bash
614
+ # Installs SKILL.md into Antigravity, Claude, and Cursor skill directories
615
+ gsc skills install
616
+ ```
587
617
 
588
- 1. **The DataForSEO Tax Trap**: Many open-source tools look impressive until you discover they are thin frontends around **DataForSEO**. Every single keyword search, competitor look-up, and rank check costs you per-query API credits. When your credit balance runs dry, the tool stops working completely.
589
- 2. **The 500MB Docker Bloat Trap**: Other suites require launching `docker-compose`, PostgreSQL databases, Redis queues, and heavy Node.js web servers just to audit 50 URLs. They are impossible to embed into lightweight terminal workflows or autonomous AI agent loops.
590
- 3. **The Fragile Single-Feature Script**: Python-based tools often drag in heavy `pandas` and `pytrends` dependencies that break whenever Google updates internal endpoint tokens, without offering Google Search Console, Google Indexing, or actionable ranking correlation.
618
+ Once installed, your agent automatically understands all 80 commands, flag permutations, token-saving modes, and diagnostic workflows without needing manual prompting.
591
619
 
592
- **`gsc-cli` was engineered on a radically different architectural philosophy**: Zero gems. Zero external databases. Zero middleman scraping fees. Pure Ruby standard library communicating directly with Google's bare-metal HTTP APIs in under 50 milliseconds.
620
+ ---
593
621
 
594
- ### 📊 Feature Comparison Matrix
622
+ ## 🥊 How GSC CLI Compares (The Zero-Bloat Advantage)
595
623
 
596
- | Capability | every-app/open-seo (18k ⭐) | crawlseo/crawlseo | akvise/trends-checker | ApollosWave/gsc-cli (v2.1.0) |
624
+ | Capability | Google Search Console Web UI | Official Google API SDK (40 Gems) | Enterprise SEO Suites ($300–$1,000+/mo) | **ApollosWave/gsc-cli (v2.2.2)** |
597
625
  | :--- | :--- | :--- | :--- | :--- |
598
- | **Price** | $10/mo + DataForSEO fees | Free (Requires VPS) | Free / DataForSEO | **100% Free & Open Source ($0)** |
599
- | **Dependencies** | 100+ npm packages + DB | Docker + Postgres + Node | Python 3.11 + pandas | **0 Gems / Pure Standard Library** |
600
- | **Binary Size / Footprint** | ~300 MB+ | ~500 MB+ (Docker images) | ~150 MB (Python venv) | **368 KB (Single executable file)** |
601
- | **Execution Latency** | 3–5 seconds (Web app) | Web UI | 2–4 seconds | **< 50 milliseconds** |
602
- | **Google Search Console** | Indirect / DataForSEO | ✅ Direct API | ❌ None | **✅ Direct API with Gzip compression** |
603
- | **Google Indexing API** | ❌ None | ❌ None | ❌ None | **✅ Direct 1-click Googlebot ping** |
604
- | **Google Analytics 4** | ❌ None | ❌ None | ❌ None | **✅ Realtime, Ads, & Traffic channels** |
605
- | **Google Trends** | ❌ None | ❌ None | ✅ Standalone only | **✅ Built-in velocity & sparklines** |
606
- | **Site Crawler & Audits** | Paid DataForSEO crawler | ✅ Max 2k pages | ❌ None | **✅ Sitemap + SERP pixel width checks** |
607
- | **Keyword Ingestion** | DataForSEO API only | ❌ Manual | ❌ None | **✅ `gsc import clip` (Free Clipboard)** |
608
- | **AI Agent Native Skill** | MCP server only | MCP server only | ❌ None | **✅ Claude Code / Antigravity Skill + JSON** |
626
+ | **Pricing** | Free ($0) | Free ($0) | $300–$1,000+/mo ($3,600–$12,000/yr) | **100% Free & Open Source ($0)** |
627
+ | **Dependencies** | Web Browser only | 40+ transitive gems (`googleauth`, etc.) | SaaS Web Application | **0 Gems / Pure Standard Library** |
628
+ | **Boot / Execution Latency** | Slow (manual clicking) | 3–5 seconds cold boot | Web UI latency | **< 1 millisecond (Compiled Binary)** |
629
+ | **Data Accuracy** | 100% Google Ground Truth | 100% Google Ground Truth | Sampled external proxy estimates | **100% Google Ground Truth (Direct API)** |
630
+ | **CLI Command Surface** | ❌ None (Web only) | Raw Ruby code required | ❌ None (Web dashboard) | **80 Production Commands** |
631
+ | **Core GSC Workflows** | Manual tab clicking & export | Complex API code boilerplate | Partial GSC sync via OAuth | **`top-queries`, `top-pages`, `performance`** |
632
+ | **Instant Googlebot Indexing** | Manual 1-by-1 submit | Complex JWT boilerplate | ❌ None | **✅ 1-Click Priority Ping (`gsc index`)** |
633
+ | **Multi-Engine IndexNow** | ❌ None | ❌ None | ❌ None | **✅ Bing, Yandex, Seznam, Naver (`gsc indexnow`)** |
634
+ | **Striking Distance Playbook** | ❌ Manual spreadsheet work | ❌ None | Expensive add-on tiers | **✅ Automated Page 2 Playbook (`gsc strike`)** |
635
+ | **Google AI Overviews (AIO)** | ❌ None | ❌ None | Limited / expensive beta tiers | **✅ Built-in `aio-hunter` & `cite-sim`** |
636
+ | **Automated Fix Generation** | ❌ None (Error tables only) | ❌ None | ❌ None | **✅ 14-Stack Redirects (`gsc soft-404 --fix`)** |
637
+ | **Token Economics for AI** | ❌ None | Verbose unformatted JSON | ❌ None | **✅ Native `--compact`, `--ndjson`, `--csv` (35–75% savings)** |
638
+ | **Autonomous AI Agent Skills** | ❌ None | ❌ None | ❌ None | **✅ Native Skill for Claude, Cursor, Antigravity** |
609
639
 
610
640
  ---
611
641
 
612
- ## 🏗️ Architecture & Development
642
+ ## 🏗️ Architecture & Pure-Ruby Design
613
643
 
614
- `gsc-cli` is engineered following a clean, modular Ruby architecture:
644
+ `gsc-cli` is engineered with 100% pure Ruby standard library. It compiles into a single, self-contained, zero-dependency executable:
615
645
 
616
646
  ```text
617
647
  gsc-cli/
618
648
  ├── bin/
619
- │ └── gsc # Lean executable runner (< 15 lines)
649
+ │ ├── gsc # Compiled single-file binary (RubyGems entry point)
650
+ │ └── test_live # Visual showcase & internal test harness
620
651
  ├── lib/
621
- │ ├── gsc.rb # Central loader & stdlib requirements
652
+ │ ├── gsc.rb # Central stdlib loader
622
653
  │ └── gsc/
623
- │ ├── version.rb # Semantic versioning (2.0.0)
654
+ │ ├── version.rb # Semantic versioning (2.2.2)
624
655
  │ ├── color.rb # Zero-dependency ANSI formatting
625
- │ ├── config.rb # ~/.config/gsc/config.json persistence
656
+ │ ├── config.rb # Configuration persistence
626
657
  │ ├── auth.rb # Pure OpenSSL JWT generator
627
- │ ├── client.rb # Net::HTTP client with JSON serialization
628
- │ ├── api.rb # GSC, Indexing & GA4 API endpoints
629
- │ ├── sitemap_loader.rb # XML crawler & sitemap index parser
630
- │ ├── google_trends.rb # Real-time search demand engine
631
- │ ├── keyword_planner.rb # Autocomplete expander & intent classifier
632
- │ ├── keywords_everywhere.rb # Keywords Everywhere API client
633
- │ ├── command_registry.rb # Command catalog (47 commands) & AI skills
634
- │ └── cli.rb # Option parser, command router & wizards
658
+ │ ├── client.rb # Net::HTTP client with Gzip decompression
659
+ │ ├── api.rb # GSC, Indexing, GA4, PageSpeed endpoints
660
+ │ ├── aio_hunter.rb # Google AI Overview Opportunity Hunter
661
+ │ ├── citation_simulator.rb# AI Citability score & grounding heuristics
662
+ │ ├── soft_404_analyzer.rb # Soft-404 diagnostic & multi-stack fix generator
663
+ │ ├── mobile_parity.rb # Cross-device SERP parity auditor
664
+ │ ├── doctor.rb # Zero-gem cold-start benchmark doctor
665
+ │ ├── command_registry.rb # Catalog of all 80 production commands
666
+ │ ├── cli/ # Modular subcommand domains (audit, keywords, growth...)
667
+ │ └── cli.rb # Primary command dispatcher & router
635
668
  ├── dist/
636
- │ └── gsc # Standalone bundled binary (curl distribution)
669
+ │ └── gsc # Standalone bundled binary (1-click curl & GitHub releases)
637
670
  ├── gsc.gemspec # Standard RubyGem specification
638
- ├── Rakefile # Tasks for build, test, and install
671
+ ├── Rakefile # Build, test, and standalone install tasks
639
672
  └── install.sh # Universal 1-click shell installer
640
673
  ```
641
674
 
642
675
  ### Development Tasks
643
676
  ```bash
644
- # Run syntax verification across all modular files
677
+ # Run syntax checks and all 359 unit test suites
645
678
  rake test
646
679
 
680
+ # Run 100-scenario deep forensic regression suite
681
+ rake test:forensic
682
+
647
683
  # Build the standalone single-file binary into dist/gsc
648
684
  rake build:standalone
649
685
 
650
686
  # Install local development build to ~/.local/bin/gsc
651
687
  rake install:standalone
652
-
653
- # Build gem package
654
- rake gem:build
655
688
  ```
656
689
 
657
690
  ---
@@ -675,12 +708,13 @@ If GSC CLI saves your team hours of manual audit work or hundreds in monthly Saa
675
708
 
676
709
  👉 **[Read the Full Sponsorship Prospectus & Tier Breakdown →](FUNDING.md)**
677
710
 
711
+ ---
678
712
 
679
713
  ### ApollosWave Ecosystem
680
714
  GSC CLI is maintained by [ApollosWave LLC](https://apolloswave.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli). Check out our products:
681
715
  - **[Superspeed](https://superspeedapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Autonomous Core Web Vitals & website speed optimization engine.
682
716
  - **[Supercart](https://supercartapp.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: High-converting slide cart drawer for Shopify merchants.
683
- - **[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Smart QR-code moving box inventory organizer.
717
+ - **[PackingLog](https://packinglog.com/?utm_source=github&utm_medium=readme&utm_campaign=gsc-cli)**: Our newly launched physical moving inventory and QR-code tracking SaaS — where waiting weeks for Googlebot to discover new landing pages wasn't an option.
684
718
 
685
719
  ---
686
720
 
@@ -692,6 +726,12 @@ GSC CLI is maintained by [ApollosWave LLC](https://apolloswave.com/?utm_source=g
692
726
 
693
727
  ---
694
728
 
695
- ## 📄 License
729
+ ## ⚖️ Open Source Philosophy & License
730
+
731
+ `gsc-cli` is 100% free, open-source software licensed under the **[MIT License](LICENSE)**.
732
+
733
+ We built this because we believe command-line developer tools should be fast, transparent, and respect your machine's resources. The modern Ruby standard library is more than capable of handling enterprise-grade API integrations and cryptographic authentication without dragging in 40 third-party gems.
734
+
735
+ If `gsc-cli` saves your team time, eliminates an unnecessary SaaS subscription, or accelerates your search pipelines, stars, feedback, and pull requests are always welcome.
696
736
 
697
- This project is open-source software licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
737
+ 👉 **[Get Started with 1-Click Install](#-quick-installation)** | **[Star on GitHub ⭐](https://github.com/ApollosWave/gsc-cli)**