AI Security Review
scanned 2h ago · by lpm-firewall-aiLPM treats this as warn-only first-party agent extension lifecycle risk. The CLI is a first-party Claude Code extension installer. A user invocation can configure an MCP server and, with auto-allow enabled, install SpecShip-specific permissions and hooks. No unconsented npm install-time mutation or malicious payload was confirmed.
Decision evidence
public snapshot- `bin/specship.cmd` launches bundled `node.exe` and CLI code.
- `lib/dist/bin/specship.js` runs the installer when invoked with no arguments.
- `lib/dist/installer/targets/claude.js` writes a SpecShip MCP entry, optional permissions, and hooks into Claude Code config.
- `--yes` enables local auto-allow and hook setup; installation is user-invoked.
- `lib/dist/update/run-installer.js` can spawn npm or the package's documented bundle updater from `specship update`.
- Root `package.json` has no install or lifecycle scripts.
- Nested `lib/package.json` preuninstall is not the npm package root lifecycle manifest.
- Claude configuration changes are scoped to SpecShip entries and removal routines are surgical.
- No credential harvesting, covert exfiltration, destructive payload, or remote code execution chain was confirmed.
- Update network requests target the npm registry or the project GitHub release endpoint and require `specship update`.
Source & flagged code
10 flagged · loading sourcePackage source references child process execution.
lib/dist/update/run-installer.jsView on unpkg · L12Package source references a known benign dynamic code generation pattern.
lib/dist/bin/specship.jsView on unpkg · L250Package source references dynamic require/import behavior.
lib/dist/ui/shimmer-worker.jsView on unpkg · L2A single source file combines environment access, network access, and code or shell execution; review context before blocking.
lib/dist/designer/cdp-ensure.jsView on unpkg · L9This package version adds a dangerous source file absent from the previous stored version; route for source-aware review.
lib/dist/installer/index.jsView on unpkgPackage source invokes a package manager install command at runtime.
lib/dist/installer/index.jsView on unpkg · L128Package ships WebAssembly modules.
lib/dist/extraction/wasm/tree-sitter-scala.wasmView on unpkgPackage ships non-JavaScript build or shell helper files.
bin/specship.cmdView on unpkgPackage ships high-entropy non-source blobs.
lib/dist/ui/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2View on unpkg