@yofriadi/pi-web-search
v1.16.11
Published
Web search extension package for pi
Maintainers
Readme
Web-Access Extension
Install from git URL
pi install git:github.com/yofriadi/pi-extensions@web-search-v<version>To load only this extension from the monorepo package source, use package filtering in settings:
{
"packages": [
{
"source": "git:github.com/yofriadi/pi-extensions@web-search-v<version>",
"extensions": ["packages/web-search/src/index.ts"]
}
]
}Standalone package extension for web fetching and search.
This extension registers:
fetch_contenttoolweb_searchtool/web-statuscommand/web-access-statuscommand (alias)
Install and Load
One-off load
pi -e ./packages/coding-agent/examples/extensions/web-accessInstall as package source
pi install ./packages/coding-agent/examples/extensions/web-accessAfter loading, run:
/web-statusKey Configuration
Environment variables (highest priority):
EXA_API_KEY(orPI_EXA_API_KEY)PERPLEXITY_API_KEY(orPI_PERPLEXITY_API_KEY)
Optional JSON config files (later entries override earlier ones):
~/.pi/web-access.json~/.pi/agent/web-access.json<project>/.pi/web-access.json- Explicit path passed to
/web-access-status <path>
Example config:
{
"exaApiKey": "your-exa-key",
"perplexityApiKey": "your-perplexity-key"
}Nested provider form is also accepted:
{
"exa": { "apiKey": "your-exa-key" },
"perplexity": { "apiKey": "your-perplexity-key" }
}Tool Usage
fetch_content
Fetches web content using a scraper registry with Jina Reader as first fallback.
For safety, fetch_content blocks private/loopback/local-network hosts (for example localhost, 127.0.0.1, 10.x.x.x, 192.168.x.x, 172.16-31.x.x, and link-local/private IPv6 ranges).
Example parameters:
{
"url": "https://bun.sh/docs",
"timeoutMs": 20000,
"maxChars": 20000,
"prefer": "jina"
}web_search
Searches via Exa (resource-heavy mode) or Perplexity (answer-heavy mode).
Example parameters:
{
"query": "Bun spawn docs",
"mode": "resources",
"provider": "auto",
"limit": 5
}Provider routing behavior:
mode=resources: prefers Exa, then Perplexitymode=answer: prefers Perplexity, then Exaprovider=exa|perplexity: force a provider (no fallback)- when provider selection is automatic, runtime failures (including
429rate limits) fall through to the next configured provider Retry-Afterhints from provider429responses are surfaced in failure/fallback messages
