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