PkgRadar

Package evidence

@schoolai/[email protected]

Js Hidden Powershell: Hidden / non-interactive PowerShell invocation in package code — `-WindowStyle Hidden`, `irm | iex`, `windowsHide: true`, or equivalent — used to download-and-run payloads on Windows installers.

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
3,054Niche · −30% score
Versions published
375
First published
Feb 2026
Publisher
GitHub ActionsTrusted automation · −70% score

Effective trust discount applied: 70% (max across signals — discounts don’t stack). New install-lifecycle deltas vs the previous release would clear the discount.

Recommended action

Review before promoting

Mixed signals: the package has indicators worth reading before allowing the update in automated dependency flows.

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":["@schoolai/[email protected]"],"fail_on":"review"}'

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":["@schoolai/[email protected]"],"fail_on":"review"}'
Artifact bytes10,160,278
Previous version3.11.1-rc.20260611.0
Published2026-06-12T17:47:43.315Z
SHA-25699c2dbdbe6d5210a440845f253f35d59a500c2e158dfdf92d0c4879efdfaea15

Why flagged

What the scanner saw

Js Hidden Powershell: Hidden / non-interactive PowerShell invocation in package code — `-WindowStyle Hidden`, `irm | iex`, `windowsHide: true`, or equivalent — used to download-and-run payloads on Windows installers.

Not observed: package install, lifecycle script execution, or sandbox execution. PkgRadar only inspects on-disk artifacts.

Availability ledger

available

review
Last checked
reviewRisk
25Score
3.11.1-rc.20260612.0Version
Status history (1 event)
  1. newavailable · risk review · score 25 · status changed

Evidence

Static findings

6 static · 0 from release diff · showing high-signal first.

SeverityKindPathDetailPoints
highJs Hidden Powershellpackage/dist/chunk-JKKKUMTY.jsHidden / non-interactive PowerShell invocation in package code — `-WindowStyle Hidden`, `irm | iex`, `windowsHide: true`, or equivalent — used to download-and-run payloads on Windows installers.45
highInstall Lifecycle Remote Or Execpackage.jsonpostinstall="node -e \"const fs=require('fs'),path=require('path');const d=path.join(__dirname,'node_modules','node-pty','prebuilds');if(fs.existsSync(d))for(const a of fs.readdirSync(d)){const h=path.join(d,a,'spawn-helper');try{fs.chmodSync(h,0o755)}catch{}}\""30
Show all 6 findings (low-signal and informational)
SeverityKindPathDetailPoints
highJs Hidden Powershellpackage/dist/chunk-JKKKUMTY.jsHidden / non-interactive PowerShell invocation in package code — `-WindowStyle Hidden`, `irm | iex`, `windowsHide: true`, or equivalent — used to download-and-run payloads on Windows installers.45
highInstall Lifecycle Remote Or Execpackage.jsonpostinstall="node -e \"const fs=require('fs'),path=require('path');const d=path.join(__dirname,'node_modules','node-pty','prebuilds');if(fs.existsSync(d))for(const a of fs.readdirSync(d)){const h=path.join(d,a,'spawn-helper');try{fs.chmodSync(h,0o755)}catch{}}\""30
lowCredential file accesspackage/dist/chunk-MQSFB36M.jsmatched "AWS_ACCESS_KEY"5
lowInstall-time lifecycle scriptpackage.jsonpostinstall="node -e \"const fs=require('fs'),path=require('path');const d=path.join(__dirname,'node_modules','node-pty','prebuilds');if(fs.existsSync(d))for(const a of fs.readdirSync(d)){const h=path.join(d,a,'spawn-helper');try{fs.chmodSync(h,0o755)}catch{}}\""5
lowObfuscation Densitypackage/dist/chunk-JCEWPG3R.jshigh encoded/escaped-token density0
lowLarge Javascript Payloadpackage/dist/serve-5ICDUJBC.js4708793 bytes0

Manifest

Package metadata

Scripts1
  • postinstallnode -e "const fs=require('fs'),path=require('path');const d=path.join(__dirname,'node_modules','node-pty','prebuilds');if(fs.existsSync(d))for(const a of fs.readdirSync(d)){const h=path.join(d,a,'spawn-helper');try{fs.chmodSync(h,0o755)}catch{}}"
Dependencies23
  • @anthropic-ai/claude-agent-sdk0.3.170
  • @cursor/sdk1.0.17
  • @linear/sdk82.1.0
  • @modelcontextprotocol/sdk^1.29.0
  • @openai/codex0.138.0
  • @parcel/watcher^2.5.6
  • @typescript/native-previewlatest
  • @vscode/ripgrep^1.18.0
  • @vtsls/language-server^0.3.0
  • better-sqlite3^12.10.0
  • happy-dom^20.5.0
  • loro-crdt1.12.1
  • mermaid^11.15.0
  • modern-screenshot^4.7.0
  • node-datachannel^0.32.3
  • node-pty^1.1.0
  • open^11.0.0
  • pino^10.3.1
  • pino-roll^4.0.0
  • pyright^1.1.410
  • toml^4.1.1
  • typescript^6.0.3
  • ws^8.21.0
Optional dependencies6
  • @cursor/sdk-darwin-arm641.0.17
  • @cursor/sdk-darwin-x641.0.17
  • @cursor/sdk-linux-arm641.0.17
  • @cursor/sdk-linux-x641.0.17
  • @cursor/sdk-win32-x641.0.17
  • pino-pretty^13.1.3