| name | pi-web-search |
| description | Give Pi Agents a safe web-search and fetch workflow using the installed pi-web-access package. |
| category | research |
| risk | safe |
| source | community |
| source_repo | davidondrej/skills |
| source_type | community |
| date_added | 2026-07-07 |
| author | davidondrej |
| tags | ["web-search","pi-agent","research"] |
| tools | ["claude","codex"] |
| license | MIT |
| license_source | https://github.com/davidondrej/skills/blob/main/LICENSE |
Web Search
When to Use
- Use when a Pi Agent task needs current web information, page fetches, PDFs, YouTube, or GitHub content.
- Use when Pi should use its own web-access package instead of another agent browser tool.
The pi-web-access package is installed globally. Zero-config via Exa MCP (no API key), with fallback Exa → Perplexity → Gemini.
CRITICAL: always pass workflow: "none"
Every web_search call MUST include workflow: "none". This skips the interactive browser curator popup (the user does not want it opening). No exceptions — single query or batched queries, always set workflow: "none".
web_search({ queries: ["query 1", "query 2"], workflow: "none" })
Tools
web_search — search the web; returns synthesized answers with citations. Can be called many times per turn. Always pass workflow: "none".
code_search — zero-key Exa code-context. Use for library/API/code lookups instead of generic web_search.
fetch_content — fetch URL(s) → markdown; handles PDFs, YouTube, GitHub.
get_search_content — big pages (>30k chars) are truncated in responses but stored in full; call this to pull the rest on demand so they don't blow context.
fetch_content specifics
- GitHub URLs are cloned, not scraped — you get real files + a local path to explore with
read/bash (private repos need the gh CLI). Use this for dev work.
- PDFs → auto-extracted to markdown in
~/Downloads/, readable in sections (text-only, no OCR).
- YouTube/video → full raw transcripts + frame extraction. Needs a
GEMINI_API_KEY (not zero-config); frame extraction also needs ffmpeg/yt-dlp.
Routing — match the user's phrasing
Always use the web_search tool. These counts are HARD MINIMUMS — count your queries before answering and do not stop short:
- "web search" → at least 2 queries, varied keywords/angles, then synthesize.
- "extensive web research" → queries, totally different keywords and angles.