Google Search Console CLI
Use this skill when working with this repository's `gsc` CLI, including Google Cloud OAuth client setup, CLI authentication, troubleshooting auth/config issu...
Description
name: google-search-console
description: Use this skill when working with this repository's gsc CLI, including Google Cloud OAuth client setup, CLI authentication, troubleshooting auth/config issues, and running all supported commands (site, sitemap, url inspection, analytics, doctor, config).
Google Search Console CLI Skill
Use this skill to operate and troubleshoot the gsc CLI in this repository.
When To Use
Use this skill when the task involves any of:
- setting up OAuth credentials for Google Search Console
- authenticating this CLI
- listing properties, managing sitemaps, URL inspection, or Search Analytics queries
- diagnosing auth/config/API connectivity issues
Prerequisites
- Python environment with this project installed (
gsccommand available) - A Google account with access to at least one Search Console property
- Search Console API enabled for the Google Cloud project used by OAuth
Install This CLI
Recommended (pipx, global gsc command):
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install google-search-console-cli
gsc --version
From source (development):
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
gsc --help
From source (pipx, editable):
pipx install -e /absolute/path/to/google-search-console-cli
gsc --help
OAuth Client Setup In Google Cloud (Desktop App)
As of February 26, 2026, create OAuth client credentials in Google Cloud Console using these steps:
- Open Google Cloud Console and select/create a project.
- Enable the Search Console API for that project.
- Configure OAuth consent screen:
- choose
Externalfor personal/testing usage (orInternalfor Workspace org-only) - fill required app fields (app name, support email, developer contact)
- add your Google account as a test user if app is in testing mode
- choose
- Go to
APIs & Services->Credentials. - Click
Create credentials->OAuth client ID. - Choose application type
Desktop app. - Create and download the OAuth client JSON (
client_secret_*.json).
Notes:
- UI labels can shift, but you must end with a Desktop OAuth client JSON file.
- Keep the downloaded JSON private.
Authenticate This CLI
Preferred login flow:
gsc auth login --client-secret /absolute/path/to/client_secret.json
Useful auth options:
--readonly: request readonly scope only (webmasters.readonly)--no-launch-browser: print the auth URL without auto-opening a browser
Verify credentials:
gsc auth whoami
gsc doctor
Default storage paths:
- credentials:
~/.config/gsc-cli/credentials.json - app config:
~/.config/gsc-cli/config.json
Env overrides:
GSC_CREDENTIALS_FILEGSC_APP_CONFIG_FILEGSC_CONFIG_DIR
Optional: Set Default Property
gsc config set default-site sc-domain:example.com
gsc config get default-site
When set, commands that accept --site can omit it.
Command Reference
Top-level:
gsc --versiongsc --helpgsc doctor
auth
gsc auth login --client-secret FILE [--readonly] [--no-launch-browser]gsc auth whoami [--output table|json]
config
gsc config set default-site SITE_URLgsc config get default-site
site
gsc site list [--output table|json|csv] [--csv-path FILE]gsc site get [--site SITE] [--output table|json|csv] [--csv-path FILE]gsc site add [--site SITE]
SITE example: sc-domain:example.com.
sitemap
gsc sitemap list [--site SITE] [--sitemap-index TEXT] [--output table|json|csv] [--csv-path FILE]gsc sitemap get [--site SITE] --feedpath TEXT [--output table|json|csv] [--csv-path FILE]gsc sitemap submit [--site SITE] --feedpath TEXTgsc sitemap delete [--site SITE] --feedpath TEXT
--feedpath alias: --path.
url
gsc url inspect [--site SITE] --url URL [--language-code CODE] [--output table|json|csv] [--csv-path FILE]
Defaults:
--language-code en-US
analytics
gsc analytics query --start-date YYYY-MM-DD --end-date YYYY-MM-DD [options]
Options:
--site SITE--dimension country|date|device|hour|page|query|searchAppearance(repeatable)--type discover|googleNews|image|news|video|web--aggregation-type auto|byNewsShowcasePanel|byPage|byProperty--row-limit 1..25000--start-row >=0--data-state all|final|hourly_all--filter dimension:operator:expression(repeatable)--output table|json|csv--csv-path FILE
Supported filter dimensions:
country,device,page,query,searchAppearance
Supported filter operators:
contains,equals,notContains,notEquals,includingRegex,excludingRegex
Constraint:
--aggregation-type byPropertycannot be combined withpagedimension orpagefilter.
Quick Examples
# List properties
gsc site list
# Get one property
gsc site get --site sc-domain:example.com
# List sitemaps
gsc sitemap list --site sc-domain:example.com
# Inspect one URL
gsc url inspect --site sc-domain:example.com --url https://example.com/page --output json
# Analytics query
gsc analytics query \
--site sc-domain:example.com \
--start-date 2026-01-01 \
--end-date 2026-01-31 \
--dimension date \
--dimension query \
--filter query:contains:brand
Troubleshooting
-
Auth error: Stored credentials do not include required scope ...- Re-run login with needed scope. For write commands, run login without
--readonly.
- Re-run login with needed scope. For write commands, run login without
-
No local OAuth credentials found...- Run:
gsc auth login --client-secret <path>
- Run:
-
No site specified. Pass --site or set one...- pass
--siteor set default viagsc config set default-site ...
- pass
-
API failures / uncertain setup state
- run
gsc doctorfirst, then address failing checks.
- run
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!