I had Claude Code download a large file for me with curl --progress-bar. Instead of the usual progress bar, this came
back:
#=#=# #
#O#-# ##
O=# # #=#
=-# # -#O#
# # -#O#-
258 lines of it, forming a diagonal zigzag that climbed top-left to bottom-right, reversed, reversed again — a waveform drawn sideways.
Why this happens
curl's --progress-bar is designed for terminals. When you run it interactively, the bar animates in place — one line
that rewrites itself. It does this using carriage returns (\r): print the bar, then return to column zero, then print
the updated bar, overwriting what was there before. You see a smooth animation.
In a real terminal, it looks like this:
When stderr isn't a TTY — like when an AI agent runs curl in a subprocess and captures all output — the \r characters
have nowhere to go. Each redrawn frame becomes its own line instead of overwriting the last one. 258 frames, 258 lines.
The pattern isn't random. Each row is one snapshot of the progress bar at a moment in time. The # characters encode
how much has been downloaded. Reading the pattern diagonally from top-left to bottom-right traces the download from 0%
to 100%. The angle of the diagonal reflects download speed — steeper means faster throughput, shallow means the
connection was slow. The oscillating shape comes from curl's internal update rate interacting with the varying download
speed over the ~4-minute transfer.
It's a time-lapse of a download, visualized sideways.
