pi-all-search

August 28, 2026 · View on GitHub

All-in-one web search extension for Pi — exa, tavily, anysearch, firecrawl, context7.

Install

pi install npm:pi-all-search

Configure

Set API keys in ~/.pi/agent/extensions/pi-all-search/config.json:

{
  "apiKeys": {
    "exa": "exa-...",
    "tavily": "tvly-...",
    "anysearch": "as_sk_...",
    "firecrawl": "fc-...",
    "context7": "ctx7sk_..."
  },
  "provider": "auto",
  "cacheTtlMs": 300000,
  "maxResults": 5
}

Or set environment variables: EXA_API_KEY, TAVILY_API_KEY, ANYSEARCH_API_KEY, FIRECRAWL_API_KEY, CONTEXT7_API_KEY.

Firecrawl works without a key (IP-based free credits). Office NAT / CI sharing an egress IP share the keyless daily credits.

Usage

web_search({ query: "TypeScript best practices" })
web_search({ queries: ["React vs Vue", "Angular vs Svelte"] })
web_search({ query: "AAPL stock price", provider: "anysearch" })
web_search({ query: "rust async programming", provider: "tavily" })
web_search({ query: "Next.js caching", provider: "context7" })
web_search({ query: "library for incremental PDF parsing", provider: "firecrawl-dev" })

Providers

ProviderBest ForEnv Var
exaAcademic papers, scholarly searchEXA_API_KEY
tavilyGeneral web, programming, fast resultsTAVILY_API_KEY
anysearchFinance, stocks, structured dataANYSEARCH_API_KEY
firecrawlScraping-heavy sites, fallbackFIRECRAWL_API_KEY
firecrawl-devFirecrawl Developer Index: repo discovery, issues, PRs, OpenAPI specs, skills (semantic artifact index)FIRECRAWL_API_KEY
context7Library/framework/API documentationCONTEXT7_API_KEY

Routing

Automatic intent-based routing:

  • Finance queries → anysearch → exa → tavily
  • Academic queries → exa → anysearch → tavily
  • General queries → tavily → exa → anysearch → firecrawl
  • Docs queries → context7 → exa → tavily
  • Technical queries (github/repo/issue/PR/commit) → firecrawl-dev → firecrawl → exa → tavily

Override with provider="exa" etc.

License

MIT