@everyx/pi-web-tools
Web primitives for pi — search and URL fetch (URL → Markdown). Multi-provider search with keyless-first quota escalation and a real-browser fallback fuse.
Package details
Install @everyx/pi-web-tools from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@everyx/pi-web-tools- Package
@everyx/pi-web-tools- Version
1.2.4- Published
- Sep 11, 2026
- Downloads
- 1,482/mo · 243/wk
- Author
- every.x
- License
- MIT
- Types
- extension
- Size
- 116.1 KB
- Dependencies
- 6 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-web-tools
Web primitives for Pi — web_search + web_fetch.
web_search— search the web. Requests route across HTTP search providers in fuse order — TinyFish (free, unlimited) → Exa → Tavily → Firecrawl (Google-backed; keyless first, key only as escalation) — with automatic failover; a real-browser engine (Google, Baidu for Chinese via BrowserSkill) is the last-resort no-key fuse. Five params:query,recency?,allowed_domains?,blocked_domains?,locale?. Results follow the query's language;localeis the explicit market/language boost. No engine param — routing is invisible to the LLM.web_fetch— fetch a URL: HTML pages convert to Markdown by default (LLM / token friendly), passraw: trueto get the source HTML as-is. Non-HTML (SVG/JSON/text — anything textual) is always returned as-is; oversized non-web content is stashed to /tmp with a pointer instead of an inline preview (the LLM pages through it viaread). Images (image/*, except SVG) are returned as multimodal image blocks — rendered inline in the TUI and consumed by the model directly. The response Content-Type travels in the result metadata. Direct fetches wake the systemcurlCLI (identity = a real curl of this machine — TLS, headers, HTTP/1.1 all native, nothing mimicked), with a pinned-curl-UA fallback on curl-less systems; anti-bot / JS-rendered pages advance to the fuse (tinyfish fetch → real browser).
Two primitives, nothing else — no content storage, no curator, no PDF/video extraction.
Install
pi install npm:@everyx/pi-web-tools
Usage
Search the web for the pi extension API docs
Fetch https://github.com/earendil-works/pi/blob/main/README.md and summarize it
Configuration
| Variable | Meaning |
|---|---|
TINYFISH_API_KEY |
Enable the TinyFish channel (free, unlimited volume, 30 req/min) — the primary channel. |
EXA_API_KEY |
Exa keyed mode (full params). Without it Exa still runs keyless via MCP (bare queries, 3 qps / 150 calls per day). |
TAVILY_API_KEY |
Enable the Tavily channel (1,000 credits/month free). |
FIRECRAWL_API_KEY |
Firecrawl keyed escalation. Without it the channel runs keyless (free, per-IP daily caps). Never touched while keyless quota lasts — the pool is shared with pi-read-doc's OCR. |
Zero keys still works: keyless Exa + keyless Firecrawl, with the real-browser fuse behind them. The real-browser channel uses BrowserSkill (bsk CLI); install it separately.
Notes
- Not compatible with pi-web-access: both register a
web_searchtool. Uninstall one of them. - Design intent and requirements:
SPEC.md.