EN
Back to the archive

The archive · Product Ideas · Product decision · 2009–2016

Oh My Zsh: a tangled personal zsh config becomes a 900-contributor framework

Coworkers would not copy a .zshrc its owner could not explain, so Robby Russell packaged it as a clean open-source project — Oh My Zsh.

Robby Russell (creator; VP of engineering at Planet Argon)

The ideaTurn a personal zsh config into an installable open-source project — readable modules, one-command installer, themes, plugins — so users extend it, not copy a file.substantial

What it had to solve

In summer 2009 Robby Russell, a daily zsh user of more than three years at the Portland agency Planet Argon, kept urging coworkers to leave Bash. His own .zshrc had grown into a tangled rat's nest assembled from IRC friends' configurations — he could not explain about 30% of it — and the coworkers who knew that refused to copy/paste it.

How it works

In the summer of 2009 Robby Russell, a web developer who had used zsh daily for more than three years, was helping a coworker debug something in the terminal. The default Bash prompt did not respond to the shortcuts his brain was used to, and he kept urging colleagues at the Portland agency Planet Argon to switch to zsh. His own .zshrc, assembled from configurations friends shared on IRC, had become a tangled rat's nest — he admitted he did not know what about 30 percent of it did — and coworkers who knew that refused to copy it.

Instead of asking people to paste his file, Russell reorganized the config into a collection of smaller readable files, wrote setup instructions, and on August 28, 2009 packaged everything into a new git repository. His goal was modest: get one or two team members using his scripts. Within a day every developer at Planet Argon had migrated from Bash to zsh.

The project then took shape from feature requests. The day after launch, two coworkers wanted to customize their prompts, so Russell introduced themes; external pull requests followed, and within a month there were a dozen themes. An installer cut setup to one command, an upgrade script followed, and about three weeks later an auto-updater began periodically prompting users to fetch changes — a feature Russell calls the project's turning point, because it kept nearly every user current and subtly introduced them to new features. Ten months in, a plugin system arrived with five plugins.

By March 2016 Oh My Zsh had grown far beyond the agency: about 140 themes, 214 plugins, 910 people whose code had been accepted, and the top spot among GitHub's trending shell repositories. Russell's eight lessons for open source — start small, do not try to account for every scenario, keep documentation human — frame the whole story as playtime that kept building momentum nearly seven years later.

Why it lands

  • Russell set a goal of getting one or two coworkers to use his scripts, so the project was a success within a day and everything after was organic growth.
  • Reorganizing the tangled config into small readable files made it educational instead of a black box people had to trust on faith.
  • The installer, upgrade script and auto-updater were built around real friction — skipped steps, missed updates — not abstract architecture.
  • Auto-update prompts showed users what changed and subtly introduced new features, which Russell calls the project's turning point.
  • Themes and plugins turned users into contributors: five bundled plugins grew past 200 through pull requests from around the world.

What it did

Within a day the whole Planet Argon team had switched from Bash to zsh. By March 2016 Oh My Zsh counted about 140 themes, 214 plugins and 910 accepted contributors, sat atop GitHub's trending shell repositories, and the origin essay drew 380 Hacker News points — from a project meant to convert one or two coworkers.

Their siteOh My Zsh on GitHub

What you can take

Start an open source project with a tiny, attainable goal for real users, then let feature requests and pull requests shape it — automatic updates keep a community engaged without being chased.

Since then

Russell never expected Oh My Zsh to keep building momentum nearly seven years later. He admits it took three to four years too many to bring in a second maintainer and kept the project as playtime alongside running Planet Argon, his 19-person agency. In 2012 he halved the auto-update prompt frequency while keeping it the default, and theme acceptance was deliberately slowed after the project passed 100 — about 140 by 2016. When a major simplification was proposed he declined, agreeing with the group behind the fork to follow different paths.

Sources

spotted an error? The archive wants to know.

Your turn

You just read one. Describe the brief you are staring at, and see who has been given the same problem.

Free account · 3 free questions · no card

Related cases