modlens@3.27.3
CAUTION· install onlyPublisher claims: "Plug-in vision for text-only LLMs, powered by the free Antigravity CLI" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
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-08 and scored it 70/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; Pipe-to-shell pattern; Credential pass-through configuration. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
const chain = [...providerChain(kind, config2, autoOptions?.env ?? process.env)];Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.install: "curl -fsSL https://antigravity.google/cli/install.sh | bash && agy # sign in, then exit"Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.* How to render key and proxy credential fields with hidden characters.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…( "No vision provider is set up on this machine. Install Antigravity CLI (curl -fsSL https://antigravity.google/cli/install.sh | bash, then run agy once to sign in), or configure a key: modlens config set gemini-a…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.return reorderByCooldown(chain, cooldown, config2, autoOptions?.env ?? process.env);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const discovery = autoOptions?.discovery ?? discoverAuto({ env: autoOptions?.env, home: autoOptions?.home });Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.… search the filesystem for the file. Requires a configured modlens engine (run `npx @liustack/modlens doctor` in a terminal to check).', parameters: { type: 'object', …Fix: Pin versions and sources; vendor anything fetched at install time.'[A pasted image could not be read: its media type is not supported. Tell the user, and suggest running `npx @liustack/modlens doctor`.]',Fix: Pin versions and sources; vendor anything fetched at install time.# node itself meets the CLI's floor. An old node with a working npx used to beFix: Pin versions and sources; vendor anything fetched at install time.…( "No vision provider is set up on this machine. Install Antigravity CLI (curl -fsSL https://antigravity.google/cli/install.sh | bash, then run agy once to sign in), or configure a key: modlens config set gemini-a…Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.2. Otherwise, if `npx` exists: `npx --yes --package @liustack/[email protected] modlens <args>`.Fix: Pin versions and sources; vendor anything fetched at install time.'[A pasted image could not be read: the attachment store did not return it. Tell the user, and suggest running `npx @liustack/modlens doctor`.]',Fix: Pin versions and sources; vendor anything fetched at install time.'[A pasted image could not be read: the vision engine failed. Tell the user, and suggest running `npx @liustack/modlens doctor`.]',Fix: Pin versions and sources; vendor anything fetched at install time.if command -v npx >/dev/null 2>&1 && node_meets_floor; thenFix: Pin versions and sources; vendor anything fetched at install time.install: "curl -fsSL https://antigravity.google/cli/install.sh | bash && agy # sign in, then exit"Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.note: permissionsOk ? void 0 : "group/world can read this file. Run: chmod 600 to lock it down"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.# 2. npx present -> run the pinned npm version.Fix: Pin versions and sources; vendor anything fetched at install time.# The npx path runs the CLI on this machine's node, so npx is only usable whenFix: Pin versions and sources; vendor anything fetched at install time.`--out-dir is group- or world-accessible (mode ${(stat.mode & 511).toString(8)}): ${outDir}. Recovered screenshots can hold anything; use a private directory (chmod 700).`Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.Cost to the agent
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 @liustack/modlens@3.27.3 as of 6d ago. This is the package itself, not its dependencies.
What would make this Verified
10 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- Unclaimed publisher≈ +8 on the totalClaim liustack: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- 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.
- Credential pass-through configuration≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- npx invocation of non-well-known package≈ +2 on the totalPin versions and sources; vendor anything fetched at install time.
- Remote installer piped to shell≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.