zgrep appears to capture and process the output of grep, rather than sending it directly to the terminal, so zgrep --color=auto does not work. zgrep --color=always does work, but that would break cases where zgrep's output doesn't go to a terminal. One possible fix would be to look for --color=auto and handle that internally to zgrep, by checking [ -t 1 ] (stdout goes to a terminal) and passing --color=always to grep if so. - Josh Triplett