registry  /  skalpel  /  3.3.1

skalpel@3.3.1

Skalpel — local proxy and TUI for coding agents (skalpel + skalpeld bundle).

Static Scan Results

scanned 6h ago · by rust-scanner

Static analysis flagged 11 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessCryptoDynamicRequireEnvironmentVarsFilesystem
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 23 file(s), 130 KB of source, external domains: 127.0.0.1, github.com, skalpel.ai

Source & flagged code

4 flagged · loading source
package.jsonView file
scripts.preinstall = node postinstall/preinstall.js
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.preinstall = node postinstall/preinstall.js
Medium
Ambiguous Install Lifecycle Script

Install-time lifecycle script is not statically allowlisted and needs review.

package.jsonView on unpkg
postinstall/preinstall.jsView file
37L38: const { spawnSync } = require('child_process'); L39:
Medium
Dynamic Require

Package source references dynamic require/import behavior.

postinstall/preinstall.jsView on unpkg · L37
postinstall/lib/service-register.jsView file
7// 2. Write the rendered file to its OS-specific destination. L8: // 3. Invoke the OS tool (launchctl / systemctl / schtasks) to load L9: // the unit. ... L22: const crypto = require('crypto'); L23: const { spawnSync } = require('child_process'); L24: ... L39: // L40: // 2026-05-14 fix: the previous heuristic used `!process.env.DISPLAY` L41: // as a headless signal, but macOS native terminal sessions never set ... L58: function templatePath() { L59: switch (process.platform) { L60: case 'darwin':
Medium
Install Persistence

Source writes installer persistence such as shell profile or service configuration.

postinstall/lib/service-register.jsView on unpkg · L7

Findings

1 High5 Medium5 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumDynamic Requirepostinstall/preinstall.js
MediumEnvironment Vars
MediumInstall Persistencepostinstall/lib/service-register.js
MediumStructural Risk Force Deep Review
LowNon Install Lifecycle Scripts
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings