registry  /  @trnovel/trnovel  /  0.13.2

@trnovel/trnovel@0.13.2

Terminal reader for novel

AI Security Review

scanned 5d ago · by lpm-firewall-ai

The package is a native CLI installer that fetches release artifacts at install time. This is a package-aligned binary distribution pattern, with no confirmed malicious behavior in the reviewed JS source.

Static reason
One or more suspicious static signals were detected.
Trigger
npm install runs postinstall; trn/trnovel bin invocation runs the installed binary
Impact
Installs and later executes the TRNovel CLI binary; no source-level exfiltration or unauthorized mutation confirmed
Mechanism
platform-specific GitHub release artifact download and extraction
Rationale
Static inspection shows an install-time binary downloader, but the endpoint and behavior match the advertised TRNovel CLI package and no concrete malicious chain is present. The scanner signals are explained by native binary installation, proxy support, and CLI execution wrappers.
Evidence
package.jsoninstall.jsbinary.jsbinary-install.jsrun-trn.jsrun-trnovel.jsnpm-shrinkwrap.jsonREADME.mdnode_modules/.bin_realos.tmpdir() temporary archive path
Network endpoints1
github.com/yexiyue/TRNovel/releases/download/trnovel-v0.13.2

Decision evidence

public snapshot
AI called this Clean at 86.0% confidence as Benign with medium false-positive risk.
Evidence for block
  • package.json runs postinstall: node ./install.js.
  • binary-install.js downloads a platform archive and extracts it into node_modules/.bin_real.
  • binary-install.js uses tar/unzip/powershell via spawnSync for archive extraction.
Evidence against
  • Download URL is package-aligned GitHub release path for yexiyue/TRNovel v0.13.2.
  • No credential, token, shell-profile, SSH, npmrc, or home-directory harvesting found in JS source.
  • Environment variables are limited to standard proxy handling: HTTP_PROXY, HTTPS_PROXY, NO_PROXY.
  • Bin wrappers only call binary.run for trn/trnovel with user-provided CLI args.
  • No AI-agent control-surface writes, persistence, destructive broad file operations, or exfiltration logic found.
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystemNetwork
Supply chain
UrlStrings
ManifestNo manifest risk signals triggered.
scanned 5 file(s), 13.5 KB of source, external domains: example.com

Source & flagged code

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

Package defines install-time lifecycle scripts.

package.jsonView on unpkg
scripts.postinstall = node ./install.js
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