本文へ移動
cccskills
無料GitHub で公開

omnisearch

Unified web and social media search across 5 providers (Brave, Tavily, Xpoz, Exa, Firecrawl). Auto-routes queries to the best API, supports parallel multi-provider search with deduplication, AI-generated answers, and social media search. Triggers on web search, find news, search Twitter, search Reddit, social media search, multi-provider search, omnisearch, research news, OSINT, search for, look up, find information about.

インストール方法を見る

含まれるファイル(10)

  • SKILL.md11.7 KB
  • README.md3.7 KB
  • references/brave-api-reference.md3.3 KB
  • references/tavily-api-reference.md2.9 KB
  • references/xpoz-api-reference.md8.4 KB
  • scripts/brave_search.py15.8 KB
  • scripts/omnisearch.py24.4 KB
  • scripts/tavily_search.py14.3 KB
  • scripts/test_omnisearch.py30.7 KB
  • scripts/xpoz_search.py24.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Omnisearch Skill

Unified search across 5 providers — Brave (Google SERP), Tavily (agent-native answers), Xpoz (social media), Exa (neural/semantic), and Firecrawl (scraping). Auto-classifies queries and routes to the best provider, or runs parallel searches across all with deduplication.

Prerequisites: At least one API key set. See API Key Setup.

Coverage Map

SurfaceProviderStrengthCost
Google SERPBraveWeb + news, freshness filtering, LLM Context API$5/1k
Agent answersTavilyAI-synthesized answers with citations, content extractionFree 1k/mo
Twitter/XXpozTweet search, user timelines, threads, hashtagsFree 100k/mo
RedditXpozPost search, subreddit browsing, trendingFree 100k/mo
InstagramXpozPost search, user profilesFree 100k/mo
Neural/semanticExa (cross-skill)Research papers, companies, similar pagesPer-query
Web scrapingFirecrawl (cross-skill)Search + scrape, site crawlingPer-page

Token-Efficient Multi-Search

Same principle as Exa's dynamic filtering — search cheaply, filter, then extract selectively.

DO:

# Step 1: Multi-provider search, titles/URLs only
python3 ~/.claude/skills/omnisearch/scripts/omnisearch.py "query" --parallel --no-text

# Step 2: Evaluate titles, pick best URLs

# Step 3: Extract selected URLs
python3 ~/.claude/skills/exa-search/scripts/exa_contents.py URL1 URL2 --highlights --max-chars 3000
# OR
python3 ~/.claude/skills/firecrawl/scripts/firecrawl_api.py scrape URL --only-main-content

DON'T: Run --parallel with full text for 40+ results, then reason over all of it.

Available Scripts

1. omnisearch.py — Meta-Router (start here)

Auto-classifies queries and dispatches to the best provider. Supports forced provider, parallel search, and social mode.

python3 ~/.claude/skills/omnisearch/scripts/omnisearch.py "query" [options]
Quick ExamplePurpose
... omnisearch.py "Iran oil sanctions"Auto-route to best provider
... omnisearch.py "query" --provider braveForce specific provider
... omnisearch.py "query" --parallelAll web providers, merged + deduped
... omnisearch.py "query" --socialTwitter search via Xpoz
... omnisearch.py "query" --social --platform redditReddit search
... omnisearch.py "query" --answerAI-generated answer (Tavily/Brave)
... omnisearch.py "query" --news --parallelNews from all providers
... omnisearch.py "query" --academicRoute to Exa academic index
... omnisearch.py "query" --verboseShow routing decisions on stderr

Query Classification (auto-route):

SignalCategoryPrimary Provider
@mentions, #hashtags, "tweet", "reddit", r/xxxSocial MediaXpoz
"latest", "breaking", "today", date wordsNewsBrave
"paper", "arxiv", "study", "journal"AcademicExa
"who is", "what is", short questionsFactual QuickTavily (with answer)
"company", "startup", "funding", "IPO"Company ResearchExa
"documentation", "API", "tutorial", "SDK"Technical DocsExa
(default)General WebBrave

2. brave_search.py — Brave Web & News Search

Google-indexed SERP with freshness filtering, country targeting, and LLM Context API.

python3 ~/.claude/skills/omnisearch/scripts/brave_search.py "query" [options]
Quick ExamplePurpose
... brave_search.py "Iran infrastructure"Web search
... brave_search.py "query" --newsDedicated news endpoint
... brave_search.py "query" --summarizeLLM Context API (AI summary)
... brave_search.py "query" --freshness pdPast day only
... brave_search.py "query" --freshness pw --extra-snippetsPast week + rich context
... brave_search.py "query" --country US --lang enLocalized results
... brave_search.py "query" --filter web,news --markdownMulti-type + markdown

Freshness values: pd (past day), pw (past week), pm (past month), py (past year), or YYYY-MM-DDtoYYYY-MM-DD

3. tavily_search.py — Agent-Native Search with Answers

AI-optimized search with grounded answers, topic modes, and content extraction.

python3 ~/.claude/skills/omnisearch/scripts/tavily_search.py "query" [options]
Quick ExamplePurpose
... tavily_search.py "oil prices" --answerSearch + AI answer
... tavily_search.py "query" --advanced --answerDeep search + answer
... tavily_search.py "query" --news --days 3News, last 3 days
... tavily_search.py "query" --financeFinance topic mode
... tavily_search.py "query" --answer-onlyPipe-friendly answer
... tavily_search.py "query" --domains bellingcat.comDomain-restricted
... tavily_search.py extract URL [URL...]Content extraction

Search depths: basic (fast, ~1s) or --advanced (comprehensive, ~3-5s) Topics: general (default), --news, --finance

4. xpoz_search.py — Social Media Search

Twitter/X, Reddit, and Instagram search via Xpoz SDK. 12 subcommands.

python3 ~/.claude/skills/omnisearch/scripts/xpoz_search.py SUBCOMMAND "query" [options]
Quick ExamplePurpose
... xpoz_search.py twitter "Iran conflict" -n 10Twitter search
... xpoz_search.py twitter "query" --sort latest --min-likes 10Filtered tweets
... xpoz_search.py twitter-user elikishtaini -n 10User timeline
... xpoz_search.py twitter-thread 1234567890Full thread
... xpoz_search.py twitter-hashtag IranStrikes -n 10Hashtag search
... xpoz_search.py reddit "geopolitics Iran" -n 10Reddit search
... xpoz_search.py reddit-sub worldnews -n 10 --sort hotSubreddit posts
... xpoz_search.py reddit-post abc123Reddit post + comments
... xpoz_search.py reddit-trendingTrending subreddits
... xpoz_search.py instagram "conflict" -n 10Instagram search

Twitter filters: --sort (latest/popular/media), --min-likes, --min-retweets, --since/--until, --lang Reddit filters: --subreddit, --sort (hot/new/top/rising), --time (hour/day/week/month/year/all)

Provider Selection Guide

TaskBest Approach
General web searchomnisearch.py "query" (auto-routes to Brave)
Breaking newsomnisearch.py "query" --news or brave_search.py "query" --news --freshness pd
Quick factual answeromnisearch.py "query" --answer or tavily_search.py "query" --answer
Twitter OSINTomnisearch.py "query" --social or xpoz_search.py twitter "query"
Reddit sentimentxpoz_search.py reddit "query" or omnisearch.py "query" --social --platform reddit
Research papersomnisearch.py "query" --academic (routes to Exa)
Company intelligenceomnisearch.py "query" (auto-detects company signals)
Multi-source corroborationomnisearch.py "query" --parallel --verbose
Content extractiontavily_search.py extract URL or Firecrawl
Domain-restricted searchtavily_search.py "query" --domains site.com or brave_search.py "query" --goggles ID

Omnisearch vs Exa vs Firecrawl

NeedBest ToolWhy
Google SERP surfaceOmnisearch (Brave)Exa has independent index
Social media searchOmnisearch (Xpoz)Only tool with Twitter/Reddit
AI answer with citationsOmnisearch (Tavily)Agent-native answers
Multi-provider parallelOmnisearch --parallelDedup across providers
Semantic/neural searchExa directlySuperior relevance ranking
Research papersExa --category "research paper"Academic index
Find similar pagesExa exa_similar.pySemantic similarity
Single page scrapeFirecrawl scrapeCleanest markdown
Full site crawlFirecrawl crawlLink following
News freshness filterOmnisearch (Brave --freshness)Hour/day/week/month
Content extractionTavily extract or FirecrawlBoth work

Common Workflows

OSINT Research (WWW-style)

# Step 1: Multi-provider news sweep
python3 ~/.claude/skills/omnisearch/scripts/omnisearch.py "Iran infrastructure strike" --news --parallel --no-text

# Step 2: Social signal check
python3 ~/.claude/skills/omnisearch/scripts/xpoz_search.py twitter "Iran infrastructure" --sort latest -n 15

# Step 3: Extract best sources
python3 ~/.claude/skills/exa-search/scripts/exa_contents.py URL1 URL2 --highlights --max-chars 5000

Quick Answer Pipeline

# AI answer with sources
python3 ~/.claude/skills/omnisearch/scripts/omnisearch.py "who commands CENTCOM" --answer --json | jq '.answer'

Cross-Platform Corroboration

# Get the same story from 3+ sources
python3 ~/.claude/skills/omnisearch/scripts/omnisearch.py "Strait of Hormuz incident" --parallel --verbose

Social Media Monitoring

# Track a developing story on Twitter
python3 ~/.claude/skills/omnisearch/scripts/xpoz_search.py twitter "#IranStrikes" --sort latest -n 20

# Check analyst activity
python3 ~/.claude/skills/omnisearch/scripts/xpoz_search.py twitter-user elikishtaini -n 10 --json

API Key Setup

Three new keys in ~/.config/env/secrets.env:

export BRAVE_API_KEY="..."      # https://api-dashboard.search.brave.com
export TAVILY_API_KEY="tvly-..."  # https://tavily.com (free tier, no CC)
export XPOZ_API_KEY="..."       # https://www.xpoz.ai

Existing keys (already configured for cross-skill routing):

export EXA_API_KEY="..."        # https://dashboard.exa.ai
export FIRECRAWL_API_KEY="..."  # https://firecrawl.dev

All scripts gracefully error with a clear message when their key is missing. You can use any subset.

Reference Documentation

FileContents
references/brave-api-reference.mdBrave Search API: endpoints, parameters, response schemas, LLM Context API
references/tavily-api-reference.mdTavily API: search, extract, answer, topics, domains
references/xpoz-api-reference.mdXpoz API: SDK methods, Twitter/Reddit/Instagram endpoints

Test Suite

python3 ~/.claude/skills/omnisearch/scripts/test_omnisearch.py --quick     # Offline + one per key
python3 ~/.claude/skills/omnisearch/scripts/test_omnisearch.py             # Full suite
python3 ~/.claude/skills/omnisearch/scripts/test_omnisearch.py --group router   # Classification tests
python3 ~/.claude/skills/omnisearch/scripts/test_omnisearch.py --group dedup    # Dedup tests
python3 ~/.claude/skills/omnisearch/scripts/test_omnisearch.py --verbose   # Detailed output
GroupTestsLive API?
routerclassify_query (7 categories), select_providers (5 scenarios), routing_table_coverageNo
dedupexact URL, normalized URL, title Jaccard, short titles, score sorting, mixed providers, URL normalize, Jaccard mathNo
formathuman-readable, markdown, JSON serialization, no-text modeNo
braveweb search, news, freshness, formattersYes
tavilybasic, advanced, answer, extractYes
xpoztwitter search, reddit, user tweetsYes
integrationauto-route, parallel, cross-skill exa, JSON CLI outputYes

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Search academic papers, build literature reviews, and synthesize research findings — combines Exa MCP (research_paper category, arxiv filtering) with arxiv-mcp-server for paper discovery, download, and deep analysis. Triggers on academic paper, literature review, research synthesis, arxiv, find papers, scholarly search.

日本語の概要は準備中です。原文の説明を表示しています。

tdimino/claude-code-minoan412026年9月28日 更新

Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.

日本語の概要は準備中です。原文の説明を表示しています。

tdimino/claude-code-minoan412026年9月28日 更新

This skill should be used when creating, auditing, or maintaining AGENTS.md files and Codex CLI configuration for any project—including initializing AGENTS.md for cross-agent compatibility (Codex, Cursor, Copilot, Devin, Jules, Amp, Gemini CLI), generating config.toml or .rules files, scaffolding .agents/skills/, converting CLAUDE.md to AGENTS.md, or auditing existing agent configs for bloat and staleness. Complementary to codex-orchestrator (which executes subagents; this skill creates the config files they consume).

日本語の概要は準備中です。原文の説明を表示しています。

tdimino/claude-code-minoan412026年9月28日 更新

Academic research skill for Biblical Hebrew, Semitic linguistics, cuneiform studies, and comparative Ancient Near Eastern research. Provides Sefaria API for Hebrew Bible, CDLI/ORACC for cuneiform databases, and web discovery via Omnisearch, Exa, Firecrawl, and Obscura for finding scholarly sources across JSTOR, Perseus, Persée, Google Scholar, and academia.edu. Triggers on Hebrew quotes, cuneiform, Sefaria, ANE research, Minoan, search for scholarship, find papers, literature review, scholarly search, academic search, Genesis/Tehom, Ugaritic, Talmudic sources, extract from PDF, OCR academic.

日本語の概要は準備中です。原文の説明を表示しています。

tdimino/claude-code-minoan412026年9月28日 更新

Build comprehensive ARCHITECTURE.md files following matklad's canonical guidelines — bird's-eye views, ASCII/Mermaid diagrams, codemaps, invariants, and layer boundaries. Triggers on document the architecture, create ARCHITECTURE.md, map this codebase, architectural overview.

日本語の概要は準備中です。原文の説明を表示しています。

tdimino/claude-code-minoan412026年9月28日 更新

Generate physically-based atmospheric scattering shaders — sky domes, planetary atmospheres, LUT-optimized pipelines, depth-aware post-processing. Four modes — sky-dome, atmosphere-post, planet, lut. Triggers on atmospheric scattering, sky shader, sunset rendering, planet atmosphere, Rayleigh scattering, Mie scattering, volumetric sky, sky dome, atmosphere post-processing, aerial perspective, transmittance LUT, sky rendering, realistic sky, planetary rendering.

日本語の概要は準備中です。原文の説明を表示しています。

tdimino/claude-code-minoan412026年9月28日 更新

tdimino のスキルをすべて見る

このスキルの問題を報告する