Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Give Pi Agents a safe web-search and fetch workflow using the installed pi-web-access package.
.claude/skills/sickn33-pi-web-search/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -41% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-18 | ✗→✓ | ▲ Improved | 93% | 0% |
| case-20 | ✗→✓ | ▲ Improved | -12% | 0% |
The pi-web-access package is installed globally. Zero-config via Exa MCP (no API key), with fallback Exa → Perplexity → Gemini.
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" })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.read/bash (private repos need the gh CLI). Use this for dev work.~/Downloads/, readable in sections (text-only, no OCR).GEMINI_API_KEY (not zero-config); frame extraction also needs ffmpeg/yt-dlp.Always use the web_search tool. These counts are HARD MINIMUMS — count your queries before answering and do not stop short:
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.
If the Exa → Perplexity → Gemini chain fails, or you need ranked results with URLs:
bashtest -n "$DEEPAPI_API_KEY" || { echo "DEEPAPI_API_KEY is not set"; exit 1; } curl -s --max-time 60 "https://deepapi.co/v1/search/web" \ -H "Authorization: Bearer $DEEPAPI_API_KEY" -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{"query": "your search terms", "maxResults": 5, "maxCostUsd": "0.05"}'
Results are in .output (title, url, snippet per item). Query under 500 chars. Full details: deepapi skill.
davidondrej/skills; verify local paths, tools, credentials, and agent features before acting.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→fail | 6,401 | 3,670 | -43% | 1 | 1 | 0% | 424 | 1,133 | +167% | 0 | 0 | — |
case-01 | fail→fail | 10,805 | 3,992 | -63% | 1 | 1 | 0% | 1,884 | 1,126 | -40% | 0 | 0 | — |
case-02 | fail→fail | 33,154 | 6,378 | -81% | 1 | 1 | 0% | 5,325 | 1,260 | -76% | 0 | 0 | — |
case-03 | fail→fail | 29,587 | 6,445 | -78% | 1 | 1 | 0% | 4,966 | 1,291 | -74% | 0 | 0 | — |
case-04 | fail→fail | 10,938 | 13,607 | +24% | 1 | 1 | 0% | 1,758 | 1,205 | -31% | 0 | 0 | — |
case-05 | fail→pass | 5,619 | 1,526 | -73% | 1 | 1 | 0% | 994 | 1,137 | +14% | 0 | 0 | — |
case-07 | fail→fail | 20,114 | 5,527 | -73% | 1 | 1 | 0% | 3,660 | 1,260 | -66% | 0 | 0 | — |
case-08 | pass→pass | 7,409 | 1,695 | -77% | 1 | 1 | 0% | 1,380 | 1,194 | -13% | 0 | 0 | — |
case-09 | fail→fail | 12,503 | 2,469 | -80% | 1 | 1 | 0% | 1,906 | 1,107 | -42% | 0 | 0 | — |
case-10 | fail→fail | 6,777 | 3,173 | -53% | 1 | 1 | 0% | 1,140 | 1,165 | +2% | 0 | 0 | — |
case-16 | pass→pass | 8,853 | 2,381 | -73% | 1 | 1 | 0% | 1,609 | 1,261 | -22% | 0 | 0 | — |
case-11 | pass→pass | 6,105 | 2,076 | -66% | 1 | 1 | 0% | 1,114 | 1,242 | +11% | 0 | 0 | — |
case-12 | fail→pass | 12,839 | 2,247 | -82% | 1 | 1 | 0% | 2,202 | 1,292 | -41% | 0 | 0 | — |
case-13 | fail→fail | 7,963 | 5,214 | -35% | 1 | 1 | 0% | 232 | 1,085 | +368% | 0 | 0 | — |
case-14 | fail→fail | 24,943 | 5,899 | -76% | 1 | 1 | 0% | 4,514 | 1,189 | -74% | 0 | 0 | — |
case-15 | fail→fail | 36,290 | 5,729 | -84% | 1 | 1 | 0% | 6,157 | 1,141 | -81% | 0 | 0 | — |
case-17 | fail→pass | 5,182 | 1,592 | -69% | 1 | 1 | 0% | 924 | 1,213 | +31% | 0 | 0 | — |
case-18 | fail→pass | 7,097 | 8,520 | +20% | 1 | 1 | 0% | 1,352 | 2,603 | +93% | 0 | 0 | — |
case-19 | fail→fail | 9,806 | 5,314 | -46% | 1 | 1 | 0% | 1,663 | 1,172 | -30% | 0 | 0 | — |
case-20 | fail→pass | 6,977 | 1,421 | -80% | 1 | 1 | 0% | 1,262 | 1,107 | -12% | 0 | 0 | — |
case-21 | pass→pass | 7,711 | 1,641 | -79% | 1 | 1 | 0% | 1,260 | 1,119 | -11% | 0 | 0 | — |
case-22 | pass→pass | 3,176 | 2,730 | -14% | 1 | 1 | 0% | 586 | 1,328 | +127% | 0 | 0 | — |
case-23 | pass→pass | 10,849 | 12,948 | +19% | 1 | 1 | 0% | 1,796 | 2,248 | +25% | 0 | 0 | — |
case-24 | pass→pass | 8,835 | 5,317 | -40% | 1 | 1 | 0% | 1,491 | 1,820 | +22% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 14 counted toward the lift figure. The other 10 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +21 percentage points is the difference between those two pass rates over the 14 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.