Você pode fazer isso redefinindo o widget de linha de aceitação:
add-grc() { [[ $BUFFER = grc* ]] || BUFFER="grc $BUFFER"; zle .$WIDGET "$@"; }
zle -N accept-line add-grc
No entanto, isso poderia causar problemas para comandos como "para i (..)", "var = x", "f () {" ...