Unified web search for AI agents

One web search API for every provider

A unified TypeScript SDK to search and scrape the web from your agents. Swap providers without touching your app code, and hand framework-native tools straight to your model.

terminal
search.ts
Providers
5

Providers

Unified API
1

Unified API

Dual builds
ESM + CJS

Dual builds

Heavy deps
0

Heavy deps

Provider-agnostic

Swap providers, keep your code

search() and scrape() always return the same shape. Change the provider factory on one line — the rest of your code never moves.

search.ts

Capabilities

Everything an agent needs to read the web

Pluggable providers

Firecrawl, Tavily, Exa, Brave, Serper — one small factory each. Switch by changing a single line.

Always-unified results

Identical SearchResult / ScrapeResult shapes across every provider, no matter the underlying API.

Agent-ready tools

web.tools() returns a Vercel AI SDK ToolSet (web_search + web_scrape) ready for your agent.

Capability-aware

Scrape tools and methods are only exposed when the active provider actually supports them.

Lightweight

Providers use native fetch — no heavy vendor SDKs dragged into your dependency tree.

ESM + CJS + types

Ships dual builds with full TypeScript declarations. Works everywhere on Node 18+.

Quick start

From install to first search in two steps

1

Install core + a provider

The Vercel AI SDK adapter is built into core. Add ai only if you want agent tools.

terminal
2

Search the web

Pass a provider, then call the unified API. A bare string works too.

search.ts

Give your agent the whole web, one API at a time

Start with one provider and switch any time. Adding a provider or framework adapter is purely additive.