Not in the top 1,000 by GitHub stars
Johell1NS/browser-search
A skill for AI agents: search the web with SearXNG, browse with Camofox, bypass protections with CloakBrowser. Anti-hallucination by design. Self-hosted, free, unlimited.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Oct 26, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
81c40250aeb2 → 81c40250aeb2
Heat
5.2- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
browser-search
When your agent uses it
Multi-engine web search (SearXNG) + browsing/scraping (Camofox, CloakBrowser). Use whenever you need to do web research.
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
2,777 tokensWhen the skill is activated
Reference documents
75,755 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What it does
- Core rules
- Tools
- Technical reference — Prerequisites & Docker containers
Scripts executed separately
package.jsonscripts/audit.shscripts/camofox/Readability.jsscripts/camofox/camofox-client.mjsscripts/camofox/camofox.mjsscripts/check.shscripts/cloak/challenges.mjsscripts/cloak/cloak-fetch.mjsscripts/cloak/cloak-script.mjsscripts/cloak/lib/__tests__/sandbox.test.mjsscripts/cloak/lib/__tests__/url-validation.test.mjsscripts/cloak/lib/credentials.mjsscripts/cloak/lib/rate-limiter.mjsscripts/cloak/lib/sandbox.mjsscripts/cloak/lib/session.mjsscripts/cloak/lib/url-validation.mjsscripts/cloak/scripts/screenshot.mjsscripts/searxng/searxng.mjsscripts/setup.shscripts/smart-extract.mjs
Files
.gitignoreasset477 bytes.npmrcasset103 bytesFAQ.mddoc9,666 bytesLICENSEasset1,076 bytesREADME.mddoc21,640 bytesSKILL.mdcore11,354 bytesSKILL.mdcore11,354 bytesSKILL.mdcore11,354 bytesSKILL.mdcore11,354 bytesSKILL.mdcore11,354 bytesSKILL.mdcore11,354 bytesSKILL.mdcore11,354 bytesdata/advanced-browsing-reference.mddoc6,735 bytesdocker/setup.mddoc4,363 bytesi18n/README.ar.mddoc26,602 bytesi18n/README.de.mddoc22,512 bytesi18n/README.es.mddoc22,159 bytesi18n/README.fr.mddoc22,933 bytesi18n/README.hi.mddoc38,253 bytesi18n/README.it.mddoc21,809 bytesi18n/README.ja.mddoc25,787 bytesi18n/README.ko.mddoc23,253 bytesi18n/README.pt-BR.mddoc21,908 bytesi18n/README.ru.mddoc31,208 bytesi18n/README.zh-CN.mddoc20,272 bytesimg/logoLarge-browser-search.pngasset461,210 bytesimg/logoMedium-browser-search.pngasset160,334 bytesimg/logoSmall-browser-search.pngasset91,705 bytespackage-lock.jsonasset7,244 bytespackage.jsonruns334 bytesscripts/audit.shruns10,707 bytesscripts/camofox/Readability.jsruns89,980 bytesscripts/camofox/Readability.js.sha256asset65 bytesscripts/camofox/camofox-client.mjsruns6,450 bytesscripts/camofox/camofox.mjsruns22,692 bytesscripts/check.shruns6,497 bytesscripts/cloak/challenges.mjsruns7,023 bytesscripts/cloak/cloak-fetch.mjsruns11,215 bytesscripts/cloak/cloak-script.mjsruns8,506 bytesscripts/cloak/guida-fetch.mddoc3,870 bytesscripts/cloak/lib/__tests__/sandbox.test.mjsruns3,935 bytesscripts/cloak/lib/__tests__/url-validation.test.mjsruns5,746 bytesscripts/cloak/lib/credentials.mjsruns1,901 bytesscripts/cloak/lib/rate-limiter.mjsruns2,489 bytesscripts/cloak/lib/sandbox.mjsruns3,045 bytesscripts/cloak/lib/session.mjsruns5,580 bytesscripts/cloak/lib/url-validation.mjsruns5,351 bytesscripts/cloak/scripts/screenshot.mjsruns1,034 bytesscripts/searxng/searxng.mjsruns11,105 bytesscripts/setup.shruns2,633 bytesscripts/smart-extract.mjsruns23,162 bytes
Read SKILL.md
# Browser Search
## What it does
Web search and browsing for AI agents. Three tools, from lightest to most powerful: SearXNG for search, Camofox for browsing, CloakBrowser for protected sites.
| Tool | When to use | How |
| ---------------------------- | --------------------------------------------- | --------------------------------------------------------- |
| **SearXNG** (Docker, :8080) | Default: Multi-source search, find URLs/info | `exec` + `node <skill_dir>/scripts/searxng/searxng.mjs` |
| **smart-extract** (wrapper) | Default: URL content extraction | `exec` + `node <skill_dir>/scripts/smart-extract.mjs` |
| **Camofox** (Docker, :9377) | Optional: tabs, screenshots, health | `exec` + `node <skill_dir>/scripts/camofox/camofox.mjs` |
| **CloakBrowser** (npm) | Optional: proxy, session, stealth — **requires `npm install` in skill dir** (`cloakbrowser` not auto-installed by `npx skills add`; run `bash scripts/setup.sh` or `npm install` + `node -e "import('cloakbrowser').then(c=>c.ensureBinary())"`) | `exec` + `node <skill_dir>/scripts/cloak/cloak-fetch.mjs` |
## Core rulesView the complete source on GitHubSkills included
- browser-search
Repository facts
- License
- MIT
- Created
- Jun 22, 2026
- Last pushed
- Oct 22, 2026
- Forks
- 42
- Open issues
- 1
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 6 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: docker/setup.md:58
- 620 network referencesin 33 files: package-lock.json:17 scripts/cloak/lib/__tests__/url-validation.test.mjs:34 README.md:7 and 30 more
- No hidden or obfuscated text
- No instruction overrides
- 20 executable scriptsin 20 files: package.json:1 scripts/audit.sh:1 scripts/camofox/Readability.js:1 and 17 more
- 49 references to secretsin 20 files: scripts/camofox/camofox-client.mjs:8 docker/setup.md:11 .gitignore:5 and 17 more
- No requests to vote in Hot
Show all 690 signals by file
.gitignore
.npmrc
FAQ.md
- Network accessline 209
For SearXNG Docker, set `SEARXNG_HOST=127.0.0.1` in `searxng/.env` so the search API is not exposed on `0.0.0.0` (see [SearXNG docker docs](https://docs.searxng.org/admin/installation-docker.html)). - Network accessline 210
search API is not exposed on `0.0.0.0` (see [SearXNG docker docs](https://docs.searxng.org/admin/installation-docker.html)).
README.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 42
1. **[SearXNG](https://github.com/searxng/searxng)** — metasearch engine for the search phase (multi-source, JSON) - Network accessline 43
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — browser navigable via REST API for standard sites - Network accessline 44
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — stealth browser for anti-bot protected sites - Network accessline 185
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 186
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 188
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 189
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 191
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 192
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 210
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 211
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 213
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 214
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 254
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 255
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 256
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 257
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 291
git clone https://github.com/Johell1NS/browser-search - Network accessline 305
| Service | How | Reference | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 306
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 307
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 308
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 325
- Keep it local: bind SearXNG to `127.0.0.1` (`SEARXNG_HOST=127.0.0.1` in `.env`). - Valkey/Redis is **not needed** by the skill (SearXNG uses it only for the limiter, which stays off). - If SearXNG is not at `http://127.0.0.1:8080`, set `S - Network accessline 327
- If SearXNG is not at `http://127.0.0.1:8080`, set `SEARXNG_URL`. - Access to secretsline 347
[Credential-related source omitted] - Access to secretsline 372
[Credential-related source omitted]
SKILL.md
- Network accessline 125
# 1. Exploratory: read page content exec node <skill_dir>/scripts/smart-extract.mjs "https://example.com" - Network accessline 126
exec node <skill_dir>/scripts/smart-extract.mjs "https://example.com" - Network accessline 128
# 2. Expression: extract specific data (only after reading the page) exec node <skill_dir>/scripts/smart-extract.mjs "https://example.com" --expr "document.querySelector('h1')?.textContent" - Network accessline 129
exec node <skill_dir>/scripts/smart-extract.mjs "https://example.com" --expr "document.querySelector('h1')?.textContent" - Network accessline 155
exec node <skill_dir>/scripts/smart-extract.mjs --fallback "https://url1" "https://url2" "https://url3"
data/advanced-browsing-reference.md
- Access to secretsline 69
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Network accessline 91
# Raw HTML exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://example.com" --format html - Network accessline 92
exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://example.com" --format html - Network accessline 94
# Markdown (preserves headings, lists, links) exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 95
exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 101
exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://ebay.com/..." --scroll - Network accessline 109
exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --session - Network accessline 117
exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://..." --proxy "socks5://user:pass@proxy:1080" --geoip - Network accessline 125
exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://..." --seed 12345 --platform windows - Network accessline 131
exec node <skill_dir>/scripts/cloak/cloak-fetch.mjs "https://..." --retry 3 --timeout 60000 --wait 5000 - Network accessline 139
exec node <skill_dir>/scripts/cloak/cloak-script.mjs --script "<skill_dir>/scripts/cloak/scripts/screenshot.mjs" "https://example.com" - Network accessline 160
|---|---|---| | `SEARXNG_QUERY_DELAY` | Pausa in ms tra query consecutive della modalità multi-query; `0` la disattiva | `3000` | | `SEARXNG_URL` | Indirizzo di SearXNG (anche con `/search` finale). Se impostata, lo script non riavvia nessu - Network accessline 161
| `SEARXNG_QUERY_DELAY` | Pausa in ms tra query consecutive della modalità multi-query; `0` la disattiva | `3000` | | `SEARXNG_URL` | Indirizzo di SearXNG (anche con `/search` finale). Se impostata, lo script non riavvia nessun container in - Network accessline 162
| `SEARXNG_URL` | Indirizzo di SearXNG (anche con `/search` finale). Se impostata, lo script non riavvia nessun container in caso di errore | `http://127.0.0.1:8080` |
docker/setup.md
- Network accessline 9
# SearXNG (via docker-compose) # Follow: https://docs.searxng.org/admin/installation-docker.html - Network accessline 10
# Follow: https://docs.searxng.org/admin/installation-docker.html - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 16
[Credential-related source omitted] - Access to secretsline 17
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Dangerous shell operationline 58
docker stop camofox-browser && docker rm camofox-browser - Network accessline 70
# Individual health checks curl -s http://localhost:9377/health # Camofox - Network accessline 71
curl -s http://localhost:9377/health # Camofox - Network accessline 72
curl -s http://localhost:8080/health # SearXNG
i18n/README.ar.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — محرك بحث وصفي لمرحلة البحث (متعدد المصادر، JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — متصفح يمكن الوصول إليه عبر REST API للمواقع القياسية - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — متصفح متخفي للمواقع المحمية بمكافحة البوت - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| الخدمة | الطريقة | المرجع | |---|---|---| | SearXNG | Docker، `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker، `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker، `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker، `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker، `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker، `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- أبقِه محليًا: اربط SearXNG بالعنوان `127.0.0.1` (`SEARXNG_HOST=127.0.0.1` في `.env`). - المهارة **لا تحتاج** إلى Valkey/Redis (يستخدمه SearXNG فقط للمحدِّد limiter، وهو معطّل). - إذا لم يكن SearXNG على `http://127.0.0.1:8080`، فاضبط `SEAR - Network accessline 257
- إذا لم يكن SearXNG على `http://127.0.0.1:8080`، فاضبط `SEARXNG_URL`. - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.de.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — Metasuchmaschine für die Suchphase (multiquelle, JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — über REST API navigierbarer Browser für Standard-Websites - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — Tarnkappenbrowser für anti-bot-geschützte Websites - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| Dienst | Wie | Referenz | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- Lokal halten: SearXNG an `127.0.0.1` binden (`SEARXNG_HOST=127.0.0.1` in `.env`). - Valkey/Redis wird von der Skill **nicht benötigt** (SearXNG nutzt es nur für den Limiter, der ausgeschaltet bleibt). - Läuft SearXNG nicht unter `http://1 - Network accessline 257
- Läuft SearXNG nicht unter `http://127.0.0.1:8080`, setze `SEARXNG_URL`. - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.es.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — metabuscador para la fase de búsqueda (multifuente, JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — navegador accesible vía API REST para sitios estándar - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — navegador sigiloso para sitios protegidos contra bots - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| Servicio | Cómo | Referencia | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- Mantenlo local: enlaza SearXNG a `127.0.0.1` (`SEARXNG_HOST=127.0.0.1` en `.env`). - La skill **no necesita** Valkey/Redis (SearXNG lo usa solo para el limiter, que queda desactivado). - Si SearXNG no está en `http://127.0.0.1:8080`, defi - Network accessline 257
- Si SearXNG no está en `http://127.0.0.1:8080`, define `SEARXNG_URL`. - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.fr.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — métamoteur de recherche pour la phase de recherche (multisource, JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — navigateur accessible via API REST pour les sites standards - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — navigateur furtif pour les sites protégés anti-bot - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| Service | Comment | Référence | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- Gardez-le en local : liez SearXNG à `127.0.0.1` (`SEARXNG_HOST=127.0.0.1` dans `.env`). - Valkey/Redis n'est **pas nécessaire** à la skill (SearXNG ne l'utilise que pour le limiteur, qui reste désactivé). - Si SearXNG n'est pas sur `http: - Network accessline 257
- Si SearXNG n'est pas sur `http://127.0.0.1:8080`, définissez `SEARXNG_URL`. - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.hi.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — खोज चरण के लिए मेटासर्च इंजन (मल्टी-सोर्स, JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — मानक साइटों के लिए REST API के माध्यम से नेविगेट किया जा सकने वाला ब्राउज़र - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — एंटी-बॉट संरक्षित साइटों के लिए स्टील्थ ब्राउज़र - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| सेवा | कैसे | संदर्भ | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- इसे लोकल रखें: SearXNG को `127.0.0.1` से बाइंड करें (`.env` में `SEARXNG_HOST=127.0.0.1`)। - स्किल को Valkey/Redis की **ज़रूरत नहीं** है (SearXNG इसे केवल limiter के लिए उपयोग करता है, जो बंद रहता है)। - यदि SearXNG `http://127.0.0.1:8080 - Network accessline 257
- यदि SearXNG `http://127.0.0.1:8080` पर नहीं है, तो `SEARXNG_URL` सेट करें। - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.it.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — metamotore di ricerca per la fase di ricerca (multi-fonte, JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — browser navigabile via REST API per siti standard - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — browser stealth per siti protetti anti-bot - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| Servizio | Come | Riferimento | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- Tienilo in locale: collega SearXNG a `127.0.0.1` (`SEARXNG_HOST=127.0.0.1` in `.env`). - Valkey/Redis **non serve** alla skill (SearXNG lo usa solo per il limiter, che resta spento). - Se SearXNG non è su `http://127.0.0.1:8080`, imposta - Network accessline 257
- Se SearXNG non è su `http://127.0.0.1:8080`, imposta `SEARXNG_URL`. - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.ja.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — 検索フェーズのためのメタサーチエンジン(マルチソース、JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — 標準サイト向けのREST API経由で操作可能なブラウザ - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — アンチボット保護サイト向けのステルスブラウザ - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| サービス | 方法 | 参照 | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- ローカルに限定してください: SearXNG を `127.0.0.1` にバインドします(`.env` の `SEARXNG_HOST=127.0.0.1`)。 - スキルに Valkey/Redis は**不要**です(SearXNG はリミッターにのみ使用し、リミッターは無効のままです)。 - SearXNG が `http://127.0.0.1:8080` にない場合は `SEARXNG_URL` を設定してください。 - Network accessline 257
- SearXNG が `http://127.0.0.1:8080` にない場合は `SEARXNG_URL` を設定してください。 - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.ko.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — 검색 단계를 위한 메타검색 엔진 (다중 소스, JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — 표준 사이트를 위한 REST API로 탐색 가능한 브라우저 - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — 안티봇 보호 사이트를 위한 스텔스 브라우저 - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| 서비스 | 방법 | 참조 | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- 로컬로 유지하세요: SearXNG를 `127.0.0.1`에 바인딩합니다(`.env`의 `SEARXNG_HOST=127.0.0.1`). - 스킬에는 Valkey/Redis가 **필요하지 않습니다**(SearXNG는 limiter에만 사용하며, limiter는 꺼 둡니다). - SearXNG가 `http://127.0.0.1:8080`에 없다면 `SEARXNG_URL`을 설정하세요. - Network accessline 257
- SearXNG가 `http://127.0.0.1:8080`에 없다면 `SEARXNG_URL`을 설정하세요. - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.pt-BR.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — metabuscador para a fase de pesquisa (multifonte, JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — navegador acessível via API REST para sites padrão - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — navegador furtivo para sites protegidos contra bots - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| Serviço | Como | Referência | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- Mantenha local: vincule o SearXNG a `127.0.0.1` (`SEARXNG_HOST=127.0.0.1` no `.env`). - A skill **não precisa** de Valkey/Redis (o SearXNG só o usa para o limiter, que continua desligado). - Se o SearXNG não estiver em `http://127.0.0.1:8 - Network accessline 257
- Se o SearXNG não estiver em `http://127.0.0.1:8080`, defina `SEARXNG_URL`. - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.ru.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — метапоисковая система для фазы поиска (мультиисточник, JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — браузер с доступом через REST API для стандартных сайтов - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — скрытый браузер для сайтов с антибот-защитой - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| Сервис | Как | Ссылка | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- Держите его локальным: привяжите SearXNG к `127.0.0.1` (`SEARXNG_HOST=127.0.0.1` в `.env`). - Навыку Valkey/Redis **не нужен** (SearXNG использует его только для лимитера, который остаётся выключенным). - Если SearXNG находится не по адре - Network accessline 257
- Если SearXNG находится не по адресу `http://127.0.0.1:8080`, задайте `SEARXNG_URL`. - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
i18n/README.zh-CN.md
- Network accessline 7
<p align="center"> <a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 8
<a href="https://github.com/Johell1NS/browser-search/releases"><img src="https://img.shields.io/github/v/release/Johell1NS/browser-search" alt="Release"></a> - Network accessline 9
<a href="https://github.com/Johell1NS/browser-search"><img src="https://img.shields.io/github/stars/Johell1NS/browser-search" alt="GitHub stars"></a> - Network accessline 10
<a href="https://github.com/Johell1NS/browser-search/issues"><img src="https://img.shields.io/github/issues/Johell1NS/browser-search" alt="GitHub issues"></a> - Network accessline 11
<a href="../LICENSE"><img src="https://img.shields.io/github/license/Johell1NS/browser-search" alt="License: MIT"></a> - Network accessline 12
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/node-%3E%3D20.19-brightgreen" alt="Node.js >=20.19"></a> - Network accessline 13
<a href="https://github.com/Johell1NS/browser-search/discussions"><img src="https://img.shields.io/badge/Discussions-GitHub-333333?logo=github&logoColor=white" alt="Discussions"></a> - Network accessline 14
<a href="https://x.com/Johell1NS"><img src="https://img.shields.io/badge/-Follow%20updates-333333?logo=x" alt="Follow updates"></a> - Network accessline 27
1. **[SearXNG](https://github.com/searxng/searxng)** — 搜索阶段的元搜索引擎(多源,JSON) - Network accessline 28
2. **[Camofox](https://github.com/jo-inc/camofox-browser)** — 可通过REST API导航的浏览器,适用于标准网站 - Network accessline 29
3. **[CloakBrowser](https://github.com/cloakhq/cloakbrowser)** — 用于受反机器人保护网站的隐形浏览器 - Network accessline 130
# Single-URL extraction (Readability.js, auto-fallback to snapshot) node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 131
node scripts/camofox/camofox.mjs readability "https://example.com" - Network accessline 133
# JavaScript evaluation node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 134
node scripts/camofox/camofox.mjs evaluate "https://example.com" "document.title" - Network accessline 136
# Accessibility snapshot node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 137
node scripts/camofox/camofox.mjs snapshot "https://example.com" - Network accessline 152
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" - Network accessline 153
node scripts/cloak/cloak-fetch.mjs "https://protected-site.com" --proxy socks5://... --geoip - Network accessline 155
# Markdown output (requires: pip install markitdown) node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 156
node scripts/cloak/cloak-fetch.mjs "https://example.com" --format markdown - Network accessline 186
¹ "Camoufox Vs Playwright Stealth: Complete Comparison & Alternatives (2026)" — [blog.send.win](https://blog.send.win/camoufox-vs-playwright-stealth-complete-comparison-alternatives-2026/) - Network accessline 187
² CloakBrowser README — [github.com/cloakhq/cloakbrowser](https://github.com/cloakhq/cloakbrowser) - Network accessline 188
³ camoufox-pi README (cold start comparison) — [github.com/MonsieurBarti/camoufox-pi](https://github.com/MonsieurBarti/camoufox-pi) - Network accessline 189
⁴ Playwright issue #4345 (launch time variability) — [github.com/microsoft/playwright/issues/4345](https://github.com/microsoft/playwright/issues/4345) - Network accessline 221
git clone https://github.com/Johell1NS/browser-search - Network accessline 235
| 服务 | 方式 | 参考 | |---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | - Network accessline 236
|---|---|---| | SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 237
| SearXNG | Docker, `:8080` | [docs.searxng.org](https://docs.searxng.org/admin/installation-docker.html) | | Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | | CloakBrowser | npm - Network accessline 238
| Camofox | Docker, `:9377` | [github.com/jo-inc/camofox-browser](https://github.com/jo-inc/camofox-browser) | - Network accessline 255
- 保持仅本地访问:将 SearXNG 绑定到 `127.0.0.1`(在 `.env` 中设置 `SEARXNG_HOST=127.0.0.1`)。 - 该技能**不需要** Valkey/Redis(SearXNG 仅将其用于限流器,而限流器保持关闭)。 - 如果 SearXNG 不在 `http://127.0.0.1:8080`,请设置 `SEARXNG_URL`。 - Network accessline 257
- 如果 SearXNG 不在 `http://127.0.0.1:8080`,请设置 `SEARXNG_URL`。 - Access to secretsline 275
[Credential-related source omitted] - Access to secretsline 299
[Credential-related source omitted]
package-lock.json
- Network accessline 17
"node_modules/@isaacs/fs-minipass": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - Network accessline 18
"version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - Network accessline 19
"resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - Network accessline 29
"node_modules/agent-base": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-9.0.0.tgz", - Network accessline 30
"version": "9.0.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-9.0.0.tgz", "integrity": "sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==", - Network accessline 31
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-9.0.0.tgz", - Network accessline 38
"node_modules/chownr": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - Network accessline 39
"version": "3.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - Network accessline 40
"resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - Network accessline 47
"node_modules/cloakbrowser": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/cloakbrowser/-/cloakbrowser-0.6.3.tgz", - Network accessline 48
"version": "0.6.3", "resolved": "https://registry.npmjs.org/cloakbrowser/-/cloakbrowser-0.6.3.tgz", "integrity": "sha512-mkogz/HHYPsd01rhRyLfU5raXeGbZVv2m5bmVr+6qAqlN8zK6gA5NOaNcaGhj2wCPeJc/xT/Rxglu9MCF8ZqQw==", - Network accessline 49
"resolved": "https://registry.npmjs.org/cloakbrowser/-/cloakbrowser-0.6.3.tgz", - Network accessline 82
"node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - Network accessline 83
"version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - Network accessline 84
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - Network accessline 99
"node_modules/ip-address": { "version": "10.7.4", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.4.tgz", - Network accessline 100
"version": "10.7.4", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.4.tgz", "integrity": "sha512-DWBMKyeM25D70nrIiTkgQth59/G+naKOTep6huF9j+GmeK3DMD60Zvxg5d5qQnz+38AHgou6ean2LECX+lrKDg==", - Network accessline 101
"resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.4.tgz", - Network accessline 108
"node_modules/minipass": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - Network accessline 109
"version": "7.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", - Network accessline 110
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - Network accessline 117
"node_modules/minizlib": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - Network accessline 118
"version": "3.1.0", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - Network accessline 119
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - Network accessline 129
"node_modules/mmdb-lib": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/mmdb-lib/-/mmdb-lib-3.0.3.tgz", - Network accessline 130
"version": "3.0.3", "resolved": "https://registry.npmjs.org/mmdb-lib/-/mmdb-lib-3.0.3.tgz", "integrity": "sha512-xQPoBXcNjjHiOvOraFBKtA++uNWF6aCVHL9dRKFXEov8eI3QJwtgiw3qApsonFT5SpoqsEVISUTg3HIDs2DiXw==", - Network accessline 131
"resolved": "https://registry.npmjs.org/mmdb-lib/-/mmdb-lib-3.0.3.tgz", - Network accessline 139
"node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - Network accessline 140
"version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - Network accessline 141
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - Network accessline 145
"node_modules/playwright-core": { "version": "1.64.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", - Network accessline 146
"version": "1.64.1", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", "integrity": "sha512-BC4s8y6SEVA6Q1rSxZTto8hI1KUI3xXlHGZgvGqP4IqPdI/a6FX9H29IDNz7vKo9l21b6LfYosScPL6M3xxyDQ==", - Network accessline 147
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.1.tgz", - Network accessline 157
"node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - Network accessline 158
"version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - Network accessline 159
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - Network accessline 167
"node_modules/socks": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", - Network accessline 168
"version": "2.8.9", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==", - Network accessline 169
"resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz", - Network accessline 181
"node_modules/socks-proxy-agent": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-10.1.0.tgz", - Network accessline 182
"version": "10.1.0", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-10.1.0.tgz", "integrity": "sha512-WlMj/67cEJ6MDI1OcsnjuYKDNDoyPCCYZ249kuuXPiMDw9F8PXkVaQ7YWu3siTydfQ/4BEZcvGzu+aYvz7dDCQ==", - Network accessline 183
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-10.1.0.tgz", - Network accessline 195
"node_modules/tar": { "version": "7.5.22", "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", - Network accessline 196
"version": "7.5.22", "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", "integrity": "sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA==", - Network accessline 197
"resolved": "https://registry.npmjs.org/tar/-/tar-7.5.22.tgz", - Network accessline 211
"node_modules/yallist": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - Network accessline 212
"version": "5.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - Network accessline 213
"resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
package.json
- Executable scriptline 1
Executable file
scripts/audit.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 98
warn ".npmrc missing strict-ssl=true" fi if grep -q "registry=https://registry.npmjs.org/" "$REPO_DIR/.npmrc"; then - Network accessline 99
fi if grep -q "registry=https://registry.npmjs.org/" "$REPO_DIR/.npmrc"; then ok ".npmrc has registry pinned" - Network accessline 100
if grep -q "registry=https://registry.npmjs.org/" "$REPO_DIR/.npmrc"; then - Access to secretsline 117
[Credential-related source omitted] - Access to secretsline 165
[Credential-related source omitted]
scripts/camofox/Readability.js
- Executable scriptline 1
Executable file - Network accessline 6
* You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 7
* * http://www.apache.org/licenses/LICENSE-2.0 * - Network accessline 8
* http://www.apache.org/licenses/LICENSE-2.0 - Network accessline 17
/* * This code is heavily based on Arc90's readability.js (1.7.1) script * available at: http://code.google.com/p/arc90labs-readability - Network accessline 18
* This code is heavily based on Arc90's readability.js (1.7.1) script * available at: http://code.google.com/p/arc90labs-readability */ - Network accessline 19
* available at: http://code.google.com/p/arc90labs-readability - Network accessline 116
// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType - Network accessline 164
// Commas as used in Latin, Sindhi, Chinese and various other scripts. // see: https://en.wikipedia.org/wiki/Comma#Comma_variants - Network accessline 165
// see: https://en.wikipedia.org/wiki/Comma#Comma_variants - Network accessline 167
// See: https://schema.org/Article - Network accessline 1188
// Sites like http://mobile.slate.com encloses each paragraph with a DIV - Network accessline 2027
/*** * Determine if a node qualifies as phrasing content. * https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content - Network accessline 2028
* Determine if a node qualifies as phrasing content. * https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content **/ - Network accessline 2029
* https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content - Network accessline 2267
* Look for 'data' (as opposed to 'layout') tables, for which we use * similar checks as * https://searchfox.org/mozilla-central/rev/f82d5c549f046cb64ce5602bfd894b7ae807c8f8/accessible/generic/TableAccessible.cpp#19 - Network accessline 2268
* similar checks as * https://searchfox.org/mozilla-central/rev/f82d5c549f046cb64ce5602bfd894b7ae807c8f8/accessible/generic/TableAccessible.cpp#19 */ - Network accessline 2269
* https://searchfox.org/mozilla-central/rev/f82d5c549f046cb64ce5602bfd894b7ae807c8f8/accessible/generic/TableAccessible.cpp#19 - Network accessline 2371
// also check for "null" to work around https://github.com/jsdom/jsdom/issues/2580
scripts/camofox/camofox-client.mjs
- Executable scriptline 1
Executable file - Network accessline 7
const USER_ID = "opencode-bot"; const SESSION_KEY = "default"; const BASE_URL = "http://localhost:9377"; - Network accessline 8
[Credential-related source omitted] - Access to secretsline 8
[Credential-related source omitted] - Network accessline 9
const BASE_URL = "http://localhost:9377"; - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 11
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 37
[Credential-related source omitted] - Access to secretsline 39
[Credential-related source omitted] - Access to secretsline 40
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 56
const res = await fetch(finalUrl, opts); - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 214
[Credential-related source omitted]
scripts/camofox/camofox.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 181
client.logStep(`Smoke test browser (attesa ${delay}s)...`); try { const tab = await createTrackedTab("http://example.com"); - Network accessline 182
try { const tab = await createTrackedTab("http://example.com"); try { - Network accessline 183
const tab = await createTrackedTab("http://example.com"); - Network accessline 207
async function isBrowserStuck() { try { const tab = await client.createTab("http://example.com", { timeoutMs: 8000 }); - Network accessline 208
try { const tab = await client.createTab("http://example.com", { timeoutMs: 8000 }); try { await client.closeTab(tab.tabId); } catch {} - Network accessline 209
const tab = await client.createTab("http://example.com", { timeoutMs: 8000 });
scripts/check.sh
- Executable scriptline 1
#!/bin/bash - Network accessline 22
PASSED=true SEARXNG_URL="${SEARXNG_URL:-http://127.0.0.1:8080/search}" - Network accessline 23
SEARXNG_URL="${SEARXNG_URL:-http://127.0.0.1:8080/search}" - Network accessline 24
CAMOFOX_URL="${CAMOFOX_URL:-http://127.0.0.1:9377}" - Network accessline 45
searxng_api_ok() { curl -sf --max-time 10 "${SEARXNG_URL}?format=json&q=health" >/dev/null 2>&1 - Network accessline 46
curl -sf --max-time 10 "${SEARXNG_URL}?format=json&q=health" >/dev/null 2>&1 - Network accessline 49
camofox_api_ok() { curl -sf --max-time 5 "${CAMOFOX_URL}/health" >/dev/null 2>&1 - Network accessline 50
curl -sf --max-time 5 "${CAMOFOX_URL}/health" >/dev/null 2>&1 - Network accessline 100
SEARXNG_NAME=$(docker_running_name 'searxng') if searxng_api_ok; then HEALTH=$(curl -s --max-time 10 "${SEARXNG_URL}?format=json&q=health" 2>/dev/null || echo "") - Network accessline 101
if searxng_api_ok; then HEALTH=$(curl -s --max-time 10 "${SEARXNG_URL}?format=json&q=health" 2>/dev/null || echo "") RESULT_COUNT=$(echo "$HEALTH" | python3 -c "import sys,json; d=json.load(sys.stdin); print(len(d.get('results',[])) - Network accessline 102
HEALTH=$(curl -s --max-time 10 "${SEARXNG_URL}?format=json&q=health" 2>/dev/null || echo "") - Network accessline 103
RESULT_COUNT=$(echo "$HEALTH" | python3 -c "import sys,json; d=json.load(sys.stdin); print(len(d.get('results',[])))" 2>/dev/null || echo "?") LABEL="${SEARXNG_URL}" if [ -n "$SEARXNG_NAME" ]; then LABEL="$SEARXNG_NAME ($SEARXNG_URL - Network accessline 104
LABEL="${SEARXNG_URL}" - Network accessline 105
if [ -n "$SEARXNG_NAME" ]; then LABEL="$SEARXNG_NAME ($SEARXNG_URL)"; fi ok "SearXNG running (${LABEL}, ${RESULT_COUNT} results in test query)" elif [ "$(curl -s -o /dev/null -w '%{http_code}' --max-time 10 "${SEARXNG_URL}?format=json&q - Network accessline 106
ok "SearXNG running (${LABEL}, ${RESULT_COUNT} results in test query)" elif [ "$(curl -s -o /dev/null -w '%{http_code}' --max-time 10 "${SEARXNG_URL}?format=json&q=health" 2>/dev/null)" = "403" ]; then warn "SearXNG responds but JSON ou - Network accessline 107
elif [ "$(curl -s -o /dev/null -w '%{http_code}' --max-time 10 "${SEARXNG_URL}?format=json&q=health" 2>/dev/null)" = "403" ]; then - Network accessline 108
warn "SearXNG responds but JSON output is disabled (add 'json' to search.formats in settings.yml, see README)" elif [ -n "$SEARXNG_NAME" ]; then warn "SearXNG container running ($SEARXNG_NAME) but API not responding at ${SEARXNG_URL}" - Network accessline 109
elif [ -n "$SEARXNG_NAME" ]; then warn "SearXNG container running ($SEARXNG_NAME) but API not responding at ${SEARXNG_URL}" elif docker ps -a --format '{{.Names}}' 2>/dev/null | grep -qE 'searxng'; then - Network accessline 110
warn "SearXNG container running ($SEARXNG_NAME) but API not responding at ${SEARXNG_URL}" - Network accessline 113
else warn "SearXNG container not found" info "To install: https://docs.searxng.org/admin/installation-docker.html" - Network accessline 114
warn "SearXNG container not found" info "To install: https://docs.searxng.org/admin/installation-docker.html" info "Bind locally: set SEARXNG_HOST=127.0.0.1 in searxng/.env" - Network accessline 115
info "To install: https://docs.searxng.org/admin/installation-docker.html" - Access to secretsline 116
[Credential-related source omitted] - Network accessline 121
CAMOFOX_NAME=$(docker_running_name 'camofox') if camofox_api_ok; then HEALTH=$(curl -s --max-time 5 "${CAMOFOX_URL}/health" 2>/dev/null || echo "") - Network accessline 122
if camofox_api_ok; then HEALTH=$(curl -s --max-time 5 "${CAMOFOX_URL}/health" 2>/dev/null || echo "") BROWSER_OK=$(echo "$HEALTH" | python3 -c "import sys,json; print(json.load(sys.stdin).get('browserConnected','?'))" 2>/dev/null || - Network accessline 123
HEALTH=$(curl -s --max-time 5 "${CAMOFOX_URL}/health" 2>/dev/null || echo "") - Network accessline 125
TAB_COUNT=$(echo "$HEALTH" | python3 -c "import sys,json; print(json.load(sys.stdin).get('activeTabs','?'))" 2>/dev/null || echo "?") HEAP_MB=$(echo "$HEALTH" | python3 -c "import sys,json; print(json.load(sys.stdin).get('memory',{}).ge - Network accessline 126
HEAP_MB=$(echo "$HEALTH" | python3 -c "import sys,json; print(json.load(sys.stdin).get('memory',{}).get('heapUsedMb','?'))" 2>/dev/null || echo "?") LABEL="${CAMOFOX_URL}" if [ -n "$CAMOFOX_NAME" ]; then LABEL="$CAMOFOX_NAME ($CAMOF - Network accessline 127
LABEL="${CAMOFOX_URL}" - Network accessline 128
if [ -n "$CAMOFOX_NAME" ]; then LABEL="$CAMOFOX_NAME ($CAMOFOX_URL)"; fi - Network accessline 129
ok "Camofox running (${LABEL}, browserConnected: ${BROWSER_OK}, tabs: ${TAB_COUNT}, heap: ${HEAP_MB} MB)" - Network accessline 130
elif [ -n "$CAMOFOX_NAME" ]; then warn "Camofox container running ($CAMOFOX_NAME) but API not responding at ${CAMOFOX_URL}" elif docker ps -a --format '{{.Names}}' 2>/dev/null | grep -qE 'camofox'; then - Network accessline 131
warn "Camofox container running ($CAMOFOX_NAME) but API not responding at ${CAMOFOX_URL}"
scripts/cloak/challenges.mjs
scripts/cloak/cloak-fetch.mjs
scripts/cloak/cloak-script.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 72
Script example: export default async ({ page }) => { await page.goto('https://example.com'); - Network accessline 73
export default async ({ page }) => { await page.goto('https://example.com'); await page.waitForTimeout(2000); - Network accessline 74
await page.goto('https://example.com'); - Network accessline 184
const scriptContent = await import('node:fs').then(fs => fs.default.readFileSync(opts.script, 'utf8')); const urlMatch = scriptContent.match(/['"]https?:\/\/[^'"]+['"]/); const sessionUrl = urlMatch ? urlMatch[0].replace(/['"]/g - Network accessline 186
const sessionUrl = urlMatch ? urlMatch[0].replace(/['"]/g, '') : 'https://example.com';
scripts/cloak/guida-fetch.md
- Network accessline 21
# Simple (text output) node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://example.com" - Network accessline 22
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://example.com" - Network accessline 24
# Raw HTML node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://example.com" --format html - Network accessline 25
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://example.com" --format html - Network accessline 27
# With scroll for lazy loading node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://ebay.com/..." --scroll - Network accessline 28
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://ebay.com/..." --scroll - Network accessline 30
# With proxy and anti-bot node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://protected-site.com" \ - Network accessline 31
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://protected-site.com" \ - Network accessline 34
# Extra wait and timeout node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --wait 5000 --timeout 60000 - Network accessline 35
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --wait 5000 --timeout 60000 - Network accessline 37
# Deterministic fingerprint node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --seed 12345 --platform windows - Network accessline 38
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --seed 12345 --platform windows - Network accessline 40
# Disable humanize (faster) node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --no-humanize - Network accessline 41
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --no-humanize - Network accessline 43
# Truncate output node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --max-chars 50000 - Network accessline 44
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --max-chars 50000 - Network accessline 46
# Persistent profile (cookies) node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --persistent ./profile - Network accessline 47
node "<skill_dir>/scripts/cloak/cloak-fetch.mjs" "https://..." --persistent ./profile - Network accessline 63
export default async ({ page }) => { await page.goto('https://example.com'); - Network accessline 64
await page.goto('https://example.com'); - Network accessline 109
- `cloak-fetch.mjs` includes challenge detection (Cloudflare, Akamai, DataDome, Imperva, PerimeterX, DDoS-Guard) adapted from [opencode-cloak-fetch](https://github.com/partment/opencode-cloak-fetch) (MIT)
scripts/cloak/lib/__tests__/sandbox.test.mjs
scripts/cloak/lib/__tests__/url-validation.test.mjs
- Executable scriptline 1
Executable file - Network accessline 34
test('Valid: https://example.com', () => { - Network accessline 35
const r = validateUrl('https://example.com'); - Network accessline 39
test('Valid: http://example.com', () => { - Network accessline 40
const r = validateUrl('http://example.com'); - Network accessline 44
test('Valid: https://www.google.com/search?q=test', () => { - Network accessline 45
const r = validateUrl('https://www.google.com/search?q=test'); - Network accessline 49
test('Valid: https://sub.domain.example.org/path', () => { - Network accessline 50
const r = validateUrl('https://sub.domain.example.org/path'); - Network accessline 55
test('Blocked: localhost', () => { const r = validateUrl('http://localhost:8080'); - Network accessline 56
const r = validateUrl('http://localhost:8080'); - Network accessline 61
test('Blocked: 127.0.0.1', () => { const r = validateUrl('http://127.0.0.1:22'); - Network accessline 62
const r = validateUrl('http://127.0.0.1:22'); - Network accessline 67
test('Blocked: 127.0.0.255', () => { const r = validateUrl('http://127.0.0.255/admin'); - Network accessline 68
const r = validateUrl('http://127.0.0.255/admin'); - Network accessline 73
test('Blocked: 10.0.0.1', () => { const r = validateUrl('http://10.0.0.1'); - Network accessline 74
const r = validateUrl('http://10.0.0.1'); - Network accessline 78
test('Blocked: 192.168.1.1', () => { const r = validateUrl('http://192.168.1.1'); - Network accessline 79
const r = validateUrl('http://192.168.1.1'); - Network accessline 83
test('Blocked: 172.16.0.1', () => { const r = validateUrl('http://172.16.0.1'); - Network accessline 84
const r = validateUrl('http://172.16.0.1'); - Network accessline 88
test('Blocked: 172.31.255.255', () => { const r = validateUrl('http://172.31.255.255'); - Network accessline 89
const r = validateUrl('http://172.31.255.255'); - Network accessline 94
test('Blocked: 169.254.169.254 (AWS metadata)', () => { const r = validateUrl('http://169.254.169.254/latest/meta-data/'); - Network accessline 95
const r = validateUrl('http://169.254.169.254/latest/meta-data/'); - Network accessline 99
test('Blocked: metadata.google.internal', () => { const r = validateUrl('http://metadata.google.internal/computeMetadata/v1/'); - Network accessline 100
const r = validateUrl('http://metadata.google.internal/computeMetadata/v1/'); - Network accessline 123
test('Blocked: .internal TLD', () => { const r = validateUrl('http://service.internal'); - Network accessline 124
const r = validateUrl('http://service.internal'); - Network accessline 129
test('Blocked: .local TLD', () => { const r = validateUrl('http://printer.local'); - Network accessline 130
const r = validateUrl('http://printer.local'); - Network accessline 135
test('Blocked: IPv6 loopback', () => { const r = validateUrl('http://[::1]:8080'); - Network accessline 136
const r = validateUrl('http://[::1]:8080'); - Network accessline 140
test('Blocked: IPv6 link-local', () => { const r = validateUrl('http://[fe80::1]:8080'); - Network accessline 141
const r = validateUrl('http://[fe80::1]:8080'); - Network accessline 158
await testAsync('DNS Valid: https://example.com', async () => { - Network accessline 159
const r = await validateUrlWithDns('https://example.com'); - Network accessline 164
await testAsync('DNS Blocked: localhost', async () => { const r = await validateUrlWithDns('http://localhost:8080'); - Network accessline 165
const r = await validateUrlWithDns('http://localhost:8080'); - Network accessline 169
await testAsync('DNS Blocked: 127.0.0.1', async () => { const r = await validateUrlWithDns('http://127.0.0.1:22'); - Network accessline 170
const r = await validateUrlWithDns('http://127.0.0.1:22'); - Network accessline 174
await testAsync('DNS Blocked: 10.0.0.1', async () => { const r = await validateUrlWithDns('http://10.0.0.1'); - Network accessline 175
const r = await validateUrlWithDns('http://10.0.0.1'); - Network accessline 179
await testAsync('DNS Blocked: 169.254.169.254', async () => { const r = await validateUrlWithDns('http://169.254.169.254/'); - Network accessline 180
const r = await validateUrlWithDns('http://169.254.169.254/'); - Network accessline 185
await testAsync('DNS Graceful: nonexistent-domain-xyz123.invalid', async () => { const r = await validateUrlWithDns('http://nonexistent-domain-xyz123.invalid'); - Network accessline 186
const r = await validateUrlWithDns('http://nonexistent-domain-xyz123.invalid'); - Network accessline 192
await testAsync('DNS Blocked: IPv6 loopback [::1]', async () => { const r = await validateUrlWithDns('http://[::1]:8080'); - Network accessline 193
const r = await validateUrlWithDns('http://[::1]:8080');
scripts/cloak/lib/credentials.mjs
scripts/cloak/lib/rate-limiter.mjs
- Executable scriptline 1
Executable file - Network accessline 49
_cleanupOldRequests(state) { const oneMinuteAgo = Date.now() - 60000; state.requests = state.requests.filter(ts => ts > oneMinuteAgo); - Network accessline 50
const oneMinuteAgo = Date.now() - 60000; state.requests = state.requests.filter(ts => ts > oneMinuteAgo); } - Network accessline 51
state.requests = state.requests.filter(ts => ts > oneMinuteAgo); - Network accessline 74
state.requests.push(Date.now());
scripts/cloak/lib/sandbox.mjs
- Executable scriptline 1
Executable file
scripts/cloak/lib/session.mjs
scripts/cloak/lib/url-validation.mjs
- Executable scriptline 1
Executable file
scripts/cloak/scripts/screenshot.mjs
scripts/searxng/searxng.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 5
const SEARXNG_BASE = (process.env.SEARXNG_URL || "http://127.0.0.1:8080") - Network accessline 28
Variabili d'ambiente: SEARXNG_URL <url> Indirizzo di SearXNG (default: http://127.0.0.1:8080) - Network accessline 29
SEARXNG_URL <url> Indirizzo di SearXNG (default: http://127.0.0.1:8080) - Network accessline 130
const get = () => fetch(url, { signal: AbortSignal.timeout(TIMEOUT_MS) }); - Network accessline 306
while (Date.now() < deadline) { try { const res = await fetch(`${SEARXNG_BASE}/search?format=json&q=health`, { - Network accessline 307
try { const res = await fetch(`${SEARXNG_BASE}/search?format=json&q=health`, { signal: AbortSignal.timeout(TIMEOUT_MS), - Network accessline 308
const res = await fetch(`${SEARXNG_BASE}/search?format=json&q=health`, { - Network accessline 323
try { const url = `${SEARXNG_BASE}/search?format=json&q=health`; const res = await fetch(url, { signal: AbortSignal.timeout(TIMEOUT_MS) }); - Network accessline 324
const url = `${SEARXNG_BASE}/search?format=json&q=health`; const res = await fetch(url, { signal: AbortSignal.timeout(TIMEOUT_MS) }); const out = { ok: true, status: res.status }; - Network accessline 325
const res = await fetch(url, { signal: AbortSignal.timeout(TIMEOUT_MS) });
scripts/setup.sh
- Executable scriptline 1
#!/bin/bash
scripts/smart-extract.mjs
- Executable scriptline 1
#!/usr/bin/env node
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 1 fact
- Contacts registry.npmjs.org, which SKILL.md, the README and the plugin manifest do not mentionscripts/audit.sh:100High confidence
Signal confidence: 499 facts
- Network access in prose of documentationFAQ.md:209Low confidence
- Network access in prose of documentationFAQ.md:210Low confidence
- Network access in prose of documentationREADME.md:7Low confidence
- Network access in prose of documentationREADME.md:8Low confidence
- Network access in prose of documentationREADME.md:9Low confidence
- Network access in prose of documentationREADME.md:10Low confidence
- Network access in prose of documentationREADME.md:11Low confidence
- Network access in prose of documentationREADME.md:12Low confidence
- Network access in prose of documentationREADME.md:13Low confidence
- Network access in prose of documentationREADME.md:14Low confidence
- Network access in prose of documentationREADME.md:42Low confidence
- Network access in prose of documentationREADME.md:43Low confidence
- Network access in prose of documentationREADME.md:44Low confidence
- Network access in code of documentationREADME.md:185Low confidence
- Network access in code of documentationREADME.md:186Low confidence
- Network access in code of documentationREADME.md:188Low confidence
- Network access in code of documentationREADME.md:189Low confidence
- Network access in code of documentationREADME.md:191Low confidence
- Network access in code of documentationREADME.md:192Low confidence
- Network access in code of documentationREADME.md:210Low confidence
- Network access in code of documentationREADME.md:211Low confidence
- Network access in code of documentationREADME.md:213Low confidence
- Network access in code of documentationREADME.md:214Low confidence
- Network access in prose of documentationREADME.md:254Low confidence
- Network access in prose of documentationREADME.md:255Low confidence
- Network access in prose of documentationREADME.md:256Low confidence
- Network access in prose of documentationREADME.md:257Low confidence
- Network access in code of documentationREADME.md:291Low confidence
- Network access in prose of documentationREADME.md:305Low confidence
- Network access in prose of documentationREADME.md:306Low confidence
- Network access in prose of documentationREADME.md:307Low confidence
- Network access in prose of documentationREADME.md:308Low confidence
- Network access in prose of documentationREADME.md:325Low confidence
- Network access in prose of documentationREADME.md:327Low confidence
- Access to secrets in prose of documentationREADME.md:347Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:372Low confidence
- Network access in code of the SKILL.mdSKILL.md:125High confidence
- Network access in code of the SKILL.mdSKILL.md:126High confidence
- Network access in code of the SKILL.mdSKILL.md:128High confidence
- Network access in code of the SKILL.mdSKILL.md:129High confidence
- Network access in code of the SKILL.mdSKILL.md:155High confidence
- Access to secrets in code of documentationdata/advanced-browsing-reference.md:69Low confidence
- Access to secrets in code of documentationdata/advanced-browsing-reference.md:76Low confidence
- Network access in code of documentationdata/advanced-browsing-reference.md:91Low confidence
- Network access in code of documentationdata/advanced-browsing-reference.md:92Low confidence
- Network access in code of documentationdata/advanced-browsing-reference.md:94Low confidence
- Network access in code of documentationdata/advanced-browsing-reference.md:95Low confidence
- Network access in code of documentationdata/advanced-browsing-reference.md:101Low confidence
- Network access in code of documentationdata/advanced-browsing-reference.md:109Low confidence
- Network access in code of documentationdata/advanced-browsing-reference.md:117Low confidence
and 449 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.