v3.0.3 — SearXNG multi-query mode with rate limiting
When the agent needs several searches, it now groups them into a single command instead of launching rapid-fire separate queries that could look like bot traffic to the search engines.
exec node <skill_dir>/scripts/searxng/searxng.mjs search \
--query "<q1>" --time-range month \
--query "<q2>" --lang it \
--query "<q3>"- Each query can carry its own flags (
--lang,--categories,--time-range,--engines,--page). - Queries run in series with a 3s gap between them (configurable via
SEARXNG_QUERY_DELAYenv var,0disables it). - Legacy format
search "<query>" [flags]is unchanged (backward compatible). - Mixing a positional query with
--querygroups fails with a clear message. - Output: 1 query → previous schema; n queries →
{ ok, searches: [...] }. - SKILL.md documents the multi-query example and the rate-limit note; the env var is documented in
data/advanced-browsing-reference.md.
See pull request #22 and issue #21.
v3.0.2 — Rendered-text fallback in smart-extract
On JS-only or slow-rendering pages, the exploratory extraction could return only a partial shell, flagged as too short below the --min-chars threshold. smart-extract.mjs now has a deterministic fallback: when both Camofox Readability and Snapshot come up too short, it re-opens the page with --wait and reads the rendered text via document.body.innerText. The threshold still applies to the result, so genuinely empty pages keep failing.
Generic (works on any page), deterministic (no agent judgment needed), and zero overhead in the happy path.
See pull request #20 and issue #19.
v3.0.1 — SearXNG auto-recovery
When the SearXNG container is down, searxng.mjs search now recovers automatically: it finds the container exposing port 8080, restarts it, waits for it to come back up, and retries the search once. No manual intervention, no fixed container name — works on any installation. Fails safe with the previous error message if no container is found.
See pull request #18 and issue #17.
Data freshness rule
The skill now has a Freshness rule in its Core rules: for time-sensitive questions (benchmarks, prices, news, releases, versions), the agent searches for updated sources aligned with the topic, using the --time-range flag in SearXNG to prefer recent results.
v3.0.0 — smart-extract automatic orchestration
What's new
Automatic content extraction
The agent no longer has to choose between Camofox and Cloak: smart-extract.mjs handles the decision automatically. Pass one or more URLs, and the script tries Camofox first, escaping to Cloak only when needed.
Skill easier to read at zero context
Each tool now has an explicit goal. The old Camofox and Cloak sections have been consolidated into a quick reference with a link to a separate reference guide. The agent understands what to use and when at a glance.
Built-in feedback loop
After extracting content, the skill guides the agent to evaluate whether the data is enough; if not, it loops back to SearXNG with refined queries.
Separate advanced reference
Screenshots, interactive tabs, proxy, session management — anything not needed in daily research is documented in data/advanced-browsing-reference.md, loaded only when needed.
Reliable expression results
JS expressions returning objects or DOM elements are automatically converted to JSON or text — no more [object Object] in the output.
Automatic quality checks
If the extracted content is too short or empty, the script reports it immediately instead of passing it through as valid.
Technical details
For the full list of changes and tests, see pull request #16.