pcpb (preview curl pipe bash) is a small tool for previewing the effects of running curl https://... | bash on your system.
It works by running the actual command inside an Alpine Linux Docker container, and then printing the list of modified files. This is useful for when you trust the script source, but are too lazy to look into the script itself.
Note
pcpb is not a sandboxing tool. You should only run scripts from trusted sources.
First, make sure either Docker (sudoless) or Podman is installed.
Then, download the script (or maybe pipe it directly into bash...?):
curl -LO https://raw.githubusercontent.com/federicotdn/pcpb/refs/heads/main/pcpb.sh
chmod +x pcpb.shHere's an example that installs Claude Code:
./pcpb.sh
Once the prompt below appears, enter your 'curl ... | bash' command.
When the command has finished running, press Ctrl-D to finish.
NOTE: pcpb is not a sandboxing tool. You should only run scripts
from trusted sources.
~ ❯ curl -fsSL https://claude.ai/install.sh | bash
...
✅ Installation complete!After pressing Ctrl-D, a summary will then be displayed:
Detected changes:
Type Size Path
----- --------- ----------------------------------------
Added 212.7 MiB /home/pcpb/.local/bin/claude
Added 212.7 MiB /home/pcpb/.local/share/claude/versions/2.1.19
Added 74.5 KiB /home/pcpb/.claude/cache/changelog.md
Added 22.3 KiB /home/pcpb/.claude/statsig/statsig.cached.evaluations.ce1dff8430
Added 13.7 KiB /home/pcpb/.claude/debug/e63a94f1-bbfb-43c6-87a5-d60a24d101ba.txt
Added 13.7 KiB /home/pcpb/.claude/debug/latest
Added 947.0 B /home/pcpb/.claude.json
Added 853.0 B /home/pcpb/.claude.json.backup
Added 105.0 B /home/pcpb/.claude/statsig/statsig.session_id.2656274335
Added 55.0 B /home/pcpb/.claude/statsig/statsig.last_modified_time.evaluations
Added 38.0 B /home/pcpb/.claude/statsig/statsig.stable_id.2656274335
Total file changes: 11
Bytes added in new files: 425.6 MiB