pi-web-search

pi-web-search is a skill for Claude Code, Codex from attentiondotnet/davidondrej-skills. It costs 66 tokens per session (801 once invoked), scanned A, a copy of pi-web-search, MIT.

A web-research skill for Pi Agents, using the pi-web-access package to search the web and retrieve pages, PDFs, YouTube videos, and GitHub content.

In plain words
What is it for?
Use it when a Pi task needs web searches, code or library research, URL retrieval, or content from PDFs, YouTube, or GitHub.
Why use it?
It gives Pi Agents a way to find current information, documentation, news, prices, or content from a specific URL without setting up an API key.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it when a Pi task needs web searches, code or library research, URL retrieval, or content from PDFs, YouTube, or GitHub.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/attentiondotnet/davidondrej-skills/pi-web-search
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add attentiondotnet/davidondrej-skills --skill pi-web-search
Clone the repo
git clone --depth 1 https://github.com/attentiondotnet/davidondrej-skills

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pi-web-search

README.md
[![agentmods](https://agentmods.dev/badge/skills/attentiondotnet/davidondrej-skills/pi-web-search/github.svg)](https://agentmods.dev/skills/attentiondotnet/davidondrej-skills/pi-web-search)
Your own site
<a href="https://agentmods.dev/skills/attentiondotnet/davidondrej-skills/pi-web-search"><img src="https://agentmods.dev/badge/skills/attentiondotnet/davidondrej-skills/pi-web-search/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for pi-web-search

Your own site · 80×15
<a href="https://agentmods.dev/skills/attentiondotnet/davidondrej-skills/pi-web-search"><img src="https://agentmods.dev/badge/skills/attentiondotnet/davidondrej-skills/pi-web-search.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 66 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 801 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin 92% copy Near-identical to another mod in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00066 $0.00801
Opus 5 $0.00033 $0.00400
Sonnet 5 $0.00013 $0.00160
Haiku 4.5 $0.00007 $0.00080

Measured 11d ago against content hash 7acc6f83bc1d, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

pi-web-search scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s --max-time 60 "https://deepapi.co/v1/search/web" \
Origin

This is a copy

92% identical to pi-web-search — 10 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

skills/research-and-web/pi-web-search/SKILL.md · 54 lines

How it starts

The opening of the file, as written. The whole thing — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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"at least 4 queries, totally different keywords and angles.
  • "deep research"at least 8 queries, totally different keywords and angles, run across 2–3 successive batches (refine angles after each batch), to learn as much as possible about the topic.

A single batched web_search call counts each query in queries[] toward the total. If your first batch is under the minimum, fire another batch before synthesizing.

Read the full file on GitHub · 54 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 54 lines · 66 tokens per session scan A 7acc6f83bc1d

Subscribe to this mod's changes

pi-web-search is a skill published in the GitHub repository attentiondotnet/davidondrej-skills (11 stars, last pushed 2mo ago), licensed MIT. It adds 66 tokens to every session and 801 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). It is 92% identical to pi-web-search, differing in 10 lines, and is treated as a copy.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

local-ai-agents

Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…

microsoft/ai-agents-for-beginners · 200 tokens

next-cache-components-adoption

Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…

vercel/next.js · 95 tokens

insight-error-page

Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…

vercel/next.js · 83 tokens

next-cache-components-optimizer

Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…

vercel/next.js · 170 tokens

next-partial-prefetching-adoption

Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…

vercel/next.js · 103 tokens