by.jml

Set Visual Studio and Hyper to use zsh, the default macOS Catalina interactive shell

Apple has recently replaced bash with zsh. The reason is said was due to a licensing issue that has kept them stuck with bash version 3.2 which is licensed under GPLv2, as newer versions are licensed under GPLv3.

Nevertheless, upgrading to Catalina takes care of seamlessly switching the login shell from bash to zsh; however, this may not be the case for many people who use third party terminal apps such as Hyper and Visual Studio Code.

If you load any of these apps you might see a notice like this:

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

Running the command chsh -s /bin/zsh will not do anything  😞

chsh -s /bin/zsh  
Changing shell for foo.
Password for foo:
chsh: no changes made

However, you can manually tell these apps to use zsh by editing their settings file.

Hyper

Edit the Hyper settings file. I am using vi but you can also use any other editor.

vi ~/.hyper.js

Scroll to the shell settings line. By default it’s set to null which means load the old default login shell:

shell: '',

Make sure to change the value to /bin/zsh and save the settings file.

shell: '/bin/zsh',

Visual Studio Code

Open the user settings and add this line at the end of the file:

"terminal.integrated.shell.osx": "/bin/zsh"

That’s it. No annoying bash warnings anymore.