I cleaned the infected packages. I deleted node_modules. I ran npm ci --ignore-scripts. Clean install, no lifecycle scripts. Done, right?
Then I opened the project in VS Code.
The hook fired.
This is the part of the Shai-Hulud npm supply chain attack that most incident response guides miss. The worm doesn't only live in npm lifecycle scripts -- it plants persistence mechanisms directly into your IDE configuration. And those fire completely independently of npm.
What happened on August 4, 2026








