AI Security Review
scanned 2h ago · by lpm-firewall-aiA global macOS npm installation can create a persistent LaunchAgent without a separate user command. The agent runs this package's daemon at login; the daemon is designed to expose a localhost service.
Decision evidence
public snapshot- `package.json` runs `node postinstall.cjs` on installation.
- `postinstall.cjs` automatically continues for global installs on macOS unless an opt-out is set.
- `postinstall.cjs` invokes `dist/daemon.js install-autostart`.
- `dist/daemon-lifecycle.js` writes and enables `~/Library/LaunchAgents/com.dyzsasd.dev-loop.daemon.plist` to run at login.
- Bundled Claude hook starts the local daemon on SessionStart in `hooks/hooks.json` and `dist/hook-session-start.js`.
- `dist/team-init.js` can add `Bash(dev-loop *)` to a project `.claude/settings.json` through an explicit command.
- No source evidence of credential harvesting from common user secret stores.
- No hard-coded exfiltration endpoint or install-time network request was found.
- Postinstall only launches the package's own daemon and exits cleanly on unsupported systems.
- Daemon lifecycle binds the service to `127.0.0.1` and health checks that local URL.
- MCP and Claude settings mutations are command/plugin-invoked, merge-preserving, and package-aligned.
- Network code targets configured Linear/webhook integrations rather than a hidden package-controlled endpoint.
Source & flagged code
7 flagged · loading sourcePackage defines install-time lifecycle scripts.
package.jsonView on unpkgInstall-time lifecycle script is not statically allowlisted and needs review.
package.jsonView on unpkgPackage source references child process execution.
dist/node-runtime.jsView on unpkg · L1Source writes installer persistence such as shell profile or service configuration.
dist/daemon-lifecycle.jsView on unpkg · L11A single source file combines environment access, network access, and code or shell execution; review context before blocking.
dist/init-service.jsView on unpkg · L145Package source invokes a package manager install command at runtime.
dist/init-service.jsView on unpkg · L80This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.
dist/doctor.jsView on unpkg