Union Search skill

A skill for Claude Code and Codex: one query goes to 52 search channels and the results merge into one deduplicated JSON

  • 772 ★ on the repository
  • Last commit
  • MIT
Skill

Extended access

Why this level

  • The skill keeps API keys in `.env`, calls dozens of external services, and the ai_tools channel spends the limits of your Claude Code and Codex accounts.
All reasons and checks

runningz1/union-search-skill

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add skills/union-search

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • The skill keeps API keys in `.env`, calls dozens of external services, and the ai_tools channel spends the limits of your Claude Code and Codex accounts.

This is third-party code. Review the repository files before installing.

What it does

Union Search runs as `python union_search_cli.py` and searches many sources at once. There are 52 channels: 26 work without a required key, including eight web search engines, GitHub and Wikipedia, 23 need an API key from services such as Tavily, Exa, Serper and Firecrawl, and three use the login of local Claude Code, Codex and Grok Build. Results are normalized to common fields, duplicates by page address are merged, and each channel shows a status and the number of records found. By default no record limit is set and the skill returns everything a channel gave for the query. The full result is saved to an archive file, and `read --from-file <file> --ids 1 2` pulls individual items without new API calls. Other commands cover the remaining tasks: `platform <name>` searches one channel, `defuddle <url>` extracts page text to Markdown, `image` searches and downloads pictures on 24 platforms, and `download` fetches video and audio through yt-dlp. For the agent there are `schema`, `errors` and `doctor`: a machine-readable capability list, error codes and an environment check. The `general`, `api`, `dev`, `social`, `ai_tools` and `all` groups narrow the channel choice.

Who it is for. Researchers and developers who ask an agent to gather material from several search engines and platforms and get one reconciled list of links.

Good fit when

  • A topic is researched across several search engines at once and links from different result lists have to be merged without repeats
  • An agent works without paid keys and the `general` group of eight web channels is enough
  • You need a page's text in Markdown without extra noise, which `defuddle` provides
  • Pictures are gathered for an article with source, author and license recorded
  • For a found video you have to pick a candidate and download audio or the clip into a local folder

Not a fit when

  • The agent already has the text: the skill is pointless if only your own files or supplied text are processed
  • You need one known search API: it is simpler to connect it directly than to keep 52 channels
  • You need stability guarantees for channels: some web channels depend on page markup and an empty answer may mean a captcha or a markup change
  • Downloading media is forbidden by the source's terms: the `download` command depends on yt-dlp and on rights to the material

Example request

Use Union Search to find material on packaging Python projects in DuckDuckGo, Brave and GitHub, merge the links without duplicates and save the result as Markdown.

Limitations

The `stable` field in the channel registry only reflects code metadata and does not show live health. An empty answer from a web channel sometimes means a captcha, a rate limit or changed markup. A keyless channel does not mean no call to a remote service.

Python 3.10 or newer, the dependencies from `requirements.txt` and, for text extraction, Node.js are needed. API keys go into the `.env` file with a template in `.env.example`. Media download needs yt-dlp, and merging and audio extraction need ffmpeg.

Channels in the `ai_tools` group use the login and quotas of your local Claude Code, Codex and Grok Build, so each query spends an account limit. The author removed the TikHub social network integration and marked the Volcengine channel as degraded.

How to disable. Delete the skill folder from the agent's skills directory and the `.env` file with keys. Downloaded media and result archives sit in working folders and are deleted by hand.

FAQ

Do I need paid keys?

No. The `general` group of eight web channels works without a required key and is the default. Keys are needed only for the `api` group with services such as Tavily and Exa.

How do I limit the number of results?

Add `--limit N`. Without it the skill returns every record a channel gives per query, and `--limit 0` also means unlimited.

How do I install the skill in Claude Code?

Clone the repository into the skills directory, run `python -m pip install -r requirements.txt` and check the environment with `python union_search_cli.py doctor --pretty`.

How do I get only the page text?

With `python union_search_cli.py defuddle <url>`. It needs Node.js, and the result can be saved as Markdown with `--format markdown -o <file>`.

What does the ai_tools group do?

It sends the query through the login of local Claude Code, Codex or Grok Build and spends your account's quota. It is not part of the default group.

Discussion

No questions or reviews yet.

Russian stack

Five cache-first shell skills for Direct, Metrika, Webmaster, Wordstat and Search API, with Claude choosing which one to run

SkillBroad access17Repository stars

Yandex search API skill via Apify

claude-skill-yandex-search-api

Russian stack

An agent skill: the full Yandex SERP as JSON with no official API key, via the Apify Yandex Search Scraper actor

PluginExtended access

Yandex image search skill via Apify

claude-skill-yandex-image-search-api

Russian stack

An agent skill: full-size image URLs from Yandex Images via an Apify actor, with color, size and site filters

PluginExtended access

Yandex rank tracker skill via Apify

claude-skill-yandex-rank-tracker

Russian stack

A skill that uses a third-party Apify scraper to pull a site's Yandex ranking for a keyword, domain and region

SkillExtended access
Russian stack

A self-hosted Go search gateway with an MCP search tool: 39 providers, including the official Yandex Search API v2

MCP serverExtended access2Repository stars

README in short

The README in Chinese and English lays out the channels in a table of groups, gives a quickstart, examples of search, text, image and media extraction and a list of known limits. A separate section describes setting up keys with an agent. The license is MIT.

README badge

Report a problem