pi-web-search
Provider-native web search for pi: Gemini + URL Context, OpenAI Responses (Azure/Codex/Copilot), and Anthropic
Package details
Install pi-web-search from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-web-search- Package
pi-web-search- Version
1.4.0- Published
- Sep 2, 2026
- Downloads
- 16K/mo · 3,409/wk
- Author
- ttttmr
- License
- MIT
- Types
- extension
- Size
- 71 KB
- Dependencies
- 0 dependencies · 4 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-web-search
Provider-native web search for pi with Gemini + URL Context, OpenAI Responses variants, and Anthropic.
Tools
web_search
Search the web using your currently selected model. Automatically picks the right provider API:
| Provider | API |
|---|---|
| Google Gemini | Grounding with Google Search |
| OpenAI | Responses API web search |
| Azure OpenAI | Responses API web search (azure-openai-responses) |
| OpenAI Codex | Codex Responses API web search (openai-codex-responses) |
| GitHub Copilot | OpenAI Responses API web search via Copilot credentials |
| Anthropic | Messages API web search |
GitHub Copilot OpenAI Responses models are supported, including Business and Enterprise seats whose API endpoint is resolved from their authenticated Copilot credentials. This includes models such as gpt-5.6-sol.
Supports passing up to 20 additional URLs to analyze alongside the query. Successful web_search results are collapsed by default in pi; expand the tool call to inspect the full answer and source details.
url_context
Gemini-only. Analyze up to 20 public URLs — web pages, documents, images, and YouTube videos. Uses Gemini's native URL Context retrieval with verified metadata.
When using google-generative-ai, YouTube URLs are passed as file_data for native video understanding.
Install
pi install npm:pi-web-search
Usage
No extra config needed. Select a supported current model in pi and the tools auto-detect the matching provider API.
web_search will not scan configured models and pick one automatically when the current model does not support native search. To use a dedicated search model, opt in explicitly with ~/.pi/agent/web-search.json:
{
"provider": "openai",
"model": "gpt-5.1"
}
When this file exists, web_search uses the configured provider/model first. If it is missing, web_search uses the current conversation model. If the selected model does not support native search, the tool returns an error instead of falling back.
url_context is automatically removed from active tools when using a non-Gemini model.
Test
cp .env.example .env # edit with your models
npm test # unit tests
npm run test:real:web-search
npm run test:real:url-context
License
MIT