{"slug": "oh-my-zsh", "name": "Oh My Zsh", "category": "terminal", "category_name": "Terminal and shell", "description": "Community framework for managing Zsh configuration, with bundled plugins, themes and aliases.", "recommenders": 6, "commenters": 19, "warners": 6, "score": 1.787, "rising": -1.96, "first": "2026-01-07", "latest": "2026-02-21", "why": "Liked for giving a good shell setup out of the box with popular defaults and for its handy git plugin aliases.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 6, "neutral": 7, "compare": 0, "warn": 6}, "spark": [0, 0, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0], "listed": true, "loved": ["Sensible defaults", "Git aliases"], "caveat": "Slow startup", "short_quote": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://ohmyz.sh/", "pricing": "open source", "aliases": ["Oh My Zsh", "oh-my-zsh"], "verdict": [{"text": "Liked for giving a good shell setup out of the box with popular defaults", "cites": [{"id": 745006592, "item_id": 46562912, "url": "https://news.ycombinator.com/item?id=46562912", "by": "g947o", "date": "2026-01-09", "stance": "recommend", "quote": "I use oh my zsh for exactly one reason: I can get a good shell experience out of the box", "excerpt": "I use oh my zsh for exactly one reason: I can get a good shell experience out of the box and immediately start working on stuff productively, whether it's a new machine, a new remote host or a container. I could spend hours figuring out all those things, bit I'd rather use that time for something more important.", "context": "", "use_case": "out-of-box shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745104256, "item_id": 46569016, "url": "https://news.ycombinator.com/item?id=46569016", "by": "ricardolopes", "date": "2026-01-10", "stance": "recommend", "quote": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own.", "excerpt": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own. Its main advantage is convention over configuration. For instance, I just have to learn the git plugin aliases once, and then I can use them anywhere with OMZ + git plugin. Is there any lighter alternative that is compatible with OMZ plugins?", "context": "", "use_case": "zsh defaults and git aliases", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745009216, "item_id": 46563076, "url": "https://news.ycombinator.com/item?id=46563076", "by": "alkh", "date": "2026-01-09", "stance": "neutral", "quote": "I use oh-my-zsh for default setup and that's it.", "excerpt": "Like many other people, I use oh-my-zsh for default setup and that's it. I literally use a single plugin for git and very actively autoload my custom functions to avoid startup delay. With my 384 line config and oh-my-zsh on, here are the results: $ hyperfine -N \"zsh -lc 'exit 0'\" \"zsh -c 'exit 0'\" Benchmark 1: zsh -lc 'exit 0' Time (mean \u00b1 \u03c3): 54.5 ms \u00b1 6.3 ms [User: 10.2 ms, System: 14.3 ms] Range (min \u2026 max): 38.1", "context": "", "use_case": "default zsh setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"text": " and for its handy git plugin aliases.", "cites": [{"id": 753414128, "item_id": 47088383, "url": "https://news.ycombinator.com/item?id=47088383", "by": "galbar", "date": "2026-02-20", "stance": "recommend", "quote": "The git plugin in oh-my-zsh has an alias for this: gbda", "excerpt": "The git plugin in oh-my-zsh has an alias for this: gbda It also has one for squash-merged branches: gbds Very useful I've been using them for years", "context": "", "use_case": "git branch cleanup aliases", "switched_from": "", "story": "I found a useful Git one liner buried in leaked CIA developer docs"}, {"id": 745104256, "item_id": 46569016, "url": "https://news.ycombinator.com/item?id=46569016", "by": "ricardolopes", "date": "2026-01-10", "stance": "recommend", "quote": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own.", "excerpt": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own. Its main advantage is convention over configuration. For instance, I just have to learn the git plugin aliases once, and then I can use them anywhere with OMZ + git plugin. Is there any lighter alternative that is compatible with OMZ plugins?", "context": "", "use_case": "zsh defaults and git aliases", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745162112, "item_id": 46572632, "url": "https://news.ycombinator.com/item?id=46572632", "by": "jadar", "date": "2026-01-10", "stance": "neutral", "quote": "What I basically use omz for is 1) autocomplete, 2) git aliases, and 3) my beloved prompt.", "excerpt": "I have been using omz for YEARS. I have practically grown up with it. I resent that I would have never noticed that it took several hundred milliseconds to load, if it were not for this discussion. I never felt the delay particularly unless I was in a very large Git repository \u2014 which is rare. On the bright side, now I know about `fish` and am learning there are some nice features I never had in ZSH (i.e. much more a", "context": "", "use_case": "autocomplete, git aliases, prompt", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"text": " The most common complaint is slow shell startup", "cites": [{"id": 745039153, "item_id": 46564947, "url": "https://news.ycombinator.com/item?id=46564947", "by": "lifetimerubyist", "date": "2026-01-10", "stance": "warn", "quote": "I switched to Prezto because of how slow OMZ is", "excerpt": "I switched to Prezto because of how slow OMZ is, been really happy with it. At one point it started causing issues with the IntelliJ environment reader but it\u2019s been perfect once I sorted that out.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745022993, "item_id": 46563937, "url": "https://news.ycombinator.com/item?id=46563937", "by": "arnvald", "date": "2026-01-10", "stance": "warn", "quote": "For some reason it was slow to load which I found annoying", "excerpt": "I used Oh My Zsh for years, but there were literally 3-4 features I relied on: autocompletion, git plugin, history search, and one theme. For some reason it was slow to load which I found annoying, so I used Claude Code to optimize it. In the end I ended up removing Oh My ZSH entirely, now I have a single .zshrc file that contains everything, and it became much faster. Similarly I moved from Packer to Lazy.nvim and u", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745226224, "item_id": 46576639, "url": "https://news.ycombinator.com/item?id=46576639", "by": "exq", "date": "2026-01-11", "stance": "warn", "quote": "Oh My Zsh is more sluggish than benching zsh -ic 'exit 0' would suggest.", "excerpt": "Until reading this thread I never knew so many in the industry were against performant software and workflows, but I suppose that explains the state of things. Oh My Zsh is more sluggish than benching zsh -ic 'exit 0' would suggest. This benchmark will show command lag among other things, which is very noticeable on a slower computer. https://github.com/romkatv/zsh-bench I use https://github.com/romkatv/zsh4humans. I", "context": "", "use_case": "zsh configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745008674, "item_id": 46563042, "url": "https://news.ycombinator.com/item?id=46563042", "by": "tristor", "date": "2026-01-09", "stance": "warn", "quote": "Prezto is faster than OMZ, and has been for over a decade.", "excerpt": "Prezto is faster than OMZ, and has been for over a decade. Starship is faster still. I switched from using Prezto standalone to using Prezto + Starship and relying primarily on Starship several years ago. I'd be surprised if many people are still using Oh My ZSH in 2026 vs using Prezto, anyway.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"text": ", and several commenters replaced it with a lean plain zsh config.", "cites": [{"id": 745022993, "item_id": 46563937, "url": "https://news.ycombinator.com/item?id=46563937", "by": "arnvald", "date": "2026-01-10", "stance": "warn", "quote": "For some reason it was slow to load which I found annoying", "excerpt": "I used Oh My Zsh for years, but there were literally 3-4 features I relied on: autocompletion, git plugin, history search, and one theme. For some reason it was slow to load which I found annoying, so I used Claude Code to optimize it. In the end I ended up removing Oh My ZSH entirely, now I have a single .zshrc file that contains everything, and it became much faster. Similarly I moved from Packer to Lazy.nvim and u", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745006896, "item_id": 46562931, "url": "https://news.ycombinator.com/item?id=46562931", "by": "anotherpaul", "date": "2026-01-09", "stance": "warn", "quote": "it really does not warrant a whole software project as a dependency.", "excerpt": "I agree, I used omz a while now but I have since also realised that the features I uses are so basic, it really does not warrant a whole software project as a dependency. So I went and had Gemini make me a zsh config with the features I actually use. Took 15 minutes to get all the autocompelte, aliases and search functionality and done.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745014978, "item_id": 46563436, "url": "https://news.ycombinator.com/item?id=46563436", "by": "darkamaul", "date": "2026-01-09", "stance": "neutral", "quote": "I have been using OMZ for the last 8 years but recently made the switch to plain zsh", "excerpt": "I have been using OMZ for the last 8 years but recently made the switch to plain zsh with : - starship for a better prompt - Claude ported plugins I was using from omz (extract, sudo) - custom written aliases that were muscle memory - zoxide for the a command So far that has been a great move, my terminal tab feel snappy again. One thing I miss (but I\u2019m sure I could find a way to replace it) is `cd \u2026.\u00b4", "context": "", "use_case": "shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745132720, "item_id": 46570795, "url": "https://news.ycombinator.com/item?id=46570795", "by": "asadjb", "date": "2026-01-10", "stance": "neutral", "quote": "I've been an oh-my-zsh user for many years now, being very happy with the very small set of features I use from it.", "excerpt": "I've been an oh-my-zsh user for many years now, being very happy with the very small set of features I use from it. Previously I could never think of trying to figure out how to replicate the features I need without the other features from oh-my-zsh, which does make the shell noticeably slower. Just now, after reading this article, I used Claude code and have removed the OMZ config within 5 minutes. Here's my prompt ", "context": "", "use_case": "shell config", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}], "praise": [{"label": "Sensible defaults", "summary": "Gives a productive shell setup immediately on new machines, remote hosts or containers without hand-rolling config.", "quotes": [{"id": 745006592, "item_id": 46562912, "url": "https://news.ycombinator.com/item?id=46562912", "by": "g947o", "date": "2026-01-09", "stance": "recommend", "quote": "I use oh my zsh for exactly one reason: I can get a good shell experience out of the box", "excerpt": "I use oh my zsh for exactly one reason: I can get a good shell experience out of the box and immediately start working on stuff productively, whether it's a new machine, a new remote host or a container. I could spend hours figuring out all those things, bit I'd rather use that time for something more important.", "context": "", "use_case": "out-of-box shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745104256, "item_id": 46569016, "url": "https://news.ycombinator.com/item?id=46569016", "by": "ricardolopes", "date": "2026-01-10", "stance": "recommend", "quote": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own.", "excerpt": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own. Its main advantage is convention over configuration. For instance, I just have to learn the git plugin aliases once, and then I can use them anywhere with OMZ + git plugin. Is there any lighter alternative that is compatible with OMZ plugins?", "context": "", "use_case": "zsh defaults and git aliases", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745009216, "item_id": 46563076, "url": "https://news.ycombinator.com/item?id=46563076", "by": "alkh", "date": "2026-01-09", "stance": "neutral", "quote": "I use oh-my-zsh for default setup and that's it.", "excerpt": "Like many other people, I use oh-my-zsh for default setup and that's it. I literally use a single plugin for git and very actively autoload my custom functions to avoid startup delay. With my 384 line config and oh-my-zsh on, here are the results: $ hyperfine -N \"zsh -lc 'exit 0'\" \"zsh -c 'exit 0'\" Benchmark 1: zsh -lc 'exit 0' Time (mean \u00b1 \u03c3): 54.5 ms \u00b1 6.3 ms [User: 10.2 ms, System: 14.3 ms] Range (min \u2026 max): 38.1", "context": "", "use_case": "default zsh setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "Git aliases", "summary": "The git plugin's aliases, such as gbda and gbds, are learned once and usable anywhere.", "quotes": [{"id": 753414128, "item_id": 47088383, "url": "https://news.ycombinator.com/item?id=47088383", "by": "galbar", "date": "2026-02-20", "stance": "recommend", "quote": "The git plugin in oh-my-zsh has an alias for this: gbda", "excerpt": "The git plugin in oh-my-zsh has an alias for this: gbda It also has one for squash-merged branches: gbds Very useful I've been using them for years", "context": "", "use_case": "git branch cleanup aliases", "switched_from": "", "story": "I found a useful Git one liner buried in leaked CIA developer docs"}, {"id": 745104256, "item_id": 46569016, "url": "https://news.ycombinator.com/item?id=46569016", "by": "ricardolopes", "date": "2026-01-10", "stance": "recommend", "quote": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own.", "excerpt": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own. Its main advantage is convention over configuration. For instance, I just have to learn the git plugin aliases once, and then I can use them anywhere with OMZ + git plugin. Is there any lighter alternative that is compatible with OMZ plugins?", "context": "", "use_case": "zsh defaults and git aliases", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745162112, "item_id": 46572632, "url": "https://news.ycombinator.com/item?id=46572632", "by": "jadar", "date": "2026-01-10", "stance": "neutral", "quote": "What I basically use omz for is 1) autocomplete, 2) git aliases, and 3) my beloved prompt.", "excerpt": "I have been using omz for YEARS. I have practically grown up with it. I resent that I would have never noticed that it took several hundred milliseconds to load, if it were not for this discussion. I never felt the delay particularly unless I was in a very large Git repository \u2014 which is rare. On the bright side, now I know about `fish` and am learning there are some nice features I never had in ZSH (i.e. much more a", "context": "", "use_case": "autocomplete, git aliases, prompt", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "Acceptable startup", "summary": "Some users with few plugins measured startup at around 50-60 ms.", "quotes": [{"id": 745029632, "item_id": 46564352, "url": "https://news.ycombinator.com/item?id=46564352", "by": "Ciantic", "date": "2026-01-10", "stance": "recommend", "quote": "I originally switched to ZSH + Oh My Shell because it opens so fast.", "excerpt": "I have these plugins: git, zsh-autosuggestions /usr/bin/time -f \"%e seconds\" zsh -i -c exit 0.06 seconds This is acceptable, maybe the zsh-autocomplete is the problem for author or something else? I originally switched to ZSH + Oh My Shell because it opens so fast. Ideally plugins would initialize asynchronously but it's not very easy with shell scripts I think.", "context": "", "use_case": "shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745009216, "item_id": 46563076, "url": "https://news.ycombinator.com/item?id=46563076", "by": "alkh", "date": "2026-01-09", "stance": "neutral", "quote": "I use oh-my-zsh for default setup and that's it.", "excerpt": "Like many other people, I use oh-my-zsh for default setup and that's it. I literally use a single plugin for git and very actively autoload my custom functions to avoid startup delay. With my 384 line config and oh-my-zsh on, here are the results: $ hyperfine -N \"zsh -lc 'exit 0'\" \"zsh -c 'exit 0'\" Benchmark 1: zsh -lc 'exit 0' Time (mean \u00b1 \u03c3): 54.5 ms \u00b1 6.3 ms [User: 10.2 ms, System: 14.3 ms] Range (min \u2026 max): 38.1", "context": "", "use_case": "default zsh setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "QoL over speed", "summary": "Some argue its quality-of-life features outweigh a small startup delay.", "quotes": [{"id": 745010432, "item_id": 46563152, "url": "https://news.ycombinator.com/item?id=46563152", "by": "DocTomoe", "date": "2026-01-09", "stance": "recommend", "quote": "The QoL effects of omz outweigh microtuning startup times significantly.", "excerpt": "> My workflows involve opening and closing up to hundreds of terminal or tmux tabs a day. I do everything from the terminal. Just imagine that opening a new tab in a text editor would take half a second every time. This sounds like overoptimization on a neglible time loss for what is essentially an unique (and dare I say: broken?) workflow. I use terminals a lot ... but I work with 4-5 day-persistent terminals that I", "context": "", "use_case": "shell", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745019680, "item_id": 46563730, "url": "https://news.ycombinator.com/item?id=46563730", "by": "shevy-java", "date": "2026-01-09", "stance": "neutral", "quote": "That +0.5 seconds delay will kill cats everywhere.", "excerpt": "> The main problem with Oh My Zsh is that it adds a lot of unnecessary bloat that affects shell startup time. Wowsers! That +0.5 seconds delay will kill cats everywhere. We must microoptimise the startup time of shells!!! Or ... we could simply use bash and KDE konsole with, say, 10 tabs. That setup works for me since ages; admittedly I use bash just as a wrapper for simple actions as well as calling a gazillion of a", "context": "", "use_case": "shell configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "Autocomplete and prompt", "summary": "Users rely on it for autocompletion, history search and their prompt theme.", "quotes": [{"id": 745162112, "item_id": 46572632, "url": "https://news.ycombinator.com/item?id=46572632", "by": "jadar", "date": "2026-01-10", "stance": "neutral", "quote": "What I basically use omz for is 1) autocomplete, 2) git aliases, and 3) my beloved prompt.", "excerpt": "I have been using omz for YEARS. I have practically grown up with it. I resent that I would have never noticed that it took several hundred milliseconds to load, if it were not for this discussion. I never felt the delay particularly unless I was in a very large Git repository \u2014 which is rare. On the bright side, now I know about `fish` and am learning there are some nice features I never had in ZSH (i.e. much more a", "context": "", "use_case": "autocomplete, git aliases, prompt", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745022993, "item_id": 46563937, "url": "https://news.ycombinator.com/item?id=46563937", "by": "arnvald", "date": "2026-01-10", "stance": "warn", "quote": "For some reason it was slow to load which I found annoying", "excerpt": "I used Oh My Zsh for years, but there were literally 3-4 features I relied on: autocompletion, git plugin, history search, and one theme. For some reason it was slow to load which I found annoying, so I used Claude Code to optimize it. In the end I ended up removing Oh My ZSH entirely, now I have a single .zshrc file that contains everything, and it became much faster. Similarly I moved from Packer to Lazy.nvim and u", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "Directory dots", "summary": "Users like the dot shortcuts for moving up directories.", "quotes": [{"id": 753632880, "item_id": 47102055, "url": "https://news.ycombinator.com/item?id=47102055", "by": "verdverm", "date": "2026-02-21", "stance": "recommend", "quote": "zsh oh my zsh does this with dots, which I like better", "excerpt": "zsh oh my zsh does this with dots, which I like better because I can add one more dot for one more dot instead of backspacing to replace a number I used to have a similar 'u' bash func that took a number like yours, the dots are better imo", "context": "", "use_case": "navigating up directories", "switched_from": "", "story": "How to optimize the CD command to go back multiple folders at once"}, {"id": 745014978, "item_id": 46563436, "url": "https://news.ycombinator.com/item?id=46563436", "by": "darkamaul", "date": "2026-01-09", "stance": "neutral", "quote": "I have been using OMZ for the last 8 years but recently made the switch to plain zsh", "excerpt": "I have been using OMZ for the last 8 years but recently made the switch to plain zsh with : - starship for a better prompt - Claude ported plugins I was using from omz (extract, sudo) - custom written aliases that were muscle memory - zoxide for the a command So far that has been a great move, my terminal tab feel snappy again. One thing I miss (but I\u2019m sure I could find a way to replace it) is `cd \u2026.\u00b4", "context": "", "use_case": "shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}], "caveats": [{"label": "Slow startup", "summary": "Many commenters find it slows shell load and command response, especially on slower machines.", "quotes": [{"id": 745039153, "item_id": 46564947, "url": "https://news.ycombinator.com/item?id=46564947", "by": "lifetimerubyist", "date": "2026-01-10", "stance": "warn", "quote": "I switched to Prezto because of how slow OMZ is", "excerpt": "I switched to Prezto because of how slow OMZ is, been really happy with it. At one point it started causing issues with the IntelliJ environment reader but it\u2019s been perfect once I sorted that out.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745022993, "item_id": 46563937, "url": "https://news.ycombinator.com/item?id=46563937", "by": "arnvald", "date": "2026-01-10", "stance": "warn", "quote": "For some reason it was slow to load which I found annoying", "excerpt": "I used Oh My Zsh for years, but there were literally 3-4 features I relied on: autocompletion, git plugin, history search, and one theme. For some reason it was slow to load which I found annoying, so I used Claude Code to optimize it. In the end I ended up removing Oh My ZSH entirely, now I have a single .zshrc file that contains everything, and it became much faster. Similarly I moved from Packer to Lazy.nvim and u", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745226224, "item_id": 46576639, "url": "https://news.ycombinator.com/item?id=46576639", "by": "exq", "date": "2026-01-11", "stance": "warn", "quote": "Oh My Zsh is more sluggish than benching zsh -ic 'exit 0' would suggest.", "excerpt": "Until reading this thread I never knew so many in the industry were against performant software and workflows, but I suppose that explains the state of things. Oh My Zsh is more sluggish than benching zsh -ic 'exit 0' would suggest. This benchmark will show command lag among other things, which is very noticeable on a slower computer. https://github.com/romkatv/zsh-bench I use https://github.com/romkatv/zsh4humans. I", "context": "", "use_case": "zsh configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "Bloat", "summary": "Some say it is more than they need for the few features they use.", "quotes": [{"id": 745006928, "item_id": 46562933, "url": "https://news.ycombinator.com/item?id=46562933", "by": "srvmshr", "date": "2026-01-09", "stance": "warn", "quote": "OhmyZSH seems too bloated for my needs.", "excerpt": "I had the same gripe as the author. OhmyZSH seems too bloated for my needs. Added to that, the defaults adds (and oft unnecessary) emojis to prompts & outputs - something I don't find tasteful or appealing. I stripped out most of the OhMyZsh functions (which is pretty modular given a shell package) and created a smaller, leaner package (leanZSH) having only the known stuff I may use. I have been using it without much", "context": "", "use_case": "zsh configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745006896, "item_id": 46562931, "url": "https://news.ycombinator.com/item?id=46562931", "by": "anotherpaul", "date": "2026-01-09", "stance": "warn", "quote": "it really does not warrant a whole software project as a dependency.", "excerpt": "I agree, I used omz a while now but I have since also realised that the features I uses are so basic, it really does not warrant a whole software project as a dependency. So I went and had Gemini make me a zsh config with the features I actually use. Took 15 minutes to get all the autocompelte, aliases and search functionality and done.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745132720, "item_id": 46570795, "url": "https://news.ycombinator.com/item?id=46570795", "by": "asadjb", "date": "2026-01-10", "stance": "neutral", "quote": "I've been an oh-my-zsh user for many years now, being very happy with the very small set of features I use from it.", "excerpt": "I've been an oh-my-zsh user for many years now, being very happy with the very small set of features I use from it. Previously I could never think of trying to figure out how to replicate the features I need without the other features from oh-my-zsh, which does make the shell noticeably slower. Just now, after reading this article, I used Claude code and have removed the OMZ config within 5 minutes. Here's my prompt ", "context": "", "use_case": "shell config", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "Easy to replace", "summary": "Several users replaced it with a single plain zsh config, sometimes with AI help, in minutes.", "quotes": [{"id": 745022993, "item_id": 46563937, "url": "https://news.ycombinator.com/item?id=46563937", "by": "arnvald", "date": "2026-01-10", "stance": "warn", "quote": "For some reason it was slow to load which I found annoying", "excerpt": "I used Oh My Zsh for years, but there were literally 3-4 features I relied on: autocompletion, git plugin, history search, and one theme. For some reason it was slow to load which I found annoying, so I used Claude Code to optimize it. In the end I ended up removing Oh My ZSH entirely, now I have a single .zshrc file that contains everything, and it became much faster. Similarly I moved from Packer to Lazy.nvim and u", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745014978, "item_id": 46563436, "url": "https://news.ycombinator.com/item?id=46563436", "by": "darkamaul", "date": "2026-01-09", "stance": "neutral", "quote": "I have been using OMZ for the last 8 years but recently made the switch to plain zsh", "excerpt": "I have been using OMZ for the last 8 years but recently made the switch to plain zsh with : - starship for a better prompt - Claude ported plugins I was using from omz (extract, sudo) - custom written aliases that were muscle memory - zoxide for the a command So far that has been a great move, my terminal tab feel snappy again. One thing I miss (but I\u2019m sure I could find a way to replace it) is `cd \u2026.\u00b4", "context": "", "use_case": "shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745132720, "item_id": 46570795, "url": "https://news.ycombinator.com/item?id=46570795", "by": "asadjb", "date": "2026-01-10", "stance": "neutral", "quote": "I've been an oh-my-zsh user for many years now, being very happy with the very small set of features I use from it.", "excerpt": "I've been an oh-my-zsh user for many years now, being very happy with the very small set of features I use from it. Previously I could never think of trying to figure out how to replicate the features I need without the other features from oh-my-zsh, which does make the shell noticeably slower. Just now, after reading this article, I used Claude code and have removed the OMZ config within 5 minutes. Here's my prompt ", "context": "", "use_case": "shell config", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "Faster alternatives", "summary": "Prezto, Starship and zsh4humans are cited as faster options.", "quotes": [{"id": 745008674, "item_id": 46563042, "url": "https://news.ycombinator.com/item?id=46563042", "by": "tristor", "date": "2026-01-09", "stance": "warn", "quote": "Prezto is faster than OMZ, and has been for over a decade.", "excerpt": "Prezto is faster than OMZ, and has been for over a decade. Starship is faster still. I switched from using Prezto standalone to using Prezto + Starship and relying primarily on Starship several years ago. I'd be surprised if many people are still using Oh My ZSH in 2026 vs using Prezto, anyway.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745039153, "item_id": 46564947, "url": "https://news.ycombinator.com/item?id=46564947", "by": "lifetimerubyist", "date": "2026-01-10", "stance": "warn", "quote": "I switched to Prezto because of how slow OMZ is", "excerpt": "I switched to Prezto because of how slow OMZ is, been really happy with it. At one point it started causing issues with the IntelliJ environment reader but it\u2019s been perfect once I sorted that out.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745226224, "item_id": 46576639, "url": "https://news.ycombinator.com/item?id=46576639", "by": "exq", "date": "2026-01-11", "stance": "warn", "quote": "Oh My Zsh is more sluggish than benching zsh -ic 'exit 0' would suggest.", "excerpt": "Until reading this thread I never knew so many in the industry were against performant software and workflows, but I suppose that explains the state of things. Oh My Zsh is more sluggish than benching zsh -ic 'exit 0' would suggest. This benchmark will show command lag among other things, which is very noticeable on a slower computer. https://github.com/romkatv/zsh-bench I use https://github.com/romkatv/zsh4humans. I", "context": "", "use_case": "zsh configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}, {"label": "Emoji defaults", "summary": "One commenter disliked the emojis that the defaults add to prompts and output.", "quotes": [{"id": 745006928, "item_id": 46562933, "url": "https://news.ycombinator.com/item?id=46562933", "by": "srvmshr", "date": "2026-01-09", "stance": "warn", "quote": "OhmyZSH seems too bloated for my needs.", "excerpt": "I had the same gripe as the author. OhmyZSH seems too bloated for my needs. Added to that, the defaults adds (and oft unnecessary) emojis to prompts & outputs - something I don't find tasteful or appealing. I stripped out most of the OhMyZsh functions (which is pretty modular given a shell package) and created a smaller, leaner package (leanZSH) having only the known stuff I may use. I have been using it without much", "context": "", "use_case": "zsh configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}]}], "who": [], "tags": ["for git users", "for new machines and containers", "for zsh users", "plugins usable standalone"], "use_cases": ["zsh configuration", "shell setup", "navigating up directories", "git branch cleanup aliases", "autocomplete, git aliases, prompt", "shell config"], "compared": [{"slug": "zsh", "name": "zsh", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "fish", "name": "fish", "co": 3, "switched_from": 0, "switched_to": 1}, {"slug": "prezto", "name": "Prezto", "co": 3, "switched_from": 0, "switched_to": 1}, {"slug": "starship", "name": "Starship", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "zim", "name": "Zim", "co": 1, "switched_from": 0, "switched_to": 1}, {"slug": "bash", "name": "Bash", "co": 3, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46562790", "title": "You probably don't need Oh My Zsh", "mentions": 16}, {"url": "https://news.ycombinator.com/item?id=47101669", "title": "How to optimize the CD command to go back multiple folders at once", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47088181", "title": "I found a useful Git one liner buried in leaked CIA developer docs", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46557489", "title": "JavaScript Demos in 140 Characters", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46528142", "title": "The Case for Nushell (2023)", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {}, "2026-01": {"neutral": 7, "recommend": 4, "warn": 6}, "2026-02": {"recommend": 2}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 753632880, "item_id": 47102055, "url": "https://news.ycombinator.com/item?id=47102055", "by": "verdverm", "date": "2026-02-21", "stance": "recommend", "quote": "zsh oh my zsh does this with dots, which I like better", "excerpt": "zsh oh my zsh does this with dots, which I like better because I can add one more dot for one more dot instead of backspacing to replace a number I used to have a similar 'u' bash func that took a number like yours, the dots are better imo", "context": "", "use_case": "navigating up directories", "switched_from": "", "story": "How to optimize the CD command to go back multiple folders at once"}, {"id": 753414128, "item_id": 47088383, "url": "https://news.ycombinator.com/item?id=47088383", "by": "galbar", "date": "2026-02-20", "stance": "recommend", "quote": "The git plugin in oh-my-zsh has an alias for this: gbda", "excerpt": "The git plugin in oh-my-zsh has an alias for this: gbda It also has one for squash-merged branches: gbds Very useful I've been using them for years", "context": "", "use_case": "git branch cleanup aliases", "switched_from": "", "story": "I found a useful Git one liner buried in leaked CIA developer docs"}, {"id": 745226224, "item_id": 46576639, "url": "https://news.ycombinator.com/item?id=46576639", "by": "exq", "date": "2026-01-11", "stance": "warn", "quote": "Oh My Zsh is more sluggish than benching zsh -ic 'exit 0' would suggest.", "excerpt": "Until reading this thread I never knew so many in the industry were against performant software and workflows, but I suppose that explains the state of things. Oh My Zsh is more sluggish than benching zsh -ic 'exit 0' would suggest. This benchmark will show command lag among other things, which is very noticeable on a slower computer. https://github.com/romkatv/zsh-bench I use https://github.com/romkatv/zsh4humans. I", "context": "", "use_case": "zsh configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745162112, "item_id": 46572632, "url": "https://news.ycombinator.com/item?id=46572632", "by": "jadar", "date": "2026-01-10", "stance": "neutral", "quote": "What I basically use omz for is 1) autocomplete, 2) git aliases, and 3) my beloved prompt.", "excerpt": "I have been using omz for YEARS. I have practically grown up with it. I resent that I would have never noticed that it took several hundred milliseconds to load, if it were not for this discussion. I never felt the delay particularly unless I was in a very large Git repository \u2014 which is rare. On the bright side, now I know about `fish` and am learning there are some nice features I never had in ZSH (i.e. much more a", "context": "", "use_case": "autocomplete, git aliases, prompt", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745132720, "item_id": 46570795, "url": "https://news.ycombinator.com/item?id=46570795", "by": "asadjb", "date": "2026-01-10", "stance": "neutral", "quote": "I've been an oh-my-zsh user for many years now, being very happy with the very small set of features I use from it.", "excerpt": "I've been an oh-my-zsh user for many years now, being very happy with the very small set of features I use from it. Previously I could never think of trying to figure out how to replicate the features I need without the other features from oh-my-zsh, which does make the shell noticeably slower. Just now, after reading this article, I used Claude code and have removed the OMZ config within 5 minutes. Here's my prompt ", "context": "", "use_case": "shell config", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745106592, "item_id": 46569162, "url": "https://news.ycombinator.com/item?id=46569162", "by": "agrounds", "date": "2026-01-10", "stance": "neutral", "quote": "I use a subset of omz by cloning it and manually sourcing the plugins I want myself", "excerpt": "I use a subset of omz by cloning it and manually sourcing the plugins I want myself rather than initializing the entire omz system. No themes, no checking for updates, etc. For me, it\u2019s the best of both worlds. I describe my setup and how to use it on a fresh MacBook here: https://github.com/agrounds/dotfiles", "context": "", "use_case": "zsh plugins", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745104256, "item_id": 46569016, "url": "https://news.ycombinator.com/item?id=46569016", "by": "ricardolopes", "date": "2026-01-10", "stance": "recommend", "quote": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own.", "excerpt": "I use OMZ because it lets me rely on popular defaults instead of bike shedding and rolling my own. Its main advantage is convention over configuration. For instance, I just have to learn the git plugin aliases once, and then I can use them anywhere with OMZ + git plugin. Is there any lighter alternative that is compatible with OMZ plugins?", "context": "", "use_case": "zsh defaults and git aliases", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745039153, "item_id": 46564947, "url": "https://news.ycombinator.com/item?id=46564947", "by": "lifetimerubyist", "date": "2026-01-10", "stance": "warn", "quote": "I switched to Prezto because of how slow OMZ is", "excerpt": "I switched to Prezto because of how slow OMZ is, been really happy with it. At one point it started causing issues with the IntelliJ environment reader but it\u2019s been perfect once I sorted that out.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745029632, "item_id": 46564352, "url": "https://news.ycombinator.com/item?id=46564352", "by": "Ciantic", "date": "2026-01-10", "stance": "recommend", "quote": "I originally switched to ZSH + Oh My Shell because it opens so fast.", "excerpt": "I have these plugins: git, zsh-autosuggestions /usr/bin/time -f \"%e seconds\" zsh -i -c exit 0.06 seconds This is acceptable, maybe the zsh-autocomplete is the problem for author or something else? I originally switched to ZSH + Oh My Shell because it opens so fast. Ideally plugins would initialize asynchronously but it's not very easy with shell scripts I think.", "context": "", "use_case": "shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745029312, "item_id": 46564332, "url": "https://news.ycombinator.com/item?id=46564332", "by": "Ciantic", "date": "2026-01-10", "stance": "recommend", "quote": "I originally switched to ZSH + Oh My Shell because it opens so fast.", "excerpt": "I have these plugins: git, zsh-autosuggestions /usr/bin/time -f \"%e seconds\" zsh -i -c exit 0.06 seconds This is acceptable, maybe the zsh-autocomplete is the problem for author or something else? I originally switched to ZSH + Oh My Shell because it opens so fast. Ideally plugins would initialize asynchronously but it's not very easy with shell scripts I think.", "context": "", "use_case": "shell setup", "switched_from": "", "story": "JavaScript Demos in 140 Characters"}, {"id": 745022993, "item_id": 46563937, "url": "https://news.ycombinator.com/item?id=46563937", "by": "arnvald", "date": "2026-01-10", "stance": "warn", "quote": "For some reason it was slow to load which I found annoying", "excerpt": "I used Oh My Zsh for years, but there were literally 3-4 features I relied on: autocompletion, git plugin, history search, and one theme. For some reason it was slow to load which I found annoying, so I used Claude Code to optimize it. In the end I ended up removing Oh My ZSH entirely, now I have a single .zshrc file that contains everything, and it became much faster. Similarly I moved from Packer to Lazy.nvim and u", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745019680, "item_id": 46563730, "url": "https://news.ycombinator.com/item?id=46563730", "by": "shevy-java", "date": "2026-01-09", "stance": "neutral", "quote": "That +0.5 seconds delay will kill cats everywhere.", "excerpt": "> The main problem with Oh My Zsh is that it adds a lot of unnecessary bloat that affects shell startup time. Wowsers! That +0.5 seconds delay will kill cats everywhere. We must microoptimise the startup time of shells!!! Or ... we could simply use bash and KDE konsole with, say, 10 tabs. That setup works for me since ages; admittedly I use bash just as a wrapper for simple actions as well as calling a gazillion of a", "context": "", "use_case": "shell configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745014978, "item_id": 46563436, "url": "https://news.ycombinator.com/item?id=46563436", "by": "darkamaul", "date": "2026-01-09", "stance": "neutral", "quote": "I have been using OMZ for the last 8 years but recently made the switch to plain zsh", "excerpt": "I have been using OMZ for the last 8 years but recently made the switch to plain zsh with : - starship for a better prompt - Claude ported plugins I was using from omz (extract, sudo) - custom written aliases that were muscle memory - zoxide for the a command So far that has been a great move, my terminal tab feel snappy again. One thing I miss (but I\u2019m sure I could find a way to replace it) is `cd \u2026.\u00b4", "context": "", "use_case": "shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745010432, "item_id": 46563152, "url": "https://news.ycombinator.com/item?id=46563152", "by": "DocTomoe", "date": "2026-01-09", "stance": "recommend", "quote": "The QoL effects of omz outweigh microtuning startup times significantly.", "excerpt": "> My workflows involve opening and closing up to hundreds of terminal or tmux tabs a day. I do everything from the terminal. Just imagine that opening a new tab in a text editor would take half a second every time. This sounds like overoptimization on a neglible time loss for what is essentially an unique (and dare I say: broken?) workflow. I use terminals a lot ... but I work with 4-5 day-persistent terminals that I", "context": "", "use_case": "shell", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745009216, "item_id": 46563076, "url": "https://news.ycombinator.com/item?id=46563076", "by": "alkh", "date": "2026-01-09", "stance": "neutral", "quote": "I use oh-my-zsh for default setup and that's it.", "excerpt": "Like many other people, I use oh-my-zsh for default setup and that's it. I literally use a single plugin for git and very actively autoload my custom functions to avoid startup delay. With my 384 line config and oh-my-zsh on, here are the results: $ hyperfine -N \"zsh -lc 'exit 0'\" \"zsh -c 'exit 0'\" Benchmark 1: zsh -lc 'exit 0' Time (mean \u00b1 \u03c3): 54.5 ms \u00b1 6.3 ms [User: 10.2 ms, System: 14.3 ms] Range (min \u2026 max): 38.1", "context": "", "use_case": "default zsh setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745008674, "item_id": 46563042, "url": "https://news.ycombinator.com/item?id=46563042", "by": "tristor", "date": "2026-01-09", "stance": "warn", "quote": "Prezto is faster than OMZ, and has been for over a decade.", "excerpt": "Prezto is faster than OMZ, and has been for over a decade. Starship is faster still. I switched from using Prezto standalone to using Prezto + Starship and relying primarily on Starship several years ago. I'd be surprised if many people are still using Oh My ZSH in 2026 vs using Prezto, anyway.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745006928, "item_id": 46562933, "url": "https://news.ycombinator.com/item?id=46562933", "by": "srvmshr", "date": "2026-01-09", "stance": "warn", "quote": "OhmyZSH seems too bloated for my needs.", "excerpt": "I had the same gripe as the author. OhmyZSH seems too bloated for my needs. Added to that, the defaults adds (and oft unnecessary) emojis to prompts & outputs - something I don't find tasteful or appealing. I stripped out most of the OhMyZsh functions (which is pretty modular given a shell package) and created a smaller, leaner package (leanZSH) having only the known stuff I may use. I have been using it without much", "context": "", "use_case": "zsh configuration", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745006896, "item_id": 46562931, "url": "https://news.ycombinator.com/item?id=46562931", "by": "anotherpaul", "date": "2026-01-09", "stance": "warn", "quote": "it really does not warrant a whole software project as a dependency.", "excerpt": "I agree, I used omz a while now but I have since also realised that the features I uses are so basic, it really does not warrant a whole software project as a dependency. So I went and had Gemini make me a zsh config with the features I actually use. Took 15 minutes to get all the autocompelte, aliases and search functionality and done.", "context": "", "use_case": "", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 745006592, "item_id": 46562912, "url": "https://news.ycombinator.com/item?id=46562912", "by": "g947o", "date": "2026-01-09", "stance": "recommend", "quote": "I use oh my zsh for exactly one reason: I can get a good shell experience out of the box", "excerpt": "I use oh my zsh for exactly one reason: I can get a good shell experience out of the box and immediately start working on stuff productively, whether it's a new machine, a new remote host or a container. I could spend hours figuring out all those things, bit I'd rather use that time for something more important.", "context": "", "use_case": "out-of-box shell setup", "switched_from": "", "story": "You probably don't need Oh My Zsh"}, {"id": 744475009, "item_id": 46529688, "url": "https://news.ycombinator.com/item?id=46529688", "by": "BadBadJellyBean", "date": "2026-01-07", "stance": "neutral", "quote": "I use zsh but only because of oh-my-zsh.", "excerpt": "I have always struggled a bit with shell replacements. I use zsh but only because of oh-my-zsh. Apart from that I always thought of shell scripts as a necessary evil for interoperability. Today you can usually expect a linux system to have bash or at least sh. That is why I do shell scripting. Nushell is usally not preinstalled on a system and so I cannot expect it. If I want to do real scripting/programming I use py", "context": "", "use_case": "zsh configuration", "switched_from": "", "story": "The Case for Nushell (2023)"}]}