Search Google and retrieve AI Overviews, organic search results, and screenshots via Pangolin APIs.
Activate this skill when the user's intent matches any of these patterns:
Do not use this skill for Amazon product searches, price lookups, or review scraping -- those require a different skill.
pip install needed)Register at pangolinfo.com to obtain credentials.
Set one of the following:
VariableRequiredDescriptionPANGOLIN_API_KEYOption AAPI Key (skips login)PANGOLIN_EMAILOption BAccount emailPANGOLIN_PASSWORDOption BAccount password
API key resolution order: PANGOLIN_API_KEY env var > cached ~/.pangolin_api_key > fresh login.
On macOS, Python may fail with CERTIFICATE_VERIFY_FAILED because it ships without root certificates by default.
Symptoms: The script outputs an error with code SSL_CERT.
Solutions (pick one):
Run the certificate installer that ships with Python: bash
/Applications/Python\ 3.x/Install\ Certificates.command
(Replace 3.x with your Python version, e.g. 3.11)
Set the SSL_CERT_FILE environment variable:
bash
pip3 install certifi
export SSL_CERT_FILE=$(python3 -c "import certifi; print(certifi.where())")
When a user tries to use this skill and authentication fails (error code MISSING_ENV), do not just repeat the error hint. Instead, walk the user through the full setup process interactively:
Tell the user (in their language):
To use this skill, you need a Pangolin API account. Pangolin provides Google search and AI Overview data through its APIs.
使用本技能需要 Pangolin API 账号。Pangolin 提供 Google 搜索和 AI 概览数据的 API 服务。
Go to pangolinfo.com and create an account
After login, find your API Key in the dashboard
访问 pangolinfo.com 注册账号
登录后在控制台找到你的 API Key
When the user provides their credentials, you (the AI agent) should configure them securely. The script will automatically cache the API key at ~/.pangolin_api_key for all future calls.
If user provides an API key (recommended): Write it directly to the cache file — avoids shell history entirely:
bash
echo "<api_key>" > ~/.pangolin_api_key
chmod 600 ~/.pangolin_api_key 2>/dev/null
python3 scripts/pangolin.py --auth-only
If user provides email + password: Set env vars in the session and clean up after auth:
bash
export PANGOLIN_EMAIL="user@example.com"
export PANGOLIN_PASSWORD="their-password"
python3 scripts/pangolin.py --auth-only
unset PANGOLIN_EMAIL PANGOLIN_PASSWORD
This avoids passwords appearing in shell history (unlike inline VAR=x command syntax) and cleans up credentials after the API key is cached.
Both methods cache the API key automatically. After this one-time setup, no environment variables are needed — all future calls will use the cached API key at ~/.pangolin_api_key.
After auth returns "success": true:
~/.pangolin_api_key.bashrc or .zshrc — the script handles persistence automatically2001), tell the user to top up at pangolinfo.comThe main script is located at scripts/pangolin.py relative to this skill directory.
Path resolution: When invoking the script, resolve the absolute path from this skill's directory. Example:
bash
SKILL_DIR="$(cd "$(dirname "$0")" && pwd)"
python3 "$SKILL_DIR/scripts/pangolin.py" --q "your query"
Or invoke directly:
bash
python3 scripts/pangolin.py --q "your query"
User wants AI-generated answers with references. This is the default mode.
bash
python3 scripts/pangolin.py --q "what is quantum computing"
User wants traditional Google search results (organic links + optional AI overview).
bash
python3 scripts/pangolin.py --q "best databases 2025" --mode serp
User wants to see the actual Google results page.
bash
python3 scripts/pangolin.py --q "best databases 2025" --mode serp --screenshot
User wants SERP results from a specific geographic region.
bash
python3 scripts/pangolin.py --q "best databases 2025" --mode serp --region us
User wants to ask follow-up questions in an AI Mode conversation.
bash
python3 scripts/pangolin.py --q "kubernetes" --follow-up "how to deploy" --follow-up "monitoring tools"
Verify credentials are working without consuming credits.
bash
python3 scripts/pangolin.py --auth-only
ParameterDefaultNotes--mode``ai-modeAI Mode with Google AI Overviews--num``10Number of results to request--screenshotoffPass flag to enable--follow-upnoneRepeatable; keep to 5 or fewer for speed
When the user simply says "search for X" without specifying a mode, use the default ai-mode.
The script outputs JSON to stdout on success and structured error JSON to stderr on failure.
json
{
"success": true,
"task_id": "1768988520324-766a695d93b57aad",
"results_num": 1,
"ai_overview_count": 1,
"ai_overview": [
{
"content": ["Quantum computing uses quantum bits (qubits)..."],
"references": [
{
"title": "Quantum Computing - Wikipedia",
"url": "https://en.wikipedia.org/wiki/Quantum_computing",
"domain": "Wikipedia"
}
]
}
],
"screenshot": "https://image.datasea.network/screenshots/..."
}
json
{
"success": true,
"task_id": "1768988520324-abcdef123456",
"results_num": 3,
"ai_overview_count": 1,
"ai_overview": [
{
"content": ["Java works by compiling source code..."],
"references": [
{"title": "How Java Works", "url": "https://docs.oracle.com/...", "domain": "Oracle"}
]
}
],
"organic_results": [
{
"title": "Java Tutorial for Beginners",
"url": "https://example.com/java-tutorial",
"text": "Learn how Java works from the ground up..."
}
]
}
json
{
"success": false,
"error": {
"code": "MISSING_ENV",
"message": "No authentication credentials found.",
"hint": "Set PANGOLIN_API_KEY, or both PANGOLIN_EMAIL and PANGOLIN_PASSWORD environment variables."
}
}
When presenting results to the user:
hint field.OptionTypeDefaultDescription--qstring_required_Search query--mode``ai-mode | serp``ai-modeAPI mode--screenshotflagoffCapture page screenshot--follow-upstring (repeatable)noneFollow-up question (ai-mode only)--numint10Number of results--regionstringnoneGeographic region for SERP results (e.g., us, uk). SERP mode only.--auth-onlyflagoffAuth check only (no query needed)--rawflagoffOutput raw API response
See references/output-schema.md for the complete JSON output schema documentation.
Credits are only consumed on successful requests (API code 0). Auth checks ( --auth-only) do not consume credits.
CodeMeaning0Success1API error (non-zero code from Pangolin)2Usage error (bad arguments)3Network error (connection, SSL, timeout, rate limit)4Authentication error
Error CodeMeaningUser-Facing MessageResolutionMISSING_ENVNo credentials"Authentication credentials are not configured."Set PANGOLIN_EMAIL + PANGOLIN_PASSWORD or PANGOLIN_API_KEY.AUTH_FAILEDWrong credentials"Authentication failed. Please check your credentials."Verify email and password are correct.RATE_LIMITToo many requests"The API is rate-limiting requests. Please wait and try again."Wait a moment, then retry.NETWORKConnection issue"A network error occurred. Please check your connection."Check internet, firewall, proxy settings.SSL_CERTCertificate error"SSL certificate verification failed."See macOS SSL Certificate Fix section above.API_ERRORPangolin API error"The search API returned an error."Check the hint field; see references/error-codes.md.
API CodeMeaningResolution1004Invalid/expired API keyAuto-retried by the script. If persistent, delete ~/.pangolin_api_key and retry.2001Insufficient creditsTop up credits at pangolinfo.com.2007Account expiredRenew subscription at pangolinfo.com.10000Task execution failedRetry the request. Check query format.10001Task execution failedRetry. May be a temporary server issue.
--auth-only first if you are unsure whether credentials are configured, before spending credits on a real query.ai-mode unless the user explicitly asks for standard/traditional search results.hint to the user.--screenshot when the user explicitly wants to see the rendered page or when visual context is needed.--follow-up with --mode serp.