MCPInstall

google-image-search

Search and download images via Google Custom Search API with LLM-powered selection. This skill should be used when finding images for articles, presentations, research documents, or enriching Obsidian notes with relevant visuals. Supports simple queries, batch processing from JSON config, automatic config generation from terms, and full note enrichment with automatic image insertion below headings.

Installs
643
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/glebis/claude-skills --skill google-image-search
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads google-image-search automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Google Image Search Skill

Search for images using Google Custom Search API with intelligent scoring and LLM-based selection.

When to Use

  • Finding images to illustrate technical articles or research
  • Adding visuals to presentations
  • Enriching Obsidian notes with relevant images
  • Batch image search for multiple topics
  • Generating image search configs from plain text lists

Requirements

  • Google Custom Search API key and Search Engine ID
  • OpenRouter API key (for LLM selection)
  • llm CLI installed at /opt/homebrew/bin/llm

Store credentials in .env:

Google-Custom-Search-JSON-API-KEY=your_key
Google-Custom-Search-CX=your_cx
OPENROUTER-API-KEY=your_openrouter_key

(The OPENROUTER_API_KEY=... spelling works too — see the plugin note below.)

OpenRouter / llm-openrouter caveat

The llm-openrouter plugin only registers its models when it can read a key named OPENROUTER_KEY (env var or llm keys set openrouter). With only OPENROUTER_API_KEY set, llm models list shows zero OpenRouter models and every openrouter/... name fails with Unknown model — the script then silently falls back to keyword scoring. llm_select.py sets both names for the subprocess, so this is handled; if selection ever regresses, check OPENROUTER_KEY first:

llm models list | grep -c openrouter   # 458+ means the plugin registered its models

Modes of Operation

1. Simple Query

Search for a single term:

python3 ~/.claude/skills/google-image-search/scripts/google_image_search.py \
  --query "neural interface wearable device" \
  --output-dir ./images \
  --num-results 5

2. Batch Processing

Process multiple queries from JSON config:

python3 ~/.claude/skills/google-image-search/scripts/google_image_search.py \
  --config image_queries.json \
  --output-dir ./images \
  --llm-select

3. Generate Config from Terms

Create JSON config from a list of terms using LLM:

python3 ~/.claude/skills/google-image-search/scripts/google_image_search.py \
  --generate-config \
  --terms "AlterEgo wearable" "sEMG electrodes" "BCI headset" \
  --output my_queries.json

4. Enrich Obsidian Note

Extract visual terms from note, find images, and insert below headings:

python3 ~/.claude/skills/google-image-search/scripts/google_image_search.py \
  --enrich-note ~/Brains/brain/Research/neural-interfaces.md

This mode:

  1. Detects Obsidian vault and attachments folder
  2. Uses LLM to extract visual-worthy terms from note
  3. Searches for images for each term
  4. Downloads best images to attachments folder
  5. Inserts image embeds below relevant headings
  6. Creates backup before modifying note

Key Options

OptionDescription
--query TEXTSimple single query
--config FILEJSON config for batch
--generate-configGenerate config from --terms
--enrich-note FILEEnrich Obsidian note
--output-dir DIRWhere to save images
--urls-onlyReturn URLs only, no download
--llm-selectUse LLM to pick best image (default: on)
--no-llm-selectDisable LLM selection
--num-results NResults per query (default: 5)
--dry-runShow what would be done

JSON Config Format

Each entry supports:

{
  "id": "unique-id",
  "heading": "Display Heading",
  "description": "Context for what image to find",
  "query": "Google search query",
  "numResults": 5,
  "selectionCriteria": "What makes a good image",
  "requiredTerms": ["must", "have"],
  "optionalTerms": ["bonus", "terms"],
  "excludeTerms": ["stock", "clipart"],
  "preferredHosts": ["official-site.com"],
  "selectionCount": 2
}

See references/api_config_reference.md for full documentation.

Scoring System

Images are scored based on:

  • Required terms: -80 if missing, +30 if all present
  • Optional terms: +5 per match
  • Exclude terms: -50 per match
  • Preferred hosts: +25 if trusted, -5 if unknown
  • MIME type: +5 for PNG/JPEG, -10 for GIF
  • Resolution: +10 for high res, -10 for low res
  • File size: -5 if very small

LLM Selection

After scoring, LLM picks the best image from top candidates based on:

  • Title and URL metadata
  • Scoring reasons
  • Selection criteria

The LLM evaluates authenticity, clarity, and relevance for technical audiences.

Obsidian Integration

When in an Obsidian vault:

  • Auto-detects vault root via .obsidian folder
  • Uses configured attachments folder (default: Attachments)
  • Generates Obsidian-style embeds: ![[image.png|alt text]]
  • Creates backup before modifying notes

Script Files

FilePurpose
google_image_search.pyMain entry point
api.pyGoogle Custom Search API
config.pyCredentials and config handling
download.pyImage download with magic bytes
evaluate.pyKeyword-based scoring
llm_select.pyLLM selection and term extraction
obsidian.pyVault detection and enrichment
output.pyMarkdown output generation

FAQ

What does the google-image-search skill do?

Search and download images via Google Custom Search API with LLM-powered selection. This skill should be used when finding images for articles, presentations, research documents, or enriching Obsidian notes with relevant visuals. Supports simple queries, batch processing from JSON config, automatic config generation from terms, and full note enrichment with automatic image insertion below headings.

How do I install google-image-search?

Run npx skills add https://github.com/glebis/claude-skills --skill google-image-search in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/google-image-search/ (personal) or .claude/skills/google-image-search/ (project).

Which AI agents can use google-image-search?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is google-image-search safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains google-image-search?

It is published by glebis in glebis/claude-skills. It has 643 recorded installs.

More from glebis/claude-skills

View all →

pdf-generation

glebis/claude-skills

Professional PDF generation from markdown using Pandoc with Eisvogel template and EB Garamond fonts. Use when converting markdown to PDF, creating white papers, research documents, marketing materials, or technical documentation. Supports both English and Russian documents with professional typography and color-coded themes. Mobile-optimized layout (6x9) by default for Telegram bot context, desktop/print layout (A4) for other contexts.

Docs & Writing482 installs

health-data

glebis/claude-skills

Open the skill to read its SKILL.md instructions.

firecrawl-research

glebis/claude-skills

Open the skill to read its SKILL.md instructions.

deep-research

glebis/claude-skills

Open the skill to read its SKILL.md instructions.

presentation-generator

glebis/claude-skills

Open the skill to read its SKILL.md instructions.

Docs & Writing320 installs

decision-toolkit

glebis/claude-skills

Open the skill to read its SKILL.md instructions.

318 installs

Popular media & creative skills

View category →

hyperframes

heygen-com/hyperframes

Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.

Media & Creative1.2M installs

media-use

heygen-com/hyperframes

Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.

Media & Creative1.1M installs

hyperframes-registry

heygen-com/hyperframes

About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.

Media & Creative1M installs

hyperframes-creative

heygen-com/hyperframes

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.

Media & Creative916.5K installs

ai-video-generation

101-skills/superpowers

Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse

Media & Creative881.5K installs

ai-image-generation

101-skills/superpowers

Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image

Media & Creative880.3K installs