registry  /  justcode-cli  /  0.1.2

justcode-cli@0.1.2

JustCode - an interactive terminal coding assistant CLI

AI Security Review

scanned 1d ago · by lpm-firewall-ai

No confirmed malicious source behavior was found, but install and first CLI run can fetch and execute an opaque platform binary from GitHub Releases. The unverifiable remote binary is package-aligned but leaves unresolved supply-chain risk.

Static reason
One or more suspicious static signals were detected.
Trigger
npm postinstall or user running the justcode bin when the binary is missing
Impact
Remote release asset controls the actual CLI payload executed by users; static package source does not reveal that payload.
Mechanism
download GitHub release binary, chmod executable, then spawn on CLI invocation
Attack narrative
On install, the postinstall script downloads a platform-specific JustCode binary from the package's GitHub Releases into dist-bin, marks it executable, and keeps install non-fatal if the download fails. The bin launcher retries the download on first run and spawns the resulting binary. Source inspection shows no direct malicious code, but the executable payload is remote and absent from the package, with no integrity verification.
Rationale
The inspected source supports a legitimate CLI binary bootstrapper, but the install-time remote executable download without bundled payload or checksum is unresolved risk rather than proof of malware. There is no evidence of unconsented AI-agent control-surface mutation or classic exfiltration/persistence in the packaged source.
Evidence
package.jsonscripts/postinstall.mjsscripts/lib/download-binary.mjsscripts/lib/platform.mjsbin/justcode.mjsdist-bin/justcode-<os>-<arch>[.exe]dist-bin/justcode-<os>-<arch>[.exe].download
Network endpoints1
github.com/kingeke/justcode/releases/download/${tag}/${assetName()}

Decision evidence

public snapshot
AI called this Suspicious at 78.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • package.json defines postinstall: node scripts/postinstall.mjs
  • scripts/postinstall.mjs calls ensureBinary during install unless source checkout or JUSTCODE_SKIP_DOWNLOAD
  • scripts/lib/download-binary.mjs fetches a GitHub release asset and writes it under dist-bin with executable mode
  • bin/justcode.mjs lazily downloads the same binary if missing, then spawns it with user arguments
  • Downloaded binary is not present in the package and no checksum/signature verification is implemented
Evidence against
  • Source files are limited to launcher and downloader code plus README/LICENSE
  • Network URL is derived from package repository github.com/kingeke/justcode and package version
  • No credential harvesting, broad filesystem scanning, persistence, destructive behavior, or agent-control-surface writes found
  • No eval/vm/Function or dynamic require found in inspected source
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystemNetworkShell
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 4 file(s), 5.58 KB of source, external domains: github.com

Source & flagged code

2 flagged · loading source
package.jsonView file
scripts.postinstall = node scripts/postinstall.mjs
High
Install Time Lifecycle Scripts

Package defines install-time lifecycle scripts.

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

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

package.jsonView on unpkg

Findings

1 High3 Medium3 Low
HighInstall Time Lifecycle Scriptspackage.json
MediumAmbiguous Install Lifecycle Scriptpackage.json
MediumNetwork
MediumEnvironment Vars
LowScripts Present
LowFilesystem
LowUrl Strings