frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
611•klaussilveira•12h ago•180 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
915•xnx•17h ago•545 comments

What Is Ruliology?

https://writings.stephenwolfram.com/2026/01/what-is-ruliology/
28•helloplanets•4d ago•22 comments

How we made geo joins 400× faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
102•matheusalmeida•1d ago•24 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
36•videotopia•4d ago•1 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
212•isitcontent•12h ago•25 comments

Jeffrey Snover: "Welcome to the Room"

https://www.jsnover.com/blog/2026/02/01/welcome-to-the-room/
5•kaonwarb•3d ago•1 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
206•dmpetrov•12h ago•101 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
316•vecti•14h ago•140 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
355•aktau•18h ago•181 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
361•ostacke•18h ago•94 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
471•todsacerdoti•20h ago•232 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
267•eljojo•15h ago•157 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
399•lstoll•18h ago•271 comments

Delimited Continuations vs. Lwt for Threads

https://mirageos.org/blog/delimcc-vs-lwt
25•romes•4d ago•3 comments

Dark Alley Mathematics

https://blog.szczepan.org/blog/three-points/
82•quibono•4d ago•20 comments

PC Floppy Copy Protection: Vault Prolok

https://martypc.blogspot.com/2024/09/pc-floppy-copy-protection-vault-prolok.html
54•kmm•4d ago•3 comments

Was Benoit Mandelbrot a hedgehog or a fox?

https://arxiv.org/abs/2602.01122
9•bikenaga•3d ago•2 comments

How to effectively write quality code with AI

https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/
242•i5heu•15h ago•183 comments

Introducing the Developer Knowledge API and MCP Server

https://developers.googleblog.com/introducing-the-developer-knowledge-api-and-mcp-server/
51•gfortaine•10h ago•16 comments

I spent 5 years in DevOps – Solutions engineering gave me what I was missing

https://infisical.com/blog/devops-to-solutions-engineering
138•vmatsiiako•17h ago•60 comments

Understanding Neural Network, Visually

https://visualrambling.space/neural-network/
275•surprisetalk•3d ago•37 comments

Show HN: R3forth, a ColorForth-inspired language with a tiny VM

https://github.com/phreda4/r3
68•phreda4•11h ago•13 comments

I now assume that all ads on Apple news are scams

https://kirkville.com/i-now-assume-that-all-ads-on-apple-news-are-scams/
1052•cdrnsf•21h ago•433 comments

Why I Joined OpenAI

https://www.brendangregg.com/blog/2026-02-07/why-i-joined-openai.html
127•SerCe•8h ago•111 comments

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
28•gmays•7h ago•10 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
173•limoce•3d ago•93 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
7•jesperordrup•2h ago•4 comments

FORTH? Really!?

https://rescrv.net/w/2026/02/06/associative
61•rescrv•20h ago•22 comments

Zlob.h 100% POSIX and glibc compatible globbing lib that is faste and better

https://github.com/dmtrKovalenko/zlob
17•neogoose•4h ago•9 comments
Open in hackernews

Speeding up my ZSH shell

https://scottspence.com/posts/speeding-up-my-zsh-shell
253•saikatsg•6mo ago

Comments

srvmshr•6mo ago
I discovered this issue 2-3 years ago. On slightly older machines, there was a palpable startup time. My fix was going through OhMyZSH and stripping away all the parts that I felt unnecessary (I call this my "leanZSH" and its considerably lighter version of OMZ.) It doesn't track upstream, and I manually update the plugin directory once in a while. Surprisingly OhmyZSH is pretty modular and doesn't break easily.

[Not the best hackjob out there but here it is:

https://github.com/gradientwolf/leanzsh

If you want to update it just copy over the latest `plugin/` folder from OMZ repo. You can get rid of all the plugins you dont want, as well as the themes. It somehow works]

SamDc73•6mo ago
I think you're better off switching to https://starship.rs

I did try to do my whole zsh config/theme from scratch, but it did take some time and lot of small features here and there were no worth the effort (like python version, vevn, and such) so I just switched to starship which is very fast and easy to use

lompad•6mo ago
Why not just use fish at that point? It's been rewritten in Rust too.

To me personally, oh-my-zsh and similar projects feel like a worse version of the stuff fish brings by default.

Jubijub•6mo ago
Fish is awesome, but there are times you need POSIX/ bash-like shell syntax
ewuhic•6mo ago
Then you open bash and get POSIX and not bash-like, but bash.
krab•6mo ago
In fact, sometimes I open bash even from zsh. When pasting from a script and debugging why something doesn't work as expected, I don't want bash-like. For ad-hoc loops, bash-like works well for me thanks to the familiarity of syntax.
MillironX•6mo ago
You can use Antidote to selectively load the parts of OhMyZsh you need - https://github.com/getantidote/use-omz

My own usage: https://code.millironx.com/millironx/nix-dotfiles/src/commit...

rezmason•6mo ago
Aha! Now I know that nvm was slowing my shell startup down. Now I've reconfigured .zshrc to lazy-load nvm, and everything's snappy:

  zstyle ':omz:plugins:nvm' lazy yes
saikatsg•6mo ago
Cool! Also, there's a zsh wrapper for nvm:

https://github.com/lukechilds/zsh-nvm?tab=readme-ov-file#laz...

satvikpendem•6mo ago
Just use fnm, I like it much better
dcre•6mo ago
Same. I switched to fnm.
Zizizizz•6mo ago
You should try switching to mise. I tried fnm too which was an improvement but mise does the same as fast and supports essentially every language
nobleach•6mo ago
Definitely Mise! I was an asdf user for a couple of years and Mise was such a nice replacement. I have to juggle several other languages, and each having its own tool for tool version management was a non-starter.
mcc1ane•6mo ago
https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#...
satvikpendem•6mo ago
Sadly it's essentially discontinued
trallnag•6mo ago
I'll continue using it until the core features like instant prompt and transient prompt start to break or I run into bugs that I can't live with
nadir_ishiguro•6mo ago
No. The author simply sees it as basically complete and decided to spend the time he has fixing bugs instead of taking care of issues.
satvikpendem•6mo ago
> MOST BUGS WILL GO UNFIXED
opk•6mo ago
It's just a shell prompt. There really won't be much in the way of bugs. And it's popular. Doing a quick scan of github issues, there's no shortage of questions where some other random plugin or weird terminal emulator has strange interactions. I think the author can be forgiven for not wanting to diagnose such combinations.
dolmen•6mo ago
As a former maintainer of LiquidPrompt I can only agree.
jimbru•6mo ago
this is the answer
ndr•6mo ago
I've been using it for years now and I can't picture going back.
WhyNotHugo•6mo ago
Oh-my-zsh has a lot of cool and handy features, but it is a huge and complex beast. Personally, I only cared about 3–4 features, so I simply removed it and sought out how to enable those features alone.

Additionally, a lot of functionality which I wanted wasn’t there in OMZ, so my setup had a lot of custom bits anyway.

My zshrc, for reference: https://git.sr.ht/~whynothugo/dotfiles/tree/269248912920d25e...

bravesoul2•6mo ago
What's with the emoji alias?
WhyNotHugo•6mo ago
Lol. Slipped in by accident, should never have been committed. Part of some messing around / test.
bravesoul2•6mo ago
Funny! I was hoping it was a crazy hack :)
mroche•6mo ago
I am absolutely stealing this:

    export LESS='-RX --quit-if-one-screen'
JimDabell•6mo ago
This is my config:

https://pastebin.com/ATZeFJRk

I find that for persistent configuration like this, it helps to use the long option format and include the man page contents for those options. I don’t have these options memorised so it’s good to have a reference handy to remind me.

yurishimo•6mo ago
What does this do exactly?
RGBCube•6mo ago
From the post, it seems like ZSH tries to update on every shell spawn:

   DISABLE_AUTO_UPDATE="true"
WTF? Even if we ignore the crime of non-critical software updating itself, the fact that it does it on every start instead of every day or week is insane.

I do not want my shell sending network requests to odd servers without explicit action from me, thanks.

c-hendricks•6mo ago
oh-my-zsh, not zsh
slacktivism123•6mo ago
>it seems like ZSH tries to update on every shell spawn

Learn your tools first, not bloated frameworks. There's a gulf of difference between vanilla zsh and this:

>Community-driven (with 2,400+ contributors) framework for managing your zsh configuration

>Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc)

>140+ themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community

RGBCube•6mo ago
Sorry, I meant oh-my-zsh. I know that the core shell doesn't update.

I still think it's bad. You shouldn't rely on a million different package managers, just 1 is enough. (2 if you are feeling spicy: Flatpak)

Arrowmaster•6mo ago
That's what ZSH has turned into. Every new user installs OMZ because that's what the Internet tells them to do. Then their shell config turns into a huge mess.

So half the users are using OMZ with a bloated slow config and the other half are reinventing new config managers every year because of how terrible OMZ has become. And constantly churning through them as they keep getting abandoned.

I've been happily using zsh4humans for years but will need to find a replacement at some point as it's now going unmaintained too.

jasonjmcghee•6mo ago
Thanks - that pushed me to profile, and as others mentioned nvm was the biggest culprit, then powerline status, which i swapped to powerline-go. nice and snappy startup time now.
forsalebypwner•6mo ago
same here, nvm was absolutely wrecking my startup time and I almost never use npm/nodejs.
stouset•6mo ago
Fish shell with starship. You will never look back.
marliechiller•6mo ago
Funnily enough, the startup delay of oh-my-zsh is exactly what prompted me to try out fish and eventually starship on top. I have not looked back as you say!
rtkaratekid•6mo ago
I started using fish on a dare from a coworker who thought it would be funny. Joke’s on them, it’s been five years and I still love it. Started using starship this year and agree with you.
leosanchez•6mo ago
My fish config is maybe 5-10 lines just starship, zoxide, direnv.
f311a•6mo ago
Fish is nice, but syntax difference is a no-go for me. I frequently log into different servers that usually use bash.

I miss simple things like alias when I temporary want to assign long commands to a shorter alias.

stouset•6mo ago
I still script in bash and I still know bash. It’s just not that big an ordeal to code-switch between the two.
anon7000•6mo ago
It turns out that it’s pretty annoying to have completely different fundamental syntax for something like variable assignment when so many things are the same. If I’m living in bash scripts half the time anyways, it’s just fundamentally annoying to accidentally type “foo=123” into fish and to get an error.

If I could use fish without set, maybe I would

opk•6mo ago
I'd be rather skeptical about the "fix" of updating the completion cache once a day only. Enabling oh-my-zsh already runs `compinit` and it does so after changing the function path in `fpath`. By running it again with a different `fpath` you invalidate the previous cache - meaning it builds a fresh cache twice every time you start zsh. If you use a plugin framework that already runs compinit, simply don't run it again separately. And make sure that `compinit` is only run after the final plugin or whatever has finished changing `fpath`. If you get that right, you'll only ever need to regenerate the cache when something actually updates.
ivanjermakov•6mo ago
Oh-my-zsh is very bloated. You might not need it, since its most used features can be implemented with zsh directly: https://ianyepan.github.io/posts/moving-away-from-ohmyzsh/
jeffbee•6mo ago
OMZ should be classified under "supply chain attack as a service". I can't believe anyone uses it.
raffraffraff•6mo ago
As a long time Linux + bash user I switched to zsh three months ago when I was forced to use a Mac at a new job. In every previous job I was able to insist on Linux, but this one is very corporate. I decided not to fight it, except to install AltTab, Karabiner, Rectangle and a script that detects which screen my mouse is on so I can alt-tab through ALL the stuff on that screen (sane XFCE / KDE behaviour).

I can't get used to the atrocious keyboard shortcuts but I have gotten used to the "non-UK UK keyboard layout".

And zsh. I honestly don't know why I didn't just brew install bash right from the start. Without even realising I was doing it, I fought with this bloated bastard for 2 months before finally asking what the fuck I was doing.

I sped up my shell by switching back to bash.

soraminazuki•6mo ago
What on earth are you talking about? zsh isn't bloated by any stretch, nor is it any slower than bash in any meaningful way.

Chances are, like in the article, you installed oh-my-zsh, a third party configuration framework.

cb321•6mo ago
Some data in support of @soraminazuki (who makes good points throughout this thread) on an i7-1370P linux laptop running Linux 6.15.7:

    $ tim 'bash -lic logout' 'zsh -lic logout'
    55.3 +- 3.7 μs  (AlreadySubtracted)Overhead
    7454 +- 26 μs   bash -lic logout
    7934 +- 39 μs   zsh -lic logout
(Using https://github.com/c-blake/bu/blob/main/doc/tim.md)

About 20,000 entries in the Zsh history slowing it a little. All completion activated (but zcompile'd, along with a very large digraphs.zwc).

I think most would not be troubled by taking 1.06X longer, though, especially at this 8 ms scale and for interactive session initiation. Note this test upper bounds Time To First Prompt { a different "TTFP" from Time To First Plot ;-) }, since it also exits as part of the `-c`.

homebrewer•6mo ago
Pure zsh is alright, it's pretty much just bash with fantastic autocomplete that usually provides short form documentation right there along with the options. So no need to remember (or look up) what -X -d -f stands for. Get rid of oh-my-zsh and give the proper shell another chance.
saagarjha•6mo ago
I actually like bash's autocomplete better (maybe there's a way to configure how zsh does it, I haven't looked into it).
opk•6mo ago
If you've only compared against zsh's out-of-the-box completion then you're comparing against the fully backward compatible with how things were in 1993 state. Turn on compinit, and a half-dozen styles to enable descriptions at the very least. The content of `StartupFiles/zshrc` from zsh sources is more than enough, no need for a bloated framework like oh-my-zsh.
saagarjha•6mo ago
Yeah I'm comparing bash-completion with compinit (at least I think so). I just didn't really like how it "picks" an option for you
raffraffraff•6mo ago
I'm being downvoted because I equated zsh with oh-my-zsh (or actually, maybe because I hate MacOS?), but if you look through the rest of the comments you'll notice that most people are asking for a lighter weight omz or wishing that some omz alternative hasn't been discontinued.

But think about trying to onboard with a shell. Imagine the type of help you'll get online, and where that inevitably pushes you. Consider these two things: 1. The number of people using pure zsh config Vs plugin systems like OMZ. 2. The number of people using pure bash config Vs some plugin system (can't even name one)....

With bash, when you try to figure out how to do something, the internet will usually spit out a snippet of pure bash. The same search on zsh will generally tell you which plugin you need to add to OMZ.

Zsh would likely be easier to adopt, and overall better off, if it didn't have an extremely bloated plugin system almost synonymous with it. I'm sure if I started from scratch with zsh years ago I'd have a great zshrc. Or if I had the time and energy to devote to getting zsh working to my taste without plugins, I'd do that. But vanilla zsh wasn't to my liking and I took, what seemed like, the path of least resistance. For a short while it I stuck it out, trying to gradually tweak it into shape. But I couldn't figure out how to correct some "fucking weird" behaviour, and digging into a bunch of insanely complex plugins was just way harder that looking at a zshrc. I eventually dumped the whole lot for bash and never looked back.

Could I have dumped OMZ and started clean? Yep. But I was tired, and bash works.

Sparkenstein•6mo ago
I moved to fish 3 years ago, haven't noticed a difference till date.
notnmeyer•6mo ago
you are wise and have good taste
cevn•6mo ago
Fish school represent
gjvc•6mo ago
make sure you haven't got too many plugins enabled (start with zero and work up / enable them as needed)
soraminazuki•6mo ago
With articles like these popping up all the time, oh-my-zsh is seriously harming zsh's reputation. It's giving the wrong impression of zsh being slow and bloated.

zsh doesn't need configuration frameworks or plugins. All it needs is a change in the default settings so that its powerful completion works out the box. It currently needs more than ideal amount of tweaks to the defaults, which is probably why people flock to these frameworks.

hdjrudni•6mo ago
I don't want to spend ages figuring out which knobs to turn to get a half decent shell. If there's an alternative to oh-my-zsh that looks halfway decent, has that nice fzf integrated, and the 'ghost text' history suggestions, then I welcome it!
alabhyajindal•6mo ago
You should try fish shell. Great user experience out of the box, including history suggestions.

https://fishshell.com

cbarrick•6mo ago
The incompatible syntax of fish makes it a no go for me.

As an SRE, at my day job I often need to copy/paste commands that are generated from a playbook.

Our playbooks use Bash, and in practice Zsh is compatible. But a co-worker using fish often has to manually modify commands before running, and I'm not about that life.

The problem with fish is mostly the different syntax for setting variables and lack of heredocs. Sometimes the string substitution differences come up too.

anon7000•6mo ago
Exactly. Variable assignment works different in Fish, and it’s very hard to change that habit. With my usage of shell (with Fzf & zoxide), fish simply doesn’t improve much for me. I’m using bash constantly for my job, and having the same syntax in my shell is important
porker•6mo ago
We have everything as scripts rather than one-liners so they work fine no matter which shell you're using.
cbarrick•6mo ago
In our case, we often have complex decision trees to diagnose issues before we get into the ops. Our playbooks are very thorough with details about all of these debugging techniques.

You can never completely automate the debugging step: it often requires human judgement to direct the investigation in ways that can't really be expressed in a script.

The friction of the shell comes up not in executing the ops, which we do in fact have heavy automation around, but in all the little pieces of debugging has to happen to tell you what ops need to be done.

(If you get paged and the solution is to skip the debugging step and run a script, then why didn't you automate the script so that you don't get paged in the first place?)

fgonzag•6mo ago
SRE running copy pasted commands directly instead of a script or some automation solution? I don't think the problem is the shell...
cbarrick•6mo ago
Insinuating that my playbooks are bad or any other kind of incompetence without actually knowing anything about my service is simply being an asshole.
doubled112•6mo ago
Once you have everything figured out, you just keep using the config you have. It might be worth the investment. I stopped using oh-my-zsh when I realized it was what was causing multi-second delays on Raspberry Pis.

I think auto suggestions and syntax highlighting plugins can be installed separately from oh-my-zsh.

I use starship for a better prompt, and it works on more shells than just Zsh.

I also have Atuin installed to share history across machines, and as a benefit the history search is a lot more powerful.

https://github.com/zsh-users/zsh-autosuggestions

https://github.com/zsh-users/zsh-syntax-highlighting

https://starship.rs

https://atuin.sh

t_mahmood•6mo ago
With atuin, do you face a delay when you first load after startup? It's so annoying. It takes a solid 30-minute lag before the history is loaded.

I am running my home on hdd, not ssd. But still do not see justification of this lag.

doubled112•6mo ago
I self-host an atuin server, and even between machines I don't see anything like that.

I configured daemon mode to workaround an ZFS+sqlite issue. I also have my sync_frequency set to 5m (default is 1h) in the config. Perhaps those are making my experience smoother.

t_mahmood•6mo ago
I am using ext4 though. Turned on daemon, let's see if it solves my issue

Thank you

soraminazuki•6mo ago
If zsh has its completion fully configured by default, there will be no need for most people to turn knobs nor will it be a "half decent shell." It'll be the best shell, if it isn't already.

I wonder why ghost text history suggestions are popular though, I'd rather not have it. Shell history search works better, and I don't want my shell always showing me or whoever else is looking at the screen random commands that I've previously typed.

opk•6mo ago
> If zsh has its completion fully configured by default, there will be no need for most people to turn knobs nor will it be a "half decent shell." It'll be the best shell, if it isn't already.

The curse of backward compatibility means that zsh does not break your setup or change things on you. And there are still developers left who bear the trauma from the one time that was tried back in the early-mid 90s in the 2.x version series. Sadly that means many new features remain inactive by default, especially anything written in shell-code like command-specific completions.

Sayrus•6mo ago
I for one use and like using both fzf on the search history and the ghost text history. With history, I often end up writing a line that isn't shell so that it fuzzy-matches what I'm looking for. I like having the passive suggestions in addition to that. It doesn't get in my way and if I like what I read, I can accept it.

I'd rather have a good history search than autosuggestion, but having both is a net-positive in my day-to-day.

loeg•6mo ago
I don't know if it's still in vogue, but prezto exists.
kstrauser•6mo ago
IMO, that alternative is Fish shell.
wpm•6mo ago
Zim has been my choice since I got sick of multi second startups with OMZ.
grrowl•6mo ago
Look into zgen, it's a zsh plugin system but much more static (but less ridiculous out of the box)
bbkane•6mo ago
I'm definitely not an expert, but I configure zsh manually with those fzf and "ghost text". I took some notes in my repo, just copy the relevant portions if you actually want to try this: https://github.com/bbkane/dotfiles/tree/master/zsh

I tweak it occasionally, but for the most part I set it and forget it.

GCUMstlyHarmls•6mo ago
I noticed you're using `z-shell/F-Sy-H`, "Feature-rich Syntax Highlighting for Zsh".

The `z-shell` github org has (or had) some ... bad vibes, I would personally not use any of their code.

- https://recurse.social/@dylnuge/112224580867240812

- https://www.reddit.com/r/commandline/comments/1c3r7ck/zshell...

- https://www.reddit.com/r/zsh/comments/1c3r5gn/zshellzi_users...

You could use `zsh-users/zsh-syntax-highlighting` as an alternative.

saikatsg•6mo ago
Is this one better?

https://github.com/zdharma/fast-syntax-highlighting

GCUMstlyHarmls•6mo ago
My understanding is zdharma removed their github account, then the name got squatted by the z-shell people.

So probably not.

imcritic•6mo ago
You split your config across multiple files. That slows startup noticeably.
jonS90•6mo ago
I migrated from omz to zimfw and am reasonably happy.

But I have yet to meet anyone in real life who knows what zimfw is.

shivenigma•6mo ago
Have a look at Prezto, it is much simpler and faster than oh My ZSH.
varispeed•6mo ago
Out of curiosity, what is wrong with oh-my-zsh?

I use it and never had any issue. Am I missing out on something?

soraminazuki•6mo ago
If it works for you, that's great. But people are installing oh-my-zsh almost as if it's an official requirement of zsh, run into bloat and performance issues, and goes off telling everybody not to use zsh.

Some of the autocompletion settings set by oh-my-zsh are useful. But apart from that, the majority of the code consists of gazillions of random aliases and functions that someone else needed. It pollutes the command namespace for no good reason except maybe making users more wary of typos. The last time I checked, sudo was aliased as "please", and I can't find a single reason why that'd be useful.

oh-my-zsh also introduces a lot of churn, which is why it has autoupdates. Autoupdates. The only time I needed to change my configuration in vanilla zsh because of a change in zsh was once or maybe twice over a span of 10+ years.

mattgreenrocks•6mo ago
OMZ shouldn’t be imposing these issues, and autoupdates of a shell script manager is aesthetically disgusting. But there’s also an argument to be made for not cargo culling configuration.
linhns•6mo ago
Yep, many are just throwing shades at it. I combined omz with Antidote, which now gives me a fully featured shell and blazingly fast.
mcdow•6mo ago
Came here to say this. I was able to get an omz featureset from vanilla zsh with a handful of lines of config. It works for the features I was using from omz.
kmarc•6mo ago
FWIW I only ever saw zsh at colleagues screen(share) with Oh-My-Zsh

1. Utterly slow and cluttered

2. Colleagues leverage a tenth of its power than what they could achieve with pure bare bones bash

Therefore, never bothered to even try (but had to fix some one liners so that they work on their fancy setup). Also, was surprised that macos switched to it as its default.

I guess I never jumped on the oh-my-it's-so-slow-zsh bandwagon. OTOH, fish+starship combo /that was also recommended here/ seems interesting

fmbb•6mo ago
Starship can also be really really slow with the defaults, although that is not starship itself beings slow but it appears to sometimes call out to slow tools when display toolchain info.

I always turn all of the languages plugins off in Starship for this reason.

kmarc•6mo ago
Honestly, I'm quite OK with bash+liquidprompt. It is probably an order of magnitude slower than these fancy new stuff.

Even with a huge monorepo and git stats displayed after every press of return it's OK (I win time at other places), but it's intriguing to have the same fast prompt display that I would otherwise have outside local git clone's directories.

What seems sexy about fish/starship is that there is built-in performance check / benchmark for slowdowns.

bardsore•6mo ago
For Fish, I'd recommend https://github.com/IlanCosman/tide instead
kmarc•6mo ago
Oh nice thanks. Great idea with the async prompt update.

The repo hasn't seen new commits since more than a year, but new issues are still opened. Is it abandoned?

technojamin•6mo ago
Quite possibly, but I use it daily with no issues. It’s also pretty easy to write your own prompt and then make it async with this plugin: https://github.com/acomagu/fish-async-prompt
nikau•6mo ago
Its been my experience too, they mainly want the eye candy of the prompt to compliment their macbook.
sinxccc•6mo ago
1. macOS switched to zsh for default shell, not zsh+oh-my-zsh

2. macOS switched from bash to zsh mainly because of GPLv3

pjmlp•6mo ago
No shell does, I am using computers since 1986 and I don't these "pimp my shell" kind of stuff with rainbows and virtual pets.

CLI is for stuff that GUIs and IDEs for whatever reason don't support, or REPL like interactions.

bombcar•6mo ago
The main thing I use the pimpshells for (and all I can honestly say is KNOW I’m using from omZ) is the colored/fancy prompts.

I’ve used colored informative prompts since DOS and having production servers be brilliantly red and dev servers a different color is quite helpful.

thesuitonym•6mo ago
You don't need oh my zsh for colorful prompts though.
never_inline•6mo ago
Yeah it's literally ANSI escapes.
BiteCode_dev•6mo ago
Plus, a lot of the goodies can be added with compiled programs like Starship or Atuin. Less config, faster, work across several shells.
chamomeal•6mo ago
I had no idea zsh had decent completion. How does it compare to fish?
f311a•6mo ago
Did something similar recently as well. I did not notice any need for plugins from day one of switching. Fzf can replace a lot of plugins if you know how to use it.

Things like git branch name and virtual envs are handled by starship.

My custom config is less than 10 lines now:

  export HISTSIZE=1000000000
  export SAVEHIST=$HISTSIZE
  setopt EXTENDED_HISTORY
  setopt autocd
  autoload -U compinit; compinit
  source <(fzf --zsh)
  eval "$(starship init zsh)"
  set -o vi
samgranieri•6mo ago
Ooh, bookmarked! My 11 year old zsh setup, which started from YADR and has stuff from other places preserved in chezmoi is starting to drag. Time to speed this up or just rip up and redo
bananapub•6mo ago
fwiw you can just use zsh4humans (as long as you promise not to bother the author) and have all the things in omz that matter and approximately zero startup time
jpmonette•6mo ago
Fish is the way to go! Used to be a fan of ZSH but also struggled with performance issues. No performance issue with Fish! Only issue might be plugins / some copy/paste bash stuff, but it's so worth the performance.
massysett•6mo ago
The instant I saw the title I knew the post would be “I turned off oh-my-zsh” or “I tweaked oh-my-zsh.”

Yes zsh has a bunch of settings and dense documentation, and it can be hard to understand. The problem with something like oh-my-zsh is that now you have two things you don’t understand, and worse, when something doesn’t work you don’t know which one isn’t working or where to look.

Jerry2•6mo ago
I switched to Prezto [0] because I found OMZ too slow. Prezto is much faster out of the box and doesn’t have a lot of things enabled by default. Definitely give it a try if you find OMZ too slow on your machine.

[0] https://github.com/sorin-ionescu/prezto

jauntywundrkind•6mo ago
There's so many plugin systems for zsh. From comments it seems like Pretzo is the main one suggested.

But there's a huge list of different offerings. Looking at https://github.com/sindresorhus/pure?tab=readme-ov-file#inte... , there's also for example zim, zplug, zinit, zi. It's be so great to have see some deeper investigations or comparisons: is Pretzo really the best choice? Aside from seeming popularity, why?

At least found this neat gist with a cheat sheet for different zsh plugin systems (and how very many there are!) https://gist.github.com/olets/06009589d7887617e061481e22cf5a...

OptionOfT•6mo ago
I use Starship, so this applies to both ZSH & Fish:

If you have the Python environment displayed in Starship, your largest gain in speed is to replace pyenv and pyenv-virtualenv by uv.

gregwebs•6mo ago
I switched from Oh My Zsh to ZimFW because they have benchmarks showing it is faster: https://github.com/zimfw/zimfw
st3fan•6mo ago
easier to switch to fish
eviks•6mo ago
> Making Spaceship Prompt Faster (22.47% → ~5%)

Or even better switch to starship, a compiled binary doing the prompt formatting?

wodenokoto•6mo ago
What's the benefit of using oh-my-zsh and starship at the same time?
matttproud•6mo ago
I don't have anything against ZSH or similar shells. I think they are great, but they are not my thing.

Latency is a deal-breaker for me, and this is where autocompletion engines generally introduce surprising user-interactive pauses. I've generally settled with using mksh (or OpenBSD's KSH depending on the environment) with little configuration outside of aliases, variables, and few local functions. I'm not left with this inkling feeling like accidentally running find(1) over an AutoFS file system backed by NFS that needs to authenticate, mount, and then run the operation.

When I need something more sophisticated, I lean on using Go or Elvish and potentially delegate some UI elements out to https://github.com/charmbracelet/gum.

I'd rather keep my shell simpler and delegate out any other complexity to these other programs. Autocompletion and these other features simply aren’t free.

cyberpunk•6mo ago
oksh and set -o vi have made it virtually impossible for me to type commands into other people computers.

I get bewildered looks when i hit v and edit my commands in vim from the youth but whatever, they’ll learn someday :))

nobleach•6mo ago
I was an OMZ user pretty much since I adopted ZSH many years ago. I never really experienced much of the slowdown(s) that people tend to complain about. Even still, getting my dotfiles set up on a new machine was always a little bit of pain. I'd try to install OMZ from my OS' package manager, remember that that rarely worked perfectly, gone back to OMZ's webpage and copied the cURL command... the fought with FZF shell integration for about an hour. Finally one Saturday I just stripped it all out. I went with raw ZSH and Antigen for the few plugins I care about. Spinning up new machine is now painless. And I always like simplifying things.
wyclif•6mo ago
Thing is, a lot of how OMZ affects your zsh usage is based on usage patterns. For instance, I usually have zsh running in a terminal that is always open and running. Now, if I close my terminal and restart, then I notice that OMZ is kinda slow and it irritates me, even if it's only for a second. But that almost never happens.

Anyway, I'm going to be revisiting my zsh config soon and I'll be looking for ways to make sure I'm only using plugins that I absolutely do need. My principle in the past with workflows in zsh and Neovim is that I only add crucial plugins and try to keep my config minimal. Maybe I've gotten away from that a bit and need to regroup, so I find threads like this one useful to keep up with what's current.

lenerdenator•6mo ago
I do find myself running into problems with NVM slowing things down in zsh; anyone else experiencing this?
Pwntastic•6mo ago
I got tired of nvm being incredibly slow and recently switched to fnm, which has been much faster and has drop-in compatibility with the .nvmrc files that nvm used
Ajnasz•6mo ago
I created an alternative because of nvm's slowness: https://github.com/Ajnasz/znvm
leimbacher•6mo ago
Sarcasm: just switch to bash and know what's running on every prompt. Sure, if you need to get git status on a slow disk then anything will be slow. I have not read the article, BTW.
suralind•6mo ago
nushell gang since few weeks ago
mshroyer•6mo ago
I don't know if this is somehow particular to my setup, but on both macOS and Linux I find that simply running full `compinit` fails to update mtime on `~/.zcompdump` when nothing's changed. That causes this optimization to fail, for me, if my completions haven't changed within the last day.

This is fixed by adding an explicit `touch ~/.zcompdump` in the branch that runs a full `compinit`.