Skills/npm/visualice

visualice@0.2.1

CAUTION· install only

Publisher claims: "Crawl a website and capture every page and UI state across devices, then view them on a zoomable canvas." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher alexdevlabs · publishing for 13 daysInstalls 776Last detonated 1 h ago

Coverage

Nothing executable in the bundle ran; the trace covers the install step only.
Tested
every file read, file written and host contacted by what ran
Not tested
use of the skill by an agent

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-14 and scored it 72/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: Access to sensitive file paths; Auto-update or dynamic fetch configuration. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 0 s · 1 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
0.0sprocessscript backend runs setup only
0.0sprocessscript backend runs setup only
0.0sprocessno install scripts to re-run

Static findings

MEDIUM
Process kill commandconfig.schema.json:415 · Process kill command — agent can terminate processes"description": "prefers-reduced-motion; `reduce` complements the animation-kill stabilizer.",Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
MEDIUM
npx invocation of non-well-known packagecli/visualice.mjs:41 · npx invocation of non-well-known package — may execute untrusted code// `node <tsx's cli>` rather than `npx tsx`: Windows can't spawn npx without a shell.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/chunks/export-CYERZIYY.js:2071 · npx invocation of non-well-known package — may execute untrusted code`the ${engine} browser isn't installed — run 'npx playwright install ${engine}'`Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
HIGH
Access to sensitive file pathsdist/cli.js:1552 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesprocess.loadEnvFile(path.resolve(".env"));Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
npx invocation of non-well-known packagedist/chunks/export-CYERZIYY.js:220 · npx invocation of non-well-known package — may execute untrusted code…ith `firefox` or `webkit` for a cross-browser catalog (install the engine with `npx playwright install <name>`)." ) }); const ScopeSchema = z.object({ include: z.array(z.…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli.js:1050 · npx invocation of non-well-known package — may execute untrusted codelog("serve it with any static file server, e.g. 'npx serve <dir>'");Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
Process kill commanddist/chunks/export-CYERZIYY.js:216 · Process kill command — agent can terminate processesreducedMotion: z.enum(["reduce", "no-preference"]).default("reduce").describe("prefers-reduced-motion; `reduce` complements the animation-kill stabilizer."),Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Auto-update or dynamic fetch configurationviewer/dist/assets/index-r89zRmyY.js:60 · Auto-update or dynamic fetch configuration — agent may load new code at runtime…lassName:"font-mono",children:"/plugin"})," → Marketplaces → visualice → Enable auto-update."]})]}),o.jsxs("section",{className:"flex min-w-0 flex-col gap-1.5",children:[o.jsx("h3",{className:"m-0 text-[12.5px] font-semibold",children:"Wit…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packageconfig.schema.json:434 · npx invocation of non-well-known package — may execute untrusted code…ith `firefox` or `webkit` for a cross-browser catalog (install the engine with `npx playwright install <name>`).", "type": "string", "enum": [ …Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
npx invocation of non-well-known packagedist/cli.js:388 · npx invocation of non-well-known package — may execute untrusted codehint: "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.js:400 · npx invocation of non-well-known package — may execute untrusted codehint: nowThere ? void 0 : "npx playwright install chromium"Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
document.cookie accesstests/fixture/about.html:347 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=1; path=/; max-age=86400';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/dashboard.html:330 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=1; path=/; max-age=86400';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/contact.html:339 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=; path=/; max-age=0';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/dashboard.html:339 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=; path=/; max-age=0';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
File type combined with upload actiondist/cli.js:1347 · File type combined with upload action — agent may exfiltrate local data filesconsole.log(JSON.stringify({ cachePath, routes: inputManifest.routes.length, states }));Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
document.cookie accesstests/fixture/login.html:309 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=; path=/; max-age=0';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
npx invocation of non-well-known packageviewer/dist/assets/index-r89zRmyY.js:60 · npx invocation of non-well-known package — may execute untrusted code…12px] text-dim",children:["With ",o.jsx("code",{className:"font-mono",children:"npx visualice"}),", the next run already uses"," ",i.latest,". Restart ",o.jsx("code",{className:"f…Fix: Pin versions and sources; vendor anything fetched at install time.
AST06
MEDIUM
document.cookie accesstests/fixture/login.html:300 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=1; path=/; max-age=86400';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/articles.html:358 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=1; path=/; max-age=86400';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/contact.html:330 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=1; path=/; max-age=86400';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/articles.html:367 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=; path=/; max-age=0';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/index.html:456 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=; path=/; max-age=0';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/about.html:356 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=; path=/; max-age=0';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
document.cookie accesstests/fixture/index.html:447 · document.cookie access — can steal session cookiesdocument.cookie = 'tp_session=1; path=/; max-age=86400';Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.
AST07
MEDIUM
File type combined with upload actionviewer/dist/assets/index-r89zRmyY.js:60 · File type combined with upload action — agent may exfiltrate local data files…xe?`./runs/${xe}/`:"./data/",Ke=k.useMemo(()=>Vh(location.search,ze+"viewer-data.json"),[ze]);k.useEffect(()=>Sa(c),[c]);const[lt,at]=k.useState(!1),[ft,yt]=k.useState(!1);k.useEffect(()=>{const j=setTimeout(()=>at(!0),jm);return()=>clearT…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
LOW
Unpinned dependencydist/cli.js:252 · Unpinned dependencyreturn `visualice ${latest} is available (you have ${current}). Update the plugin: claude plugin update visualice@visualice — or the CLI: npm i -g visualice@latest`;Fix: Pin the exact version (`[email protected]`, `==1.2.3`) so every install gets the bytes that were reviewed.
AST06
LOW
Unpinned dependencyviewer/dist/assets/index-r89zRmyY.js:60 · Unpinned dependency…xt-[12.5px] font-semibold",children:"With the CLI on its own"}),o.jsx(kd,{text:"npm i -g visualice@latest"}),o.jsxs("p",{className:"m-0 text-[12px] text-dim",children:["With ",o.jsx("co…Fix: Pin the exact version (`[email protected]`, `==1.2.3`) so every install gets the bytes that were reviewed.
AST06
MEDIUM
File type combined with upload actionviewer/dist/assets/index-r89zRmyY.js:40 · File type combined with upload action — agent may exfiltrate local data files…ce.now(),He=Me=>{const Xe=Math.min(1,(Me-_e)/yh),Ye=1-(1-Xe)**3,fn=Math.exp(Math.log(z.scale)+(Math.log(y.scale)-Math.log(z.scale))*Ye),Xt=ge.x+(Te.x-ge.x)*Ye,Je=ge.y+(Te.y-ge.y)*Ye;O(Xe<1?{scale:fn,x:_.w/2-Xt*fn,y:_.h/2-Je*fn}:y),xe.curre…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
File type combined with upload actionviewer/dist/assets/index-r89zRmyY.js:37 · File type combined with upload action — agent may exfiltrate local data files…d 0,(e.current.flags&128)===128)}catch{}}var Tt=Math.clz32?Math.clz32:xo,ho=Math.log,mo=Math.LN2;function xo(e){return e>>>=0,e===0?32:31-(ho(e)/mo|0)|0}var Sr=64,j=4194304;function $(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:…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
≈50 tok
1 file · 81 in bundle

Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.

Known vulnerabilities

No advisories in OSV for visualice@0.2.1 as of 47 min ago. This is the package itself, not its dependencies.

What would make this Verified

8 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Unclaimed publisher≈ +8 on the totalClaim alexdevlabs: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  2. Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
  3. Auto-update or dynamic fetch configuration≈ +4 on the totalPin versions and sources; vendor anything fetched at install time.
  4. Unpinned dependencies≈ +3 on the totalPin exact versions (and ideally hashes) in package.json, requirements or the install script so the bundle cannot change under you.
  5. New publisher≈ +3 on the totalTime clears this on its own after 14 and 30 days. Claiming the handle (+50) is the fastest way past it.
  6. Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
Publish a new version to npm, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim alexdevlabsPropose a patch to the maintainer