Package evidence
[email protected]
Install Lifecycle Remote Or Exec: postinstall="node -e \"const fs=require('node:fs'); const global=process.env.npm_config_global==='true'||process.env.npm_config_location==='global'||process.env.LYNK_BRIDGE_INSTALL_SERVICE==='1'; if(global && process.env.LYNK_BRIDGE_SKIP_SERVICE_INSTALL!=='1' && fs.existsSync('./dist/host/npmPostinstall.js')) import('./dist/host/npmPostinstall.js');\""
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
- 202
- Versions published
- 1
- First published
- May 2026
- Publisher
- am-will
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 \"const fs=require('node:fs'); const global=process.env.npm_config_global==='true'||process.env.npm_config_location==='global'||process.env.LYNK_BRIDGE_INSTALL_SERVICE==='1'; if(global && process.env.LYNK_BRIDGE_SKIP_SERVICE_INSTALL!=='1' && fs.existsSync('./dist/host/npmPostinstall.js')) import('./dist/host/npmPostinstall.js');\""
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 \"const fs=require('node:fs'); const global=process.env.npm_config_global==='true'||process.env.npm_config_location==='global'||process.env.LYNK_BRIDGE_INSTALL_SERVICE==='1'; if(global && process.env.LYNK_BRIDGE_SKIP_SERVICE_INSTALL!=='1' && fs.existsSync('./dist/host/npmPostinstall.js')) import('./dist/host/npmPostinstall.js');\"" | 30 |
| high | New Account With Lifecycle Hook | package.json | package first published 11 day(s) ago, 1 total version(s), has lifecycle hook | 25 |
Show all 3 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="node -e \"const fs=require('node:fs'); const global=process.env.npm_config_global==='true'||process.env.npm_config_location==='global'||process.env.LYNK_BRIDGE_INSTALL_SERVICE==='1'; if(global && process.env.LYNK_BRIDGE_SKIP_SERVICE_INSTALL!=='1' && fs.existsSync('./dist/host/npmPostinstall.js')) import('./dist/host/npmPostinstall.js');\"" | 30 |
| high | New Account With Lifecycle Hook | package.json | package first published 11 day(s) ago, 1 total version(s), has lifecycle hook | 25 |
| low | Install-time lifecycle script | package.json | postinstall="node -e \"const fs=require('node:fs'); const global=process.env.npm_config_global==='true'||process.env.npm_config_location==='global'||process.env.LYNK_BRIDGE_INSTALL_SERVICE==='1'; if(global && process.env.LYNK_BRIDGE_SKIP_SERVICE_INSTALL!=='1' && fs.existsSync('./dist/host/npmPostinstall.js')) import('./dist/host/npmPostinstall.js');\"" | 5 |
Manifest
Package metadata
Scripts27
bridgetsx --env-file-if-exists=.env.local src/bridge/server.tsbridge:distnode dist/bridge/server.jsbuildnpm run clean && tsc -p tsconfig.build.jsonchecktsc -p tsconfig.json --noEmitcleannode -e "require('node:fs').rmSync('dist', { recursive: true, force: true })"codex:mcptsx --env-file-if-exists=.env.local src/scripts/configureCodexMcp.tscodex:schemascodex app-server generate-ts --out src/generated/codex-app-serverdemo:agenttsx --env-file-if-exists=.env.local src/scripts/sendUserRequest.tsdemo:open-settingstsx --env-file-if-exists=.env.local src/scripts/sendCommand.ts open_app '{"appName":"Settings"}'hermes:mcptsx --env-file-if-exists=.env.local src/scripts/configureHermesMcp.tshost:diagnosticstsx --env-file-if-exists=.env.local src/host/cli.ts diagnosticshost:install-servicetsx --env-file-if-exists=.env.local src/host/cli.ts install-servicehost:mcptsx --env-file-if-exists=.env.local src/host/cli.ts mcphost:pairingtsx --env-file-if-exists=.env.local src/host/cli.ts pairinghost:pairing:qrtsx --env-file-if-exists=.env.local src/host/cli.ts pairing --qrhost:refreshtsx --env-file-if-exists=.env.local src/host/cli.ts refreshhost:service-plantsx --env-file-if-exists=.env.local src/host/cli.ts service-planhost:service-statustsx --env-file-if-exists=.env.local src/host/cli.ts service-statushost:uninstall-servicetsx --env-file-if-exists=.env.local src/host/cli.ts uninstall-servicemcptsx --env-file-if-exists=.env.local src/mcp/androidPhoneServer.tsopenclaw:mcptsx --env-file-if-exists=.env.local src/scripts/configureOpenClawMcp.tsphone:healthcurl -sS http://127.0.0.1:8788/healthphone:tailscaletsx --env-file-if-exists=.env.local src/scripts/printTailscalePairing.tsphone:usbadb reverse tcp:8788 tcp:8788 && adb shell monkey -p app.lynk 1postinstallnode -e "const fs=require('node:fs'); const global=process.env.npm_config_global==='true'||process.env.npm_config_location==='global'||process.env.LYNK_BRIDGE_INSTALL_SERVICE==='1'; if(global && process.env.LYNK_BRIDGE_SKIP_SERVICE_INSTALL!=='1' && fs.existsSync('./dist/host/npmPostinstall.js')) import('./dist/host/npmPostinstall.js');"prepacknpm run buildtestnode --import tsx --test "src/**/*.test.ts"
Dependencies5
@modelcontextprotocol/sdk^1.22.0qrcode-terminal^0.12.0tsx^4.20.6ws^8.18.3zod^4.1.12