envdoctor@0.1.0
VERIFIED· install onlyPublisher claims: "Runs deterministic local environment checks against a repository and returns a JSON pass/fail report covering Node version, git and npm availability, lockfiles, and env-file key completeness without executing repository code or exposing secret values." 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
What this means for the label: Verified 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
- no credential variables read in the code
- 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
- use of the skill by an agent
Connect it under the guard. Nothing executable in the bundle ran; the trace covers the install step only. The code names no credential variable; the guard pins the network to what the honeypot saw and logs every call.
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 (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-12 and scored it 83/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
* - ENV-FILE: when .env.example exists, .env exists and names every keyFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…o: node version against engines, git present, package manager lockfile present, .env present when .env.example exists (names only, values never read), and required …Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.* Env values are never read into any output. The .env and .env.exampleFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// .env exists but names no keys, so every example key is missing.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.assert.equal(envCheck?.fix, "copy .env.example to .env and fill values");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const examplePath = join(root, ".env.example");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.writeFileSync(join(dir, ".env.example"), "API_KEY=\n", "utf8");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.writeFileSync(join(root, ".env"), "", "utf8");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…o: node version against engines, git present, package manager lockfile present, .env present when .env.example exists (names only, values never read), and required …Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.…json engines, git is available, the expected lockfile for the project exists, a .env file is present when .env.example declares one is needed (only key names compar…Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.writeFileSync(join(root, ".env.example"), "API_KEY=\nDATABASE_URL=\n", "utf8");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.writeFileSync(join(root, ".env"), "API_KEY=test-secret-value-123\nDATABASE_URL=test-secret-value-456\n", "utf8");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.* whose .env.example declares 4000 keys while its .env is empty: thatFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.writeFileSync(join(root, ".env.example"), keys.join("\n") + "\n", "utf8");Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.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
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.