nc://vibeleak

v0.1.0Pinned
ThomSharktools/nodecode-vibeleak: VibeLeak: an owner-approved website assessment and a read-only local PHP/source review. - a rewrite of abundantbeing/vibeleak-atlas (MIT), credited to abundantbeing58072c1· 10 Nov1 commit
test2 filesapi.lisp9.8 KBcell.lisp16.5 KBrules.lisp21.1 KB

nodecode-vibeleak

VibeLeak: an owner-approved website assessment and a read-only local PHP/source review. A Nodecode rewrite of abundantbeing/vibeleak-atlas by abundantbeing.

Two workflows, one folder.

A local review, and never the network. vibeleak_review walks one folder and answers review candidates, each with the file and line it came from: PHP request input reaching eval(), unserialize() or a command function; a session serializer or display_errors setting; session upload progress enabled in a local config; a provider key shape in readable source; an .env ignore policy worth a look. Sensitive files (.env, credentials, private keys) are skipped by name and never opened, raw source is never quoted back, and a coverage block counts every entry not read under a reason. A candidate is a review candidate: not a confirmed vulnerability and not a security guarantee.

An owner-approved assessment of a website you own. vibeleak_scan sends one hostname to VibeLeak under exactly one scan unit and answers the grade, the findings worst first and the coverage; vibeleak_report reads a saved scan back by its id, optionally with its markdown report; vibeleak_compare reads two saved scans of one host and answers what persisted, what is newly observed and what was not observed again. The comparison is an observation, not proof that a fix worked.

No state is kept: the cell writes nothing to disk, runs nothing, and makes no request until a tool call asks for one.

Get it

Tell the agent "add the vibeleak cell", or run nodecode add nc://vibeleak.

Set it up

Nothing is needed for the local review. Set the folder it reads in /settings (or the vibeleak section of ~/.nodecode/config.jsonc):

Setting Default What it does
root — the folder /vibeleak reviews when no argument names one
max_files 200 how many files one review reads at most
api_key — a VibeLeak owner API key (Pro plan), scopes scan:write, scan:read, findings:read; website assessments only
origin https://www.vibeleak.app the fixed origin the assessments go to
timeout_seconds 30 one request's ceiling

A key is needed only for the website half. Without one, vibeleak_scan, vibeleak_report and vibeleak_compare refuse in words that name the setting, and the local review still works.

Use it

vibeleak_review                                  # the configured root
vibeleak_review path="/srv/app"                  # another folder
vibeleak_scan domain="example.com"               # one approved assessment, one unit
vibeleak_report scan_id="<uuid>" markdown=true
vibeleak_compare before="<uuid>" after="<uuid>"

or /vibeleak for the few lines an operator reads first (candidates, files read, entries skipped), and /vibeleak /srv/app to review another folder.

What it deliberately gets right

A comment is blanked, not skipped. The PHP rules blank comment text to spaces and keep the newlines, so a eval($_GET['x']) inside a // comment is not a finding and a finding's line is still the line a reviewer opens.

A sensitive file is excluded by name, unopened. .env, .npmrc, .netrc, credentials, id_rsa, id_ed25519, auth.json and *.pem|p12|pfx|key are counted as excluded, never read.

Coverage never says clean. Every file not read is counted under a reason (file limit, size limit, depth, native refusal, unsupported type, sensitive name), and a review with no finding says so without claiming security.

The hostname is checked before it travels. An IP literal, a reserved suffix, a custom port or a malformed label is refused here, not by the API.

Run .github/test-cell.sh tools/nodecode-vibeleak from the cells repository. The tests build a scratch tree, stub the one network call and call every tool through the real dispatch, so no network, clock or file of the operator's is involved.

Add nc://vibeleak

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 58072c1.

    $ nodecode add nc://vibeleak

    Or tell the agent add the vibeleak cell.