pi-ketch-web-access
A pi extension that registers ketch CLI commands as first-class tools for web search, scraping, docs, and code search
Package details
Install pi-ketch-web-access from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-ketch-web-access- Package
pi-ketch-web-access- Version
0.1.1- Published
- Jun 17, 2026
- Downloads
- not available
- Author
- gbarcelo
- License
- MIT
- Types
- extension
- Size
- 13.6 KB
- Dependencies
- 0 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./extensions/pi-ketch-web-access.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-ketch-web-access
Unlimited web search for your AI agent. No API keys. No rate limits with SearXNG. No MCP server.
Four native tools — web_search, web_scrape, web_docs, web_code — that give your pi agent the web.
pi install npm:pi-ketch-web-access
Why Ketch? Because SearXNG
Ketch supports SearXNG as a search backend — a free, open-source metasearch engine aggregating 269 search services (Google, Bing, DuckDuckGo, Brave, Wikipedia, arXiv, and 264 more). Zero tracking. Zero profiling. No filter bubbles — unpersonalized results, not shaped by ad targeting. SearXNG also strips tracking parameters from result URLs.
Self-host it on your local machine, a $5/month VPS, or a Raspberry Pi running Docker. SearXNG gives you search across general, images, videos, news, maps, music, IT, science, and more.
- No API keys — no signups, no tokens to rotate, no billing
- No rate limits — unlimited programmatic access from your own instance. Upstream engines may throttle; results still arrive from the rest
- No filter bubble — unpersonalized results, not shaped by ad targeting
Ketch also supports Brave, DuckDuckGo, and Exa as alternative search backends (rate-limited; API keys may apply). Note: Brave is ketch's default backend — configure SearXNG to unlock unlimited self-hosted search.
Four tools. Zero friction
| Tool | What it does | When to use it |
|---|---|---|
web_search |
Search the web. Set scrape: true to find and read pages in one call |
General queries. Avoids the two-call round-trip that burns rate limits |
web_scrape |
URL → clean markdown. Auto-detects JS-rendered pages, re-fetches via headless Chrome (requires ketch browser install) |
You already have a URL. Cached results stale? noCache: true |
web_docs |
Context7 version-aware documentation lookup (free tier; API key recommended for heavy use) | Library/framework API questions. Stops hallucination from stale training data |
web_code |
grep.app search across 1M+ open-source repos | Finding real implementation patterns. Language filtering |
Every tool returns structured JSON. Every parameter is typed. Every tool ships with promptGuidelines that route the agent to the right tool without you writing a single line of prompt engineering.
Why an extension, not a skill?
Skills provide instructions; extensions register tools. This extension turns ketch CLI commands into native pi tools with typed parameters and structured output. The LLM calls them directly — no CLI syntax to fumble.
Install
Prerequisites:
- pi installed
- ketch CLI on
$PATH - (Optional)
ketch browser install— enables JS-rendered page scraping forweb_scrape - (Optional) Install and configure SearXNG — unlocks unlimited self-hosted search
Install:
pi install npm:pi-ketch-web-access
Usage
No skill configuration. No prompt engineering. Install it and the four tools are available to your agent immediately.
"What's the latest Node.js LTS release date?"
→ Agent calls web_search
"How do I use the Zod v4 transform API?"
→ Agent calls web_docs — built-in routing tells it to prefer docs over search for library questions
"Show me a real implementation of a Rust async runtime"
→ Agent calls web_code with lang: "rust" — it knows code search beats web search for implementation examples
"Scrape https://example.com and extract the pricing table"
→ Agent calls web_scrape — JS-rendered? Headless Chrome handles it automatically
"Find and summarize the top 3 articles about MCP servers"
→ Agent calls web_search with scrape: true — find and read in one call, not two