registry  /  moodline  /  0.3.18

moodline@0.3.18

Statusline divertida e informativa para CLIs de IA (Claude Code, GitHub Copilot CLI e mais): barra de contexto em gradiente, emoji-humor, git, custo e trocadilhos de dev.

AI Security Review

scanned 5h ago · by lpm-firewall-ai

LPM treats this as warn-only first-party agent extension lifecycle risk. No confirmed malicious attack chain was found, but the package is an AI CLI statusline installer that mutates user-level Claude/Copilot agent configuration when explicitly run. It also performs package-aligned update checks and a user-invoked global self-update.

Static reason
One or more suspicious static signals were detected.; previous stored version diff introduced dangerous source
Trigger
Explicit user command such as `moodline init`, `enable`, `update`, `render`, or statusline refresh.
Impact
Can install a first-party command into Claude/Copilot settings and run its copied engine during AI CLI statusline refreshes; no evidence of exfiltration or stealth install-time mutation.
Mechanism
first-party agent statusLine setup plus package-aligned update checks
Rationale
Source inspection supports a warning for explicit first-party AI-agent statusline setup, not a publish block: there are no lifecycle hooks, no credential harvesting, and no unconsented install-time mutation. Suspicious scanner signals map to documented CLI features with validation and package-aligned endpoints.
Evidence
package.jsonbin/moodline.jslib/install.mjslib/moodline-core.mjslib/jdi.mjslib/pathguard.mjslib/sanitize.mjslib/commands/moodline.command.mdREADME.md~/.claude/settings.json~/.copilot/settings.json~/.claude/moodline/moodline-core.mjs~/.copilot/moodline/moodline-core.mjs~/.claude/moodline/config.json~/.copilot/moodline/config.json~/.claude/commands/moodline.md
Network endpoints3
registry.npmjs.org/moodline/latestregistry.npmjs.org/jdi-cli/latest127.0.0.1:4096/session

Decision evidence

public snapshot
AI called this Suspicious at 88.0% confidence as Dangerous Capability with medium false-positive risk.
Evidence for warning
  • User-invoked `moodline init/enable` writes `~/.claude/settings.json` and `~/.copilot/settings.json` statusLine commands in `lib/install.mjs`.
  • `lib/install.mjs` copies engine files into `~/.claude/moodline` or `~/.copilot/moodline` and adds Claude slash command `commands/moodline.md`.
  • `lib/moodline-core.mjs` spawns a detached self process for update checks and writes `.update.json`.
  • `bin/moodline.js` has user-invoked `update` running global npm install via `spawnSync`.
  • Network calls reach npm registry for `moodline/latest` and `jdi-cli/latest`; `watch` fetches a user-supplied/local OpenCode URL.
Evidence against
  • `package.json` has no preinstall/install/postinstall lifecycle scripts.
  • Agent config mutation is only through explicit CLI commands, not install-time import or npm lifecycle execution.
  • Npm install target is constrained to `moodline@semver` or `moodline@latest`, package name is allowlisted, and `shell:false` is used.
  • No credential/env harvesting or outbound exfiltration endpoints found.
  • Git execution uses fixed absolute git candidates and validated cwd via `safeDir`.
  • README documents the statusLine setup, copied engine, npm update checks, and JDI mention behavior.
Behavioral surface
Source
ChildProcessEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsUrlStrings
ManifestNo manifest risk signals triggered.
scanned 9 file(s), 73.4 KB of source, external domains: 127.0.0.1, registry.npmjs.org

Source & flagged code

3 flagged · loading source
bin/moodline.jsView file
13import { readFileSync, existsSync } from 'node:fs'; L14: import { spawnSync } from 'node:child_process'; L15: import { join, dirname } from 'node:path';
High
Child Process

Package source references child process execution.

bin/moodline.jsView on unpkg · L13
48const cli = npmCliPath(); L49: if (!cli) throw new Error('npm não encontrado junto ao Node em execução — atualize manualmente: npm install -g moodline'); L50: return spawnSync(process.execPath, [cli, 'install', '-g', safe], { stdio: 'ignore', shell: false }); L51: }
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

bin/moodline.jsView on unpkg · L48
lib/moodline-core.mjsView file
matchType = previous_version_dangerous_delta matchedPackage = moodline@0.3.17 matchedIdentity = npm:bW9vZGxpbmU:0.3.17 similarity = 0.625 summary = stored previous version shares package body but lacks this dangerous source file
Critical
Previous Version Dangerous Delta

This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.

lib/moodline-core.mjsView on unpkg

Findings

1 Critical3 High3 Medium4 Low
CriticalPrevious Version Dangerous Deltalib/moodline-core.mjs
HighChild Processbin/moodline.js
HighShell
HighRuntime Package Installbin/moodline.js
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings