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.
- Versions published
- 2
- First published
- May 2026
- Publisher
- hoshinorin
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":["@hoshinorin/[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":["@hoshinorin/[email protected]"],"fail_on":"review"}'Why flagged
What the scanner saw
Remote Payload: matched "curl "
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 42 · status changed
Evidence
Static findings
5 static · 0 from release diff · showing high-signal first.
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/scripts/bootstrap-entrypoint.sh | matched "curl " | 12 |
| medium | Remote Payload | package/install.sh | matched "raw.githubusercontent.com" | 12 |
| medium | Remote Payload | package/update.sh | matched "raw.githubusercontent.com" | 12 |
Show all 5 findings (low-signal and informational)
| Severity | Kind | Path | Detail | Points |
|---|---|---|---|---|
| medium | Remote Payload | package/scripts/bootstrap-entrypoint.sh | matched "curl " | 12 |
| medium | Remote Payload | package/install.sh | matched "raw.githubusercontent.com" | 12 |
| medium | Remote Payload | package/update.sh | matched "raw.githubusercontent.com" | 12 |
| low | Credential file access | package/.github/workflows/publish-hotfix.yml | matched "NPM_TOKEN" | 3 |
| low | Credential file access | package/.github/workflows/publish-stable.yml | matched "NPM_TOKEN" | 3 |
Manifest
Package metadata
Scripts21
buildnpm run build:core && chmod +x dist/app/rin/main.js dist/app/rin-daemon/daemon.js dist/app/rin-daemon/worker.js dist/app/rin-tui/main.js dist/app/rin-gui/main.js dist/app/rin-desktop-host/main.js dist/app/rin-install/main.jsbuild:corerm -rf dist && tsc -p tsconfig.json --pretty falseformatnode scripts/run-format-check.mjs --writeformat:checknode scripts/run-format-check.mjs --checklinteslint . --ext .ts --max-warnings 0lint:fixeslint . --ext .ts --fixpreparetsx scripts/install-git-hooks.tsrelease:bootstrapnode scripts/release/export-bootstrap-branch.mjsrelease:changelognode scripts/release/verify-changelog.mjsrelease:manifestnode scripts/release/update-release-manifest.mjssync:pi-docsnode scripts/sync-upstreams.mjs pisync:prompt-engineernode scripts/sync-upstreams.mjs prompt-engineersync:skill-creatornode scripts/sync-upstreams.mjs skill-creatorsync:upstreamsnode scripts/sync-upstreams.mjstestnpm run test:unit && npm run test:e2etest:e2enpm run build && node --import tsx --test --test-concurrency=2 $(find tests/e2e -name '*.test.ts' -print | sort)test:interactivenpm run build && node --import tsx --test --test-concurrency=2 $(find tests/interactive -name '*.test.ts' -print | sort)test:manual:install-tuinpm run build && node --import tsx tests/interactive/install-to-tui-manual.tstest:manual:install-tui:scriptednpm run build && node --import tsx tests/interactive/install-to-tui-manual.ts --scriptedtest:releasenode --import tsx --test --test-concurrency=4 tests/unit/installer-modules.test.ts tests/unit/rin-cli.test.ts tests/unit/rpc-and-shared.test.ts tests/e2e/bootstrap-entrypoint.test.ts tests/e2e/install-to-tui-user-flow.test.ts tests/unit/release.test.ts tests/e2e/release-scripts.test.tstest:unitnpm run build && node --import tsx --test --test-concurrency=4 $(find tests/unit -name '*.test.ts' -print | sort)
Dependencies36
@clack/prompts^0.10.1@earendil-works/pi-agent-core^0.75.5@earendil-works/pi-ai^0.75.5@earendil-works/pi-coding-agent^0.75.5@earendil-works/pi-tui^0.75.5@larksuiteoapi/node-sdk^1.60.0@mozilla/readability^0.6.0@silvia-odwyer/photon-node^0.3.4@slack/socket-mode^2.0.6@slack/web-api^7.15.1@types/jsdom^28.0.1@types/turndown^5.0.6better-sqlite3^12.8.0cac^6.7.14chalk^5.6.2cli-highlight^2.1.11diff^8.0.4discord.js^14.26.3electron^41.3.0extract-zip^2.0.1file-type^21.3.4glob^13.0.6hosted-git-info^9.0.2ignore^7.0.5jsdom^29.1.1marked^15.0.12minimatch^10.2.4pretty-ms^9.3.0proper-lockfile^4.1.2qq-guild-bot^2.9.5- …and 6 more.