zshenv is similar to
zshrc, but it is loaded for all kinds of shells.
zshrc on the other hand is only sourced for interactive shells. I discovered this while trying to use mosh-server on a mac. mosh-server is installed with brew so the binary is in
/opt/homebrew/bin/ and since I had only setup the path for homebrew in
zshrc it was not accessible through non-interactive ssh connections that the mosh clients use to start the mosh-server. Now my
zshenv looks like this: