registry  /  skalpel  /  4.0.3

skalpel@4.0.3

Behavioral graph for AI-assisted coding — learns how you work and steers Claude Code + Codex in real time.

Static Scan Results

scanned 2h ago · by rust-scanner

Static analysis flagged 14 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
ChildProcessCryptoEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
Manifest
NoLicense
scanned 15 file(s), 154 KB of source, external domains: accounts.google.com, cli.skalpel.ai, graph.skalpel.ai, skalpel-prod.auth.us-west-2.amazoncognito.com

Source & flagged code

5 flagged · loading source
package.jsonView file
scripts.postinstall = node postinstall.mjs || true
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node postinstall.mjs || true
Medium
Ambiguous Install Lifecycle Script

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

package.jsonView on unpkg
login.mjsView file
10import { randomBytes } from "node:crypto"; L11: import { spawn } from "node:child_process"; L12:
High
Child Process

Package source references child process execution.

login.mjsView on unpkg · L10
2// skalpel login — Sign in with Google, fully through AWS (no localhost). L3: // this CLI → browser → Google → https://graph.skalpel.ai/oauth/callback (AWS) → we poll AWS for L4: // the token → save it. The server holds the client secret and does the code exchange; we only ever ... L10: import { randomBytes } from "node:crypto"; L11: import { spawn } from "node:child_process"; L12: L13: const API = process.env.SKALPEL_API || "https://graph.skalpel.ai"; L14: const CLIENT_ID =
High
Same File Env Network Execution

A single source file combines environment access, network access, and code or shell execution; review context before blocking.

login.mjsView on unpkg · L2
2// skalpel login — Sign in with Google, fully through AWS (no localhost). L3: // this CLI → browser → Google → https://graph.skalpel.ai/oauth/callback (AWS) → we poll AWS for L4: // the token → save it. The server holds the client secret and does the code exchange; we only ever ... L10: import { randomBytes } from "node:crypto"; L11: import { spawn } from "node:child_process"; L12: L13: const API = process.env.SKALPEL_API || "https://graph.skalpel.ai"; L14: const CLIENT_ID = ... L25: X = "\x1b[0m"; L26: const isTTY = process.stdout.isTTY && !process.env.CI; L27: ... L44: return join(
High
Sandbox Evasion Gated Capability

Source gates dangerous network, credential, or execution behavior behind CI, host, platform, time, or geo fingerprint checks.

login.mjsView on unpkg · L2

Findings

5 High4 Medium5 Low
HighInstall Time Lifecycle Scriptspackage.json
HighChild Processlogin.mjs
HighShell
HighSame File Env Network Executionlogin.mjs
HighSandbox Evasion Gated Capabilitylogin.mjs
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings
LowNo License