Skills/npm/wigolo

wigolo@0.3.1

CAUTION· not started

Publisher claims: "Local-first web intelligence MCP server for AI coding agents" Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher knockoutez · publishing for 136 daysInstalls 7,176Last detonated 3d ago

Coverage

Not started: dependency install failed; the server itself was not observed.
Tested
the dependency install step · every file read, file written and host contacted by what ran
Not tested
server startup · the tool list · tool behavior

What this means for the label: Caution here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.

Before you give it your token

It will ask for
WIGOLO_LLM_API_KEYWIGOLO_SERVE_ALLOW_UNAUTHENTICATED or --allow-unauthenticatedConfiguration, not credentials: GITHUB_ACTIONS, TLS_BROWSER_PATTERN, WIGOLO_CONFIG_PATH, WIGOLO_DOCTOR_INPROC, WIGOLO_FIRECRAWL_COMPAT, WIGOLO_LLM_MODEL, WIGOLO_PLUGIN_AUTO_YES, WIGOLO_SEARCH, WIGOLO_SEARXNG_URL, WIGOLO_SERVE_ALLOW_LOCAL_TARGETS, WIGOLO_TUI_MODE, WIGOLO_TUI_REDUCED_MOTION, WIGOLO_WAIT_FOR_INDEX
Where it talks to
no vendor host named in the code
What the honeypot saw
no credential files read · no network
What we could not test
server startup · the tool list · tool behavior

Connect it with a scoped credential, under the guard. It asks for WIGOLO_LLM_API_KEY, WIGOLO_SERVE_ALLOW_UNAUTHENTICATED and talks to its vendor. Give the credential to the guard, not the server: the value never enters the server's environment and only travels to the host you bind. What the tools do with a real credential was not observed.

$vet-skills run --net declared -- npx -y wigolo

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-11 and scored it 76/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Privileged sudo command; Collapsed <details> block carrying instructions; Privileged sudo command. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 14 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
14sprocessdependency install exit 1 · (Use `node --trace-warnings ...` to show where the warning was created) npm error Cannot read properties of null (reading 'edgesOut') npm error A complete log of this run can be found in: /tmp/ks-detonate-J2WuJz/task/home/.npm/_logs/2026-11-11T06_44_14_628Z-debug-0.log
14sclaimednot started: dependency install failed (exit 1); the server itself was not observed
14sprocessscript backend runs setup only
14sprocessno install scripts to re-run

Static findings

MEDIUM
npx invocation of non-well-known packagedist/cli/doctor.js:449 · npx invocation of non-well-known package — may execute untrusted codeout(" Hint: on disk but will not launch \u2014 reinstall: 'npx playwright install chromium'");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Privileged sudo commanddist/cli/doctor.js:447 · Privileged sudo command — agent may execute with elevated privilegesout(" Hint: system libraries missing \u2014 run: sudo npx playwright install-deps chromium");Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packageSKILL.md:52 · npx invocation of non-well-known package — may execute untrusted codeclaude mcp add wigolo -- npx wigoloFix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Collapsed <details> block carrying instructionsREADME.md:356 · Collapsed <details> block carrying instructions<summary><b>Free? What's the catch?</b></summary> No catch by design. The expensive parts (ranking, embeddings, the browser engine) run on *your* hardware, so tFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
npx invocation of non-well-known packagedist/cli/doctor.js:447 · npx invocation of non-well-known package — may execute untrusted codeout(" Hint: system libraries missing \u2014 run: sudo npx playwright install-deps chromium");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Privileged sudo commanddist/cli/warmup.js:85 · Privileged sudo command — agent may execute with elevated privilegessudo npx playwright install-deps ${browser}Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Collapsed <details> block carrying instructionsREADME.md:363 · Collapsed <details> block carrying instructions<summary><b>Is the quality really on par with the paid services?</b></summary> The benchmark section above is a live 4-way run you can reproduce: everyday agentFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
npx invocation of non-well-known packageSKILL.md:8 · npx invocation of non-well-known package — may execute untrusted codeinstall: npx wigoloFix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Collapsed <details> block carrying instructionsREADME.md:391 · Collapsed <details> block carrying instructions<summary><b>Why 1.5 GB of disk?</b></summary> That's the on-device brain: a full browser engine plus the ranking and embedding models the cloud services run on Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
HIGH
Privileged sudo commanddist/python-env.js:48 · Privileged sudo command — agent may execute with elevated privilegesreturn `python3 venv module not available. On Debian/Ubuntu, run: sudo apt install ${pkg}${suffix}. Search will use the built-in core backend until this is fixed.`;Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packageSKILL.md:70 · npx invocation of non-well-known package — may execute untrusted codenpx wigolo warmup --all # also installs Firefox, WebKit, ML reranker, and embeddingsFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageSKILL.md:71 · npx invocation of non-well-known package — may execute untrusted codenpx wigolo warmup --force # wipe search engine state and rebuildFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageSKILL.md:69 · npx invocation of non-well-known package — may execute untrusted codenpx wigolo warmup # installs browser engine + bootstraps search engineFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/doctor.js:643 · npx invocation of non-well-known package — may execute untrusted codeout(` - Force retry now: npx wigolo warmup --force`);Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/doctor.js:604 · npx invocation of non-well-known package — may execute untrusted codeout(" status: not bootstrapped \u2014 run `npx wigolo warmup`");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/warmup.js:274 · npx invocation of non-well-known package — may execute untrusted codereporter.note(" claude mcp add wigolo --scope user -- npx wigolo");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/warmup.js:85 · npx invocation of non-well-known package — may execute untrusted codesudo npx playwright install-deps ${browser}Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/fetch/router.js:625 · npx invocation of non-well-known package — may execute untrusted codeconst hint = err.hint ?? "npx playwright install chromium";Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/health.js:56 · npx invocation of non-well-known package — may execute untrusted codelog(`Start it with: npx wigolo serve`);Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/init.js:355 · npx invocation of non-well-known package — may execute untrusted codeout(` ${chalk.gray("Point your MCP client at: npx wigolo mcp")}`);Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/warmup.d.ts:9 · npx invocation of non-well-known package — may execute untrusted code* land on stdout, which the old `stderr || stdout` dropped whenever the npxFix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli/init.js:88 · npx invocation of non-well-known package — may execute untrusted codebrowserEngine: "re-run `wigolo warmup --all`, or `npx playwright install chromium`",Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Process kill commanddist/cli/warmup.js:125 · Process kill command — agent can terminate processes`Cannot --force: another wigolo bootstrap is in progress (pid ${lock.pid}). Kill it first: kill ${lock.pid}`Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
File type combined with upload actiondist/repl/shell.js:59 · File type combined with upload action — agent may exfiltrate local data files" .json on|off Toggle newline-delimited JSON output for tool results",Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07

Cost to the agent

Instructions loaded
≈5,150 tok
1 file · 80 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

No advisories in OSV for wigolo@0.3.1 as of 3d ago. This is the package itself, not its dependencies.

What would make this Verified

4 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Unclaimed publisher≈ +8 on the totalClaim knockoutez: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  2. Hidden instructions≈ +6 on the totalRemove HTML comments, zero-width characters and white-on-white text that carry instructions. Everything the agent is meant to read should be visible to the person reading the file.
  3. Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  4. npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
  5. Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  6. File type combined with upload action≈ +2 on the totalRemove the call, or declare the host in frontmatter and explain in the README what is sent and why.
Publish a new version to npm, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim knockoutezPropose a patch to the maintainer