Fish support is now included out of the box with gcloud, however I ran into a rather annoying problem. The code included in google-cloud-sdk/path.fish.inc (and @nafg answer) leaves the directory changed, as a result, each new shell session starts in the google-cloud-sdk directory.
The modification I did was pretty simple, adding two extra lines to get the current working directory and restore it later. This seems to have resolved the issue for me, so hopefully helps any other person looking for problems with the gcloud fish.
set restore_dir (pwd -P) set sdk_dir (builtin cd "$apparent_sdk_dir" > /dev/null; and pwd -P) set bin_path "$sdk_dir/bin" cd "$restore_dir"
source share