AnySearch skill mascot — probe the web, extract what matters
Agent-friendly AnySearch for coding agents: a Pi/Codex-style skill plus a bundled stdlib-only CLI that keeps web discovery cheap, then deep-reads only the sources worth putting in context.
Probe first. Extract only what earns the context.
npx skills add catoncat/anysearch-skill --yes --global
Update an existing install:
npx skills update catoncat/anysearch-skill --yes --global
After install or update, the skill payload is copied to:
~/.agents/skills/anysearch/
Important files:
~/.agents/skills/anysearch/SKILL.md
~/.agents/skills/anysearch/scripts/anysearch.py
~/.agents/skills/anysearch/references/
Quick verification:
CMD="python3 ~/.agents/skills/anysearch/scripts/anysearch.py" $CMD --help $CMD search "Cloudflare Workers 2026" --format compact --max-results 5
The CLI runs with zero pip dependencies. For faster, private extract with
no external round-trip, install the readability executable — the skill detects
it on PATH automatically:
# needs Node; outputs clean Markdown (recommended) npm i -g defuddle # (or just run `npx defuddle` once to fill the npm cache, no global install)
No config change needed. Without it, extract falls back to hosted readers
(r.jina.ai, then defuddle.md in series), then the AnySearch API. Each remote
reader fires only if the prior one fails, so a normal extract costs at most one
reader's quota.
How the chain fits together — local is the default main path (usually
lands clean); the rest is a fallback safety net, with the AnySearch API as the
degraded last resort (the only rung that still returns chrome):
extract reader fallback chain — local is the main path, API is the last-resort dirty path
See references/payload-control.md for
the full --reader backend table.
CMD="python3 ~/.agents/skills/anysearch/scripts/anysearch.py"Light discovery
$CMD search "Cloudflare Workers 2026" --format compact --max-results 5
Deep-read a selected URL
$CMD extract "https://developers.cloudflare.com/workers/"
Compare several angles
$CMD batch_search \ --query "Cloudflare Workers deployment" \ --query "Cloudflare Workers observability" \ --query "Cloudflare Workers pricing" \ --format compact --max-results 5
Vertical search (schema first)
$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
Keys when anonymous access is not enough
By default, if no active key can serve a request, the CLI auto-registers a
throwaway account and creates a key for you (auto_register is on out of the
box). This keeps the first run frictionless — you can search and extract
without manually signing up — but it does mean a real account + API key are
created and stored in your local key-state file on the first probe that needs
one. If you'd rather stay anonymous or control signups yourself:
# turn auto-register off (persists) $CMD keys config --auto_register false # then register explicitly only when you choose to $CMD register # or pass it per-call $CMD --auto_register search "current US inflation rate" --format compact
The key never leaves your machine; see Key state below for where
it is stored and how to inspect/prune the pool ($CMD keys status,
$CMD keys prune).
This repository does not replace the official AnySearch service or API. It wraps AnySearch for agents that need predictable, low-context web research.
| What you get | Why it matters |
|---|---|
| Probe → extract | Search/batch discover; extract deep-reads winners only. |
| Compact by default | Rank, title, URL unless you ask for snippets or full text. |
| Payload controls | --format compact|snippet|full, --max-chars, dedup, size headers. |
| Bundled CLI | anysearch.py — stdlib only, no pip install. |
| Key pool recovery | Saved keys, rotation, register, --auto_register. |
| Live vertical schema | get_sub_domains before guessing sub_domain / --sdp. |
Runtime key state is local to your account (not in the skill install dir):
macOS: ~/Library/Application Support/anysearch/keys-state.json
Linux: ${XDG_CONFIG_HOME:-~/.config}/anysearch/keys-state.json
Windows: %APPDATA%\AnySearch\keys-state.json
Override:
ANYSEARCH_CONFIG_DIR=/custom/path $CMD keys statusNever commit real API keys. anysearch/keys-state.example.json is schema-only.
| Path | Role |
|---|---|
anysearch/SKILL.md |
Agent-facing process |
anysearch/scripts/anysearch.py |
Bundled CLI |
anysearch/references/ |
Payload, keys, domains docs |
assets/anysearch-banner.png |
README banner art |
MIT