kilotest@63.2.2
VERIFIED· not startedPublisher claims: "Ensemble testing for front-end web quality" Observed in sandbox: no network, touches nothing outside the project, writes no memory.
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: 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
Code inventory arrives with this version's next honeypot run.- It will ask for
- unknown until the next run
- Where it talks to
- unknown until the next run
- What the honeypot saw
- no credential files read · no network
- What we could not test
- server startup · the tool list · tool behavior
Not enough was observed to say yet. Not started: dependency install failed; the server itself was not observed. This version's code has not been inventoried for credentials and hosts either; both arrive with its next honeypot run (popular servers first). `vet-skills try kilotest` runs it now and prints the full answer.
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-07 and scored it 82/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 · 1 s · 2 scenarios · 0 deviationsStatic findings
// so a variable set (e.g. in .env) after this module first loads still takes effect. UsedFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.t.mock.method(globalThis, 'fetch', async () => ({url: 'https://192.168.1.1/test'}) as Response);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.console.log('Cannot send error response because the response has ended.');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.type: 'test', which: 'axe', actualURL: 'https://192.168.1.1/test',Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.console.log(`FAIL: POST ${mcpPath} initialize -> ${probe.statusCode} (body: ${probe.body.slice(0, 120)})`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// imported, prevents a real .env file's alert credentials from ever taking effect.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose."lint": "npx eslint && npx htmlhint web error.html && out=$(npx markdownlint-cli2 2>&1); code=$?; if [ $code -ne 0 ]; then echo \"$out\"; exit $code; fi && node scripts/check-docs.ts",Fix: Pin versions and sources; vendor anything fetched at install time.t.mock.method(globalThis, 'fetch', async () => ({url: 'https://192.168.1.1/test'}) as Response);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.url: 'https://192.168.1.1/page',Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.type: 'test', which: 'axe', actualURL: 'https://192.168.1.1/test',Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.url: 'https://192.168.1.1/page',Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.// Builds the lhm.plugin.json outputSchema for a tool, reordering keys to match the file’s existing convention ($schema placed just before additionalProperties and definitions).Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`PASS: POST ${mcpPath} initialize -> ${probe.statusCode} (valid MCP response)`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.Prepares a release pull request on the current feature branch: verifies a clean working tree, bumps the package version, regenerates the generated files (openapi.yaml, openapi-3.0.yaml, lhm.plugin.jsoFix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`Wrote ${outputPath}: ${slides.length} slides, ${totalSeconds} seconds`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log('Submit a pull request, merge it to main, then run: npm run postPR');Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.// rather than relying on a developer's .env keeps tests independent of the environment.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.log(`Wrote ${outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`Wrote ${output30Path}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`PASS: POST ${mcpPath} bad accept -> ${probe.statusCode} (JSON-RPC error)`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`FAIL: POST ${mcpPath} initialize -> error: ${message}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.assert.equal(await isAllowedTarget('https://192.168.1.1/page'), false);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.console.log(`Wrote ${outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`FAIL: POST ${mcpPath} bad accept -> ${probe.statusCode} (body: ${probe.body.slice(0, 120)})`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why."publish:lhm": "npx -y @lobehub/market-cli plugin update --dir .",Fix: Pin versions and sources; vendor anything fetched at install time.dotenv does not override existing env vars. This prevents the .envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Builds the lhm.plugin.json inputSchema for a tool: like outputSchema below, but LobeHub’sexisting input schemas never carry additionalProperties, so that key is dropped.Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.console.log(`Wrote ${outputPath}`);Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.await isAllowedRedirectTarget('https://example.com/page', fakeFetch('https://10.0.0.5/page'), fakeLookup('93.184.216.34')),Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.assert.equal(await isAllowedTarget('https://192.168.1.1/page'), true);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.assert.equal(await isAllowedTarget('https://93.184.216.34/page'), true);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.assert.equal(await isAllowedTarget('https://192.168.1.1/page'), false);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.assert.equal(await isAllowedRedirectTarget('https://192.168.1.1/page', fetchImpl), true);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.assert.equal(await isAllowedTarget('https://93.184.216.34/page'), true);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.await isAllowedRedirectTarget('https://example.com/page', fakeFetch('https://10.0.0.5/page'), fakeLookup('93.184.216.34')),Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.assert.equal(await isAllowedTarget('https://192.168.1.1/page'), true);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.assert.equal(await isAllowedRedirectTarget('https://192.168.1.1/page', fetchImpl), true);Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.Cost to the agent
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 @jrpool/kilotest@63.2.2 as of 7d ago. This is the package itself, not its dependencies.