Package evidence
[email protected]
Install Lifecycle Remote Or Exec: postinstall="node -e \"try { require('node:fs').chmodSync('dist/index.js', 0o755); } catch {}\""
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
- 2,799Niche · −30% score
- Versions published
- 41
- First published
- May 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 promotingMixed 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":["[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":["[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Install Lifecycle Remote Or Exec: postinstall="node -e \"try { require('node:fs').chmodSync('dist/index.js', 0o755); } catch {}\""
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 review · score 22 · status changed
Evidence
Static findings
10 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('node:fs').chmodSync('dist/index.js', 0o755); } catch {}\"" | 30 |
Show all 10 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| high | Install Lifecycle Remote Or Exec | package.json | postinstall="node -e \"try { require('node:fs').chmodSync('dist/index.js', 0o755); } catch {}\"" | 30 |
| low | Credential file access | package/dist/providers/cloud-adapters.js | matched "AWS_SECRET_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/core/config-discovery.js | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/intelligence/harness-introspect.js | matched "AWS_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/providers/model-defaults.js | matched "GOOGLE_APPLICATION_CREDENTIALS" | 5 |
| low | Credential file access | package/dist/security/secret-scanner.js | matched "aws_access_key" | 5 |
| low | Credential file access | package/dist/sandbox/security.js | matched "AWS_SECRET_ACCESS_KEY" | 5 |
| low | Credential file access | package/dist/security/skills-guard.js | matched ".npmrc" | 5 |
| low | Messenger Bot Endpoint | package/dist/channels/telegram.js | matched "api.telegram.org/bot" — messenger-bot URL without exfil context (likely a notification handler) | 5 |
| low | Install-time lifecycle script | package.json | postinstall="node -e \"try { require('node:fs').chmodSync('dist/index.js', 0o755); } catch {}\"" | 5 |
Manifest
Package metadata
Scripts30
affordances:checktsx src/index.ts affordances checkbuildnpm run rpc:check && node scripts/build-typescript.mjs && npm run affordances:check && chmod +x dist/index.jsbuild:cleannode -e "require('node:fs').rmSync('dist',{recursive:true,force:true})" && npm run rpc:check && node scripts/build-typescript.mjs && npm run affordances:check && chmod +x dist/index.jscoveragevitest run --coveragecoverage:civitest run tests/computer-use/screenshot-redactor.test.ts tests/security/secret-redactor.test.ts tests/security/pii-redactor-overlap.test.ts tests/security/redact-overlapping-spans.test.ts tests/unit/pii-redactor.test.ts tests/unit/secret-scanner.test.ts tests/middleware/secret-redactor-middleware.test.ts tests/middleware/file-type-gate.test.ts --coverage --reporter=defaultdesktop:e2e:servenpm --prefix desktop-app run dev -- --host 127.0.0.1 --port 1420 --configLoader nativedevtsx src/index.tse2enpm run e2e:tui && npm run e2e:desktope2e:desktopplaywright test -c playwright.config.tse2e:desktop:nativenode tests/e2e/desktop/desktop-native.mjse2e:tuivitest run tests/e2e/tui --reporter=defaultformatprettier --write "src/**/*.{ts,tsx,js,jsx,json,md}"format:checkprettier --check "src/**/*.{ts,tsx,js,jsx,json,md}"linteslint "src/**/*.{ts,tsx,js,jsx}"lint:fixeslint --fix "src/**/*.{ts,tsx,js,jsx}"postinstallnode -e "try { require('node:fs').chmodSync('dist/index.js', 0o755); } catch {}"prepublishOnlynpm run build:cleanprove:taintnode scripts/prove-taint-substrate.mjsrpc:checknode scripts/generate-rpc-protocol.mjs --checkrpc:generatenode scripts/generate-rpc-protocol.mjssounds:checknode scripts/generate-sound-cues.mjs --check-onlysounds:generatenode scripts/generate-sound-cues.mjsstartnode dist/index.jstestNODE_OPTIONS=--max-old-space-size=6144 vitest runtest-providertsx src/cli/test-provider.tstest:watchvitesttokens:checknode scripts/generate-tokens.mjs --checktokens:generatenode scripts/generate-tokens.mjstypechecktsc --noEmitwotanntsx src/index.ts
Dependencies16
@anthropic-ai/sdk^0.96.0@opentui/core^0.2.14@opentui/react^0.2.14better-sqlite3^12.8.0chalk^5.6.2commander^14.0.3ink^6.8.0ink-text-input^6.0.0magic-bytes.js^1.13.0react^19.2.4sanitize-html^2.17.4shell-quote^1.8.3undici^8.3.0ws^8.20.1yaml2.8.4zod^4.3.6
Optional dependencies5
@napi-rs/keyring^1.2.0keytar^7.9.0qrcode-terminal^0.12.0sharp^0.34.0sqlite-vec^0.1.9