Skip to content
daniel@MacBookPro:~
Shell & TerminalNews September 1, 2026 2 min read

Apple Makes Zsh the Default Shell in macOS Catalina

Announced June 4, 2019, the switch from Bash to Zsh as macOS's default shell traced back to a licensing constraint, not a technical judgment about which shell was better — Apple was stuck on an old, GPLv2 Bash version indefinitely.

On June 4, 2019, at that year’s WWDC, Apple announced that macOS 10.15 Catalina would ship with Zsh as the default shell for new user accounts, ending Bash’s long tenure as macOS’s default going back to Mac OS X’s original release.

Why Apple actually made this change

The reasoning was licensing, not a technical preference for Zsh over Bash: Apple had been shipping Bash 3.2, the last version released under the GPLv2 license, because all subsequent Bash versions moved to GPLv3 — a license Apple has consistently avoided including in macOS for its own legal and business reasons. Rather than remain permanently frozen on an increasingly outdated Bash version, Apple switched the default to Zsh, which uses the more permissive MIT-style license.

What actually changed for existing users

The switch applied specifically to newly created user accounts on Catalina or later — accounts that had been upgraded from an earlier macOS version kept Bash as their configured default shell unless a user explicitly changed it, meaning the transition wasn’t a single flag-day cutover for the entire existing Mac user base.

Why this mattered beyond a simple default-setting change

Because Apple had been frozen on Bash 3.2 for years by the time of this switch, many macOS users had already been missing newer Bash features (like the associative arrays added in Bash 4.0, a full decade earlier) without necessarily realizing why — the Zsh switch indirectly resolved this stagnation issue as a side effect of the shell change itself, even though licensing, not feature currency, was the stated motivation.

Why this move meaningfully accelerated Zsh’s mainstream visibility

Zsh had already been gaining popularity among developers through frameworks like Oh My Zsh, but Apple’s decision to make it the literal out-of-the-box default for tens of millions of Mac users represented a considerably larger jump in Zsh’s everyday visibility than any third-party framework’s organic adoption alone had achieved.

Sources: