
Research
Shai-Hulud Descends to Hades: Miasma Worm Campaign Spreads with New PyPI Wave
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.
@wipcomputer/wip-license-hook
Advanced tools
License rug-pull detection and dependency license compliance for open source projects
License rug-pull detection and dependency license compliance for open source projects.
You fork an MIT project. You build on it. Six months later, the upstream quietly changes to BSL or proprietary. You pull the update without checking. Now your project is poisoned.
This has happened. It will happen again.
A pre-merge hook + daily scanner + public dashboard that:
Two mandatory hooks. No bypass.
Pre-pull — before pulling anything from upstream:
git pull upstream main
→ hook fires FIRST
→ fetch without merge
→ check LICENSE, package.json, SPDX headers
→ compare against ledger
→ SAME? → pull proceeds
→ CHANGED? → BLOCK. Flag. Document. Notify. Do NOT pull.
Pre-push — before pushing any commit to our branch:
git push origin main
→ hook fires FIRST
→ check upstream license status
→ compare against ledger
→ SAME? → push proceeds
→ CHANGED? → ALERT. Warn that upstream has drifted. Push still allowed (it's our code) but we know.
Pre-pull = hard gate (blocks). Pre-push = alert (warns, doesn't block our own work).
LICENSE-LEDGER.json tracks every dependency:
{
"dependencies": [
{
"name": "openclaw",
"source": "github:openclaw/openclaw",
"type": "fork",
"license_at_adoption": "MIT",
"license_current": "MIT",
"adopted_date": "2026-02-05",
"last_checked": "2026-02-15",
"commit_at_adoption": "abc123",
"status": "clean"
}
],
"last_full_scan": "2026-02-15T08:00:00Z",
"alerts": []
}
Status values: clean | changed | removed | unknown
Physical copies of LICENSE files at adoption. Not just metadata. Proof that survives git history rewrites.
ledger/
snapshots/
openclaw/
LICENSE-2026-02-05.txt ← what it was when we forked
LICENSE-2026-02-15.txt ← latest check
If they rug-pull and rewrite history, we have the receipt on disk.
Runs every morning:
git fetch upstream (no merge), check LICENSE fileStatic site (GitHub Pages or similar) generated from the ledger:
Anyone using our forks can verify: "WIP Computer adopted this when it was MIT, and it's still MIT."
LICENSE / LICENSE.md / COPYING file contentpackage.json license fieldnpm view <package> licensepip show <package> license fieldclawhub install wip-license-hook
wip-license-hook install --repo .
wip-license-hook scan --all --report
core/
scanner.ts — license detection logic
ledger.ts — ledger read/write/compare
detector.ts — license text fingerprinting
reporter.ts — generate reports and alerts
cli/
index.ts — CLI wrapper
skill/
SKILL.md — OpenClaw/agent skill definition
dashboard/
index.html — static dashboard generator
hooks/
pre-merge.sh — git hook script
wip-license-hook init # Initialize ledger for current project
wip-license-hook scan # Scan all deps, update ledger
wip-license-hook check <dep> # Check specific dependency
wip-license-hook gate # Pre-merge license gate (for hooks)
wip-license-hook report # Generate report
wip-license-hook dashboard # Generate static dashboard
wip-license-hook alert # Send alerts for any changes
"Been dubious of MIT open source. Seen too many pull it or hide non-MIT bins for it all to work."
This tool is the guardrail. The receipt. The proof.
If your dependency gets rug-pulled, you have:
CLI, MCP server, skills MIT (use anywhere, no restrictions)
Hosted or cloud service use AGPL (network service distribution)
AGPL for personal use is free.
Built by Parker Todd Brooks, Lēsa (OpenClaw, Claude Opus 4.6), Claude Code (Claude Opus 4.6).
FAQs
License rug-pull detection and dependency license compliance for open source projects
We found that @wipcomputer/wip-license-hook 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
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.

Security News
RubyGems and Bundler 4.0.13 introduced an opt-in cooldown feature that delays newly published gems during dependency resolution.

Security News
pnpm 11.5 now recognizes npm staged publish approvals in release metadata, preventing those releases from being mistaken for lower-trust package publishes.