anysearch
Probe first. Extract only what earns the context.
<cmd> = python3 <skill-dir>/scripts/anysearch.py
Core loop
- Choose the smallest rung in the effort ladder that can satisfy the user.
- Run the probe in compact form unless the rung says otherwise.
- Stop when the completion column is met; otherwise extract selected URLs or
move one rung up.
- Answer from extracted/source evidence, not from raw result lists, when the
user needs supportable claims.
- If access fails from auth, quota, rate limit, or no active key, run the key
recovery branch and then repeat the original smallest suitable probe.
Hard constraints:
full is not a discovery default. Use it only for extract or a one-result
quick answer.
extract follows selection. Do not deep-read every search result by habit.
- Vertical search starts with live schema: never invent
sub_domain or --sdp.
Effort ladder
| User need |
Rung |
Do |
Completion criterion |
| Quick lookup, sanity check, or “what exists?” |
Light probe |
search --format compact --max-results 5 |
The visible titles/URLs directly answer the user or expose enough candidates to choose the next move. |
| Answer needs citations, comparison of sources, or source quality |
Standard probe |
search --format compact --max-results 8 → extract 1–3 winners |
Each factual claim in the answer is grounded in an extracted or clearly named source. |
| Titles do not reveal relevance |
Sample probe |
search --format snippet --max-results 3 --max-chars 500 |
You can choose winners, reformulate the query, or stop because the candidates are visibly irrelevant. |
| Landscape, tradeoffs, trends, competitors, strategy, or “what do people think?” |
Deep probe |
batch_search with 3–5 distinct queries, compact, --max-results 5 → extract 3–5 distinct winners |
The answer covers each angle; duplicate URLs are not re-read. |
| Ticker, DOI, CVE, package, code, flight, legal, medical, finance, or other structured identifier |
Vertical probe |
get_sub_domains → search --domain ... --sub_domain ... --sdp ... |
Required params came from live schema and the query uses the matching vertical. |
| User asks for one top answer and narrow evidence is acceptable |
Quick full |
search --format full --max-results 1 |
The top result is authoritative enough; if it looks wrong or thin, fall back to Standard. |
Commands
# Light probe
<cmd> search "Cloudflare Workers 2026" --format compact --max-results 5
# Standard probe: discover, then deep-read selected winners
<cmd> search "WebGPU browser support 2025" --format compact --max-results 8
<cmd> extract "https://developer.mozilla.org/en-US/docs/Web/API/WebGPU_API"
# Sample probe: peek before committing to extraction
<cmd> search "Rust async runtime comparison" --format snippet --max-results 3 --max-chars 500
# Deep probe: compare several angles without rereading duplicate URLs
<cmd> batch_search \
--query "Cloudflare Workers deployment" \
--query "Cloudflare Workers observability" \
--query "Cloudflare Workers pricing" \
--format compact --max-results 5
# Quick full: one result, full content
<cmd> search "current US inflation rate" --format full --max-results 1
# Vertical probe: schema first, then structured search
<cmd> get_sub_domains --domains finance,code
<cmd> search "AAPL" --domain finance --sub_domain finance.quote \
--sdp type=stock,symbol=AAPL,cn_code= --format compact --max-results 3
Options used most often:
--format compact|snippet|full — search/batch default compact; extract default full.
--max-results N / --max_results N / -m N — cap results, max 10.
--max-chars N — snippet character budget, default 500.
--no-dedup — keep duplicate URLs only when duplicates are meaningful.
--domain, --sub_domain, --sdp — vertical controls; call get_sub_domains first.
--reader auto|local|remote|anysearch — extract body backend. auto
(default) prefers local readability when installed, else tries remote
readers in series, else the AnySearch API; anysearch forces the API. See
references/payload-control.md.
--sdp accepts key=value pairs or JSON. Params marked required must all be
passed; if a required value is unavailable, pass an empty string (key=) rather
than omitting the key.
Key recovery branch
Normal searches use anonymous access or the saved key pool automatically.
auto_register is on by default: if no active key can serve a probe, the
CLI creates a throwaway account and key for you and stores them locally — so
most access failures self-heal without agent action. Step in only when that
itself fails or the user wants to manage keys:
- Run
<cmd> keys status to see the pool.
- If auto-register failed or the user wants explicit control, run
<cmd> register, or keys config --auto_register false to turn the
default off, then retry.
- Repeat the original smallest suitable probe.
- Never print full API keys in the final answer.
For key paths, rotation, manual seeding, and persistent auto-register, read
references/keys.md.
References
- Payload controls: references/payload-control.md
- Key pool details: references/keys.md
- Static vertical catalog: references/domains.md
Call get_sub_domains live when vertical precision matters; the static catalog
is only a convenience snapshot.
1---2name: anysearch3description: Probe the web with AnySearch when current facts, source discovery, URL extraction, multi-angle comparison, or live vertical schemas are needed. Use a compact probe first, extract selected URLs only when evidence is needed, and recover through the key pool on auth/quota failures.4---56# anysearch78**Probe first. Extract only what earns the context.**910`<cmd>` = `python3 <skill-dir>/scripts/anysearch.py`1112## Core loop13141. Choose the smallest rung in the effort ladder that can satisfy the user.152. Run the probe in compact form unless the rung says otherwise.163. Stop when the completion column is met; otherwise extract selected URLs or17 move one rung up.184. Answer from extracted/source evidence, not from raw result lists, when the19 user needs supportable claims.205. If access fails from auth, quota, rate limit, or no active key, run the key21 recovery branch and then repeat the original smallest suitable probe.2223Hard constraints:2425- `full` is not a discovery default. Use it only for `extract` or a one-result26 quick answer.27- `extract` follows selection. Do not deep-read every search result by habit.28- Vertical search starts with live schema: never invent `sub_domain` or `--sdp`.2930## Effort ladder3132| User need | Rung | Do | Completion criterion |33|---|---|---|---|34| Quick lookup, sanity check, or “what exists?” | **Light probe** | `search --format compact --max-results 5` | The visible titles/URLs directly answer the user or expose enough candidates to choose the next move. |35| Answer needs citations, comparison of sources, or source quality | **Standard probe** | `search --format compact --max-results 8` → `extract` 1–3 winners | Each factual claim in the answer is grounded in an extracted or clearly named source. |36| Titles do not reveal relevance | **Sample probe** | `search --format snippet --max-results 3 --max-chars 500` | You can choose winners, reformulate the query, or stop because the candidates are visibly irrelevant. |37| Landscape, tradeoffs, trends, competitors, strategy, or “what do people think?” | **Deep probe** | `batch_search` with 3–5 distinct queries, compact, `--max-results 5` → extract 3–5 distinct winners | The answer covers each angle; duplicate URLs are not re-read. |38| Ticker, DOI, CVE, package, code, flight, legal, medical, finance, or other structured identifier | **Vertical probe** | `get_sub_domains` → `search --domain ... --sub_domain ... --sdp ...` | Required params came from live schema and the query uses the matching vertical. |39| User asks for one top answer and narrow evidence is acceptable | **Quick full** | `search --format full --max-results 1` | The top result is authoritative enough; if it looks wrong or thin, fall back to Standard. |4041## Commands4243```bash44# Light probe45<cmd> search "Cloudflare Workers 2026" --format compact --max-results 54647# Standard probe: discover, then deep-read selected winners48<cmd> search "WebGPU browser support 2025" --format compact --max-results 849<cmd> extract "https://developer.mozilla.org/en-US/docs/Web/API/WebGPU_API"5051# Sample probe: peek before committing to extraction52<cmd> search "Rust async runtime comparison" --format snippet --max-results 3 --max-chars 5005354# Deep probe: compare several angles without rereading duplicate URLs55<cmd> batch_search \56 --query "Cloudflare Workers deployment" \57 --query "Cloudflare Workers observability" \58 --query "Cloudflare Workers pricing" \59 --format compact --max-results 56061# Quick full: one result, full content62<cmd> search "current US inflation rate" --format full --max-results 16364# Vertical probe: schema first, then structured search65<cmd> get_sub_domains --domains finance,code66<cmd> search "AAPL" --domain finance --sub_domain finance.quote \67 --sdp type=stock,symbol=AAPL,cn_code= --format compact --max-results 368```6970Options used most often:7172- `--format compact|snippet|full` — search/batch default `compact`; extract default `full`.73- `--max-results N` / `--max_results N` / `-m N` — cap results, max 10.74- `--max-chars N` — snippet character budget, default 500.75- `--no-dedup` — keep duplicate URLs only when duplicates are meaningful.76- `--domain`, `--sub_domain`, `--sdp` — vertical controls; call `get_sub_domains` first.77- `--reader auto|local|remote|anysearch` — `extract` body backend. `auto`78 (default) prefers local readability when installed, else tries remote79 readers in series, else the AnySearch API; `anysearch` forces the API. See80 [references/payload-control.md](references/payload-control.md).8182`--sdp` accepts `key=value` pairs or JSON. Params marked required must all be83passed; if a required value is unavailable, pass an empty string (`key=`) rather84than omitting the key.8586## Key recovery branch8788Normal searches use anonymous access or the saved key pool automatically.89`auto_register` is **on by default**: if no active key can serve a probe, the90CLI creates a throwaway account and key for you and stores them locally — so91most access failures self-heal without agent action. Step in only when that92itself fails or the user wants to manage keys:93941. Run `<cmd> keys status` to see the pool.952. If auto-register failed or the user wants explicit control, run96 `<cmd> register`, or `keys config --auto_register false` to turn the97 default off, then retry.983. Repeat the original smallest suitable probe.994. Never print full API keys in the final answer.100101For key paths, rotation, manual seeding, and persistent auto-register, read102[references/keys.md](references/keys.md).103104## References105106- Payload controls: [references/payload-control.md](references/payload-control.md)107- Key pool details: [references/keys.md](references/keys.md)108- Static vertical catalog: [references/domains.md](references/domains.md)109110Call `get_sub_domains` live when vertical precision matters; the static catalog111is only a convenience snapshot.