Federated web context for agentsGo · CLI · v0.2.0

The web,distilledfor agents.

Search across Brave, Tavily, and Exa. Paste a useful URL and get the part an agent actually needs. Map an entire site before deciding where to look. Three verbs, one small binary.

npm i -g webctx
webctx / search live
webctx search "agent web research"
B
Brave10 results · 184ms
T
Tavily10 results · 241ms
E
Exa10 results · 207ms
ranked.md30 → 18 unique
  1. 01
    Building reliable web research agentsdocs.example.dev / research
  2. 02
    Context pipelines for tool-using modelsgithub.com / guide.md
  3. 03
    Evaluating agent search qualityexample.org / benchmarks
clean URLs merged results plain markdown
searchread-linkmap-sitesearchread-linkmap-site

01 / Why federated search

Independent agreement is a stronger relevance signal than any provider's confidence score.

No single search provider is rightoften enough.

webctx treats provider disagreement as useful information. It asks three systems the same question, normalizes their URLs, and rewards the pages they independently surface.

The result is not three pasted lists. It is one stable, deduplicated answer an agent can inspect, save, diff, and cite.

Brave Tavily Exa
docs.example.dev/agent-search
+ agreement bonus
github.com/example/research-agent
+ duplicate signal
example.org/context-tools
position score only

02 / The whole interface

Small enough to learn from --help. Broad enough for an entire research loop.

Three verbs.
Nothing ornamental.

Each command exists because a real agent workflow needed it. The output stays plain so the next tool never has to scrape the first one.

01webctx / search

Ask three search engines, not one.

Brave, Tavily, and Exa run concurrently. URLs are normalized, duplicates become agreement signals, and one deterministic ranked list comes back.

$ webctx search "durable agent runtimes"
02webctx / read-link

Paste the URL you already have.

A repository becomes an overview. A line anchor becomes those lines. A PR thread becomes that thread. An Actions job becomes that job and log. Normal pages still come back as clean text.

$ webctx read-link <url>
03webctx / map-site

Survey the terrain before reading.

Map a documentation or product site into a URL inventory, then let the agent choose which pages are worth opening.

$ webctx map-site <url>

03 / The URL already knows a lot

Keep the meaning of the link instead of flattening every page into the same scrape.

Keep the meaning of the URL.

A GitHub line link means source lines. An Issue link means a conversation. A review-thread link means one thread. A job link means one CI job. webctx recognizes those shapes first, then uses markdown or page extraction only when the URL does not already describe a cleaner resource.

See what read-link understands
01

Does the URL identify something specific?

Return that resource directlySource · conversations · diffs · history · CI jobs
preferred
02

Is clean text already available?

Use the markdown pageFast · focused · low noise
preferred
03

Does the page need rendering?

Crawl it as a fallbackRendered page → useful text
fallback
clean markdown

04 / The research loop

Terminal-native context means every output is already composable.

From a fuzzy question to reusable evidence.

01

Find

Search broadly or map the site first.

02

Open

Pass the useful URL to read-link.

03

Narrow

Keep line, comment, review, diff, or job URLs when you have them.

04

Reuse

Pipe, save, quote, or hand the markdown to an agent.

05 / Documentation

Pick a task.
Copy an example.

Start with task-focused examples. When you want the technical model, the How it works guides explain automatic URL fast paths and federated search ranking without turning into a code walkthrough.

Browse every guide

Ready when your agent is

Give it a better view of the web.

npm i -g webctx
Read the quickstart