Package evidence
[email protected]
Install Lifecycle Remote Or Exec: postinstall="node -e \"try{require('./scripts/postinstall.cjs')}catch(e){if(e&&e.code==='MODULE_NOT_FOUND'&&String(e.message).includes('scripts/postinstall.cjs')){console.warn('[paat postinstall] skipped missing helper: '+e.message);process.exit(0)}throw e}\""
Trust signals
Why this verdict
PkgRadar discounts a release’s score when public reputation argues against novel malware. The verdict above already reflects these — the panel just explains what was applied.
- Weekly downloads
- 16
- Versions published
- 6
- First published
- May 2026
- Publisher
- charlesonogwu
Recommended action
Block this updateStatic evidence trips multiple high-signal indicators. Quarantine the release until the publisher validates the change or you can rule out the indicators below.
Block this release in CIcurl · GitHub Actions
Fail the build when this package version is added or upgraded. Replace $PKGRADAR_TOKEN with a Pro / Team API key from your dashboard.
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer $PKGRADAR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"specs":["[email protected]"],"fail_on":"high"}'GitHub Actions step:
- name: PkgRadar gate
run: |
curl -fsS https://pkgradar.com/gate/npm \
-H "Authorization: Bearer ${{ secrets.PKGRADAR_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{"specs":["[email protected]"],"fail_on":"high"}'Why flagged
What the scanner saw
Install Lifecycle Remote Or Exec: postinstall="node -e \"try{require('./scripts/postinstall.cjs')}catch(e){if(e&&e.code==='MODULE_NOT_FOUND'&&String(e.message).includes('scripts/postinstall.cjs')){console.warn('[paat postinstall] skipped missing helper: '+e.message);process.exit(0)}throw e}\""
Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.
Availability ledger
available
Status history (1 event)
- new → available · risk high · score 35 · status changed
Evidence
Static findings
3 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="node -e \"try{require('./scripts/postinstall.cjs')}catch(e){if(e&&e.code==='MODULE_NOT_FOUND'&&String(e.message).includes('scripts/postinstall.cjs')){console.warn('[paat postinstall] skipped missing helper: '+e.message);process.exit(0)}throw e}\"" | 30 |
Show all 3 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="node -e \"try{require('./scripts/postinstall.cjs')}catch(e){if(e&&e.code==='MODULE_NOT_FOUND'&&String(e.message).includes('scripts/postinstall.cjs')){console.warn('[paat postinstall] skipped missing helper: '+e.message);process.exit(0)}throw e}\"" | 30 |
| low | Install-time lifecycle script | package.json | postinstall="node -e \"try{require('./scripts/postinstall.cjs')}catch(e){if(e&&e.code==='MODULE_NOT_FOUND'&&String(e.message).includes('scripts/postinstall.cjs')){console.warn('[paat postinstall] skipped missing helper: '+e.message);process.exit(0)}throw e}\"" | 5 |
| low | Obfuscation Density | package/gui/package-lock.json | high encoded/escaped-token density | 0 |
Manifest
Package metadata
Scripts16
buildnpm run build:icons && npm run build:dashboard && tsc -p tsconfig.jsonbuild:dashboardnode scripts/build-dashboard-tauri.cjsbuild:dashboard:strictnode scripts/build-dashboard-tauri.cjs --strictbuild:iconsnode scripts/build-icons.mjsbuild:servertsc -p tsconfig.jsonchrometsx scripts/chrome.tscleannode -e "require('node:fs').rmSync('dist',{recursive:true,force:true})"devtsx src/cli/index.tslinttsc -p tsconfig.json --noEmitpostinstallnode -e "try{require('./scripts/postinstall.cjs')}catch(e){if(e&&e.code==='MODULE_NOT_FOUND'&&String(e.message).includes('scripts/postinstall.cjs')){console.warn('[paat postinstall] skipped missing helper: '+e.message);process.exit(0)}throw e}"prepacknode scripts/prepack.cjspreparenode scripts/prepare.cjsprepublishOnlynpm run clean && npm run buildrobust-testtsx scripts/robust-test.tsrobust-test:verbosetsx scripts/robust-test.ts --verbosetesttsc -p tsconfig.json && node --test --test-reporter=spec dist/tests/*.test.js
Dependencies1
@modelcontextprotocol/sdk^1.0.4