Skip to content

v3.1.0 — Dependency updates: CloakBrowser 0.5.5, Playwright Core 1.62.1

Choose a tag to compare

@Johell1NS Johell1NS released this 07 Aug 08:49
· 5 commits to master since this release
4425214

How to update an existing installation

npx skills update refreshes the skill files only (SKILL.md, scripts).
The npm dependencies are updated separately with npm install, from the
directory where the skill (or repo) is installed.

Common cases:

  • Installed via npx skills add — update skill files, then deps:

    npx skills update
    cd ~/.config/opencode/skills/browser-search   # your skill dir
    npm install
  • Cloned the repository — pull the new code, then refresh deps:

    cd browser-search
    git pull
    npm install
  • Docker services (SearXNG, Camofox) — pull the updated image and
    recreate the container; the exact command depends on your setup.

Verify with bash scripts/check.sh. If in doubt, show this release note
to your AI agent — it will adapt the steps to your installation.


Dependency updates: CloakBrowser 0.5.5, Playwright Core 1.62.1

The skill's npm dependencies are updated to the latest CloakBrowser and Playwright Core releases, with cross-platform compatibility (Linux, Windows, macOS) and better error diagnosis.

Dependencies

  • cloakbrowser ^0.4.12 → ^0.5.5 — adds Linux arm64 binary support (Raspberry Pi) and Windows fixes.
  • playwright-core 1.60.0 → 1.62.1.
  • Added mmdb-lib and socks-proxy-agent (optional peer deps of CloakBrowser 0.5.x, required for --geoip and SOCKS proxies).
  • npm audit: 0 vulnerabilities.

Fixes

  • scripts/check.sh — cloak_version() no longer relies on require('cloakbrowser/package.json'), which CloakBrowser 0.5.x no longer exports (ERR_PACKAGE_PATH_NOT_EXPORTED). It now reads the version from disk.
  • cloak-fetch.mjs / cloak-script.mjs — catch CloakBrowserLicenseError (session limit / license) and exit with code 2 and a license: true flag instead of a generic error.

Documentation

Version note in README + 12 i18n translations, covering Linux arm64 support and the known Windows + Pro license issue (CloakHQ/CloakBrowser#479, workaround --license-through-proxy).

All skill features were re-tested with the new versions (SearXNG search, smart-extract, cloak-fetch, cloak-script, camofox tabs, check.sh).

See pull request #24 and issue #23.


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_DELAY env var, 0 disables it).
  • Legacy format search "<query>" [flags] is unchanged (backward compatible).
  • Mixing a positional query with --query groups 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.