
Research
/Security News
11 Malicious NuGet Tools Pose as Game Cheats to Drop a Windows Host-Surveillance Payload
11 malicious NuGet tools pose as game cheats to deploy Windows payloads, track hosts, and use Google Sheets for telemetry and control.
pi-retention
Advanced tools
Local retention tracker for Pi skills and extensions.
Pi Retention counts local usage, surfaces expired items, and quarantines one stale item at a time on startup.
On each Pi launch, Pi Retention evaluates expired active roots and may prompt for at most one quarantine candidate.
dueAt wins; ties break on oldest lastUsedAt (age).P), quarantined (Q), self-protected, and not-yet-due roots never appear in the startup prompt./retention:report uses the same ordering and labels the startup candidate explicitly.See ROADMAP.md for MVP scope and non-goals.
A/!/P/Q status and the single startup candidateretention:init — initialize the manifest for the current projectretention:report — show all tracked rootsretention:confirm — quarantine the oldest expired candidateretention:restore — restore one quarantined itemretention:purge — permanently delete one quarantined itemretention:pin / retention:unpin — protect or release one item.pi-retention-project.yaml — project manifest.pi-retention.yaml — per-root sidecar.pi-retention.jsonl — append-only usage log.pi-retention-trash/ — quarantine areaInstall the published npm package with Pi:
pi install npm:pi-retention
Pin a specific version when you want reproducible installs:
pi install npm:pi-retention@0.1.4
Install into the current project instead of your user Pi settings:
pi install npm:pi-retention -l
Or install from GitHub:
pi install git:github.com/eiei114/pi-retention
Try it without permanently installing:
pi -e npm:pi-retention
Try this package locally from a clone:
pi -e .
Then run:
/retention:report
On startup, Pi Retention checks the single oldest expired candidate and asks once before quarantine. Declining the prompt leaves the item active for the next launch.
Published tarball includes:
| Path | Purpose |
|---|---|
extensions/ | Pi TypeScript extension entrypoints |
lib/ | Shared TypeScript helpers |
docs/ | Supporting docs (examples.md, release.md) |
README.md | Project entrypoint |
ROADMAP.md | MVP scope and non-goals |
CHANGELOG.md | Release history |
LICENSE | MIT license |
npm install
npm run ci
npm run ci runs typecheck, tests, and npm run pack:check (npm pack --dry-run) to verify the published tarball contents before release.
Before tagging, confirm package readiness:
npm run ci
npm run pack:check
Then bump and push:
npm version patch
git push
See docs/release.md for Trusted Publishing setup.
Pi packages can execute code with your local permissions. Review extensions before installing third-party packages.
For vulnerability reporting, see SECURITY.md.
CONTRIBUTING.mdCODE_OF_CONDUCT.mdCHANGELOG.mdMIT
FAQs
Local retention tracker for Pi skills and extensions.
We found that pi-retention demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
11 malicious NuGet tools pose as game cheats to deploy Windows payloads, track hosts, and use Google Sheets for telemetry and control.

Research
/Security News
4 compromised asyncapi packages deliver miasma botnet loader on macOS, Linux and Windows.

Research
/Security News
A compromised jscrambler npm release added a malicious preinstall hook that runs hidden native binaries on Linux, macOS, and Windows.