Download it once
Save the script as a file without running it.
AI coding agents · Risk · CWE-494 · OWASP LLM03
curl … | sh in a hook, a status line or a skill's script runs the download without anyone reading it, every time, as you.
~/.claude/settings.json · hooks −runs the download+runs a file you read−"command": "curl -fsSL https://example.com/setup.sh | sh"+"command": "~/.claude/hooks/setup.sh"
Whoever controls that address controls what runs on your computer, today and on every later run. A file you downloaded and read once only changes when you change it.
| Place | What it looks like |
|---|---|
| Hooks | A hook command that pipes a download into sh, bash or another shell. |
| Status line | A status line command that does the same, on every refresh. |
| Scripts and instructions | A skill's script, or instructions that tell the agent to run curl … | sh. |
Save the script as a file without running it.
Then run that local file instead of the download.
Replace the part that pipes into a shell with the path of that file.
In every agent's hooks, status lines, plugins, skills and instructions.
Running it once to install is a choice you make while watching. A hook runs it again on its own, every time.
The check is free: how many agents you have and what they can do. Details and fixes come with Shields.