pi-web-kit (v0.1.6, active development) provides web_search and web_fetch tools for the Pi agent framework. It supports multiple provider backends (Exa MCP, Exa API, TinyFish, Brave Search, Firecrawl, markdown.new) with bounded output, chunked reads, URL validation, and an in-memory fetch cache. Released weekly via npm, it is ESM-only, requires Node >=20.6.0, and depends on Pi core packages (@earendil-works/pi-ai, @earendil-works/pi-coding-agent, @earendil-works/pi-tui) and typebox. Differentiators: provider-tailored schemas, configurable caching, and concurrency control.
npm install pi-web-kitNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Demonstrates basic web_search and web_fetch usage with named imports, including chunked fetch via offset/limit.
Upgrade Node to >=20.6.0.
Use static import syntax: import { ... } from 'pi-web-kit'.Install peer deps: pi install @earendil-works/pi-ai @earendil-works/pi-coding-agent @earendil-works/pi-tui typebox
Switch to provider 'exa_mcp' if possible.
After changing provider, restart or reload Pi with: pi reload
Remove credentials from URL before passing to web_fetch.
Clear cache on provider change or disable caching if needed.
Convert your project to ESM or use dynamic import(): const { web_search } = await import('pi-web-kit');Use named import: import { web_search } from 'pi-web-kit';Install peer dependency: npm install typebox
Ensure EXA_API_KEY or other required env var is set. Check provider config with: echo $EXA_API_KEY
Remove user:pass from URL. If authentication is needed, use a different mechanism such as headers.