HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
sorin-ionescu
prezto
Shell2012–2025
sorin-ionescu / prezto

prezto

The configuration framework for Zsh

49Distinct people
55Mentions
3Explicit recommenders
14.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The configuration framework for Zsh

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I really like it, well done! As others mentioned, if you use this to attract clients or recruiters, I recommend adding a version for non-technical folks. As a nerd I'd love to…

o1o1o1 used a recommendation phrase. 3 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year55 dated mentions

Observed mentions: 2012-09-20 13:08:33 UTC to 2025-07-20 22:42:02 UTC.

0369122012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 12 mentions; 1 submissions, 11 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC606
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC12111
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC707
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC514
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC303
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC404
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC404
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC615
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Prezto — Instantly Awesome Zsh Prezto is the configuration framework for Zsh; it enriches the command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes. Installation Manual Prezto will work with any recent release of Zsh, but the minimum required version is 4.3.11. Launch Zsh: zsh Clone the repository: git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto" Optional: Installing in $XDG_CONFIG_HOME Optionally, if you already have $XDG_CONFIG_HOME configured (usually as $HOME/.config by default) and intend to install Prezto under $XDG_CONFIG_HOME/zsh instead, you can clone the repository there and configure $ZDOTDIR separately if not already configured. Clone the repository: git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-${XDG_CONFIG_HOME:-$HOME/.config}/zsh}/.zprezto" Configure $XDG_CONFIG_HOME and $ZDOTDIR in $HOME/.zshenv: export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:=$HOME/.config}" [[ -d $XDG_CONFIG_HOME/zsh ]] && export ZDOTDIR="$XDG_CONFIG_HOME/zsh" source "$ZDOTDIR/.zshenv" Create a new Zsh configuration by copying/linking the Zsh configuration files provided: setopt EXTENDED_GLOB for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}" done Note: If you already have any of the given configuration files, ln in the above operation will cause an error. In simple cases, you can load Prezto by adding the line source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" to the bottom of your ${ZDOTDIR:-$HOME}/.zshrc and keep the rest of your Zsh configuration intact. For more complicated setups, we recommend that you back up your original configs and replace them with the provided Prezto runcoms. Set Zsh as your default shell: chsh -s /bin/zsh Open a new Zsh terminal window or tab. Troubleshooting If you are not able to find certain commands after switching to Prezto, modify the PATH variable in ${ZDOTDIR:-$HOME}/.zprofile then open a new Zsh terminal window or tab. Updating Run zprezto-update to automatically check if there is an update to Prezto. If there are no file conflicts, Prezto and its submodules will be automatically updated. If there are conflicts you will be instructed to go into the $ZPREZTODIR directory and resolve them yourself. To pull the latest changes and update submodules manually: cd $ZPREZTODIR git pull git submodule sync --recursive git submodule update --init --recursive Usage Prezto has many features disabled by default. Read the source code and the accompanying README files to learn about what is available. Modules Browse modules to see what is available. Load the modules you need in ${ZDOTDIR:-$HOME}/.zpreztorc and then open a new Zsh terminal window or tab. Themes For a list of themes, type prompt -l. To preview a theme, type prompt -p name. Load the theme you like in ${ZDOTDIR:-$HOME}/.zpreztorc and then open a new Zsh terminal window or tab. Note that the git module may be required for special symbols to appear, such as those on the right of the above image. Add 'git' to the pmodule list (under zstyle ':prezto:load' pmodule \ in your ${ZDOTDIR:-$HOME}/.zpreztorc) to enable this module. External Modules By default modules will be loaded from /modules and /contrib. Additional module directories can be added to the :prezto:load:pmodule-dirs setting in ${ZDOTDIR:-$HOME}/.zpreztorc. Note that module names need to be unique or they will cause an error when loading. zstyle ':prezto:load' pmodule-dirs $HOME/.zprezto-contrib Customization The project is managed via Git. We highly recommend that you fork this project so that you can commit your changes and push them to your fork on GitHub to preserve them. If you do not know how to use Git, follow this tutorial and bookmark this reference. Resources The Zsh Reference Card and the zsh-lovers man page are indispensable. License This project is licensed under the MIT License.
Read the full README on GitHub

What Hacker News says

55 sources
o1o1o1·May 2, 2025Recommendation phrase
I really like it, well done! As others mentioned, if you use this to attract clients or recruiters, I recommend adding a version for non-technical folks. As a nerd I'd love to see some more colors like in the themes you can set using Prezto or Oh-My-ZSH (reference: https://github.com/sorin-ionescu/prezto?tab=readme-ov-file#t...). For the projects I think some click function to open an ncurses-like modal would be cool :) Another idea: what about adding a light mode? P.S.: I would also add `rm -rf` and return something like "nice try ^_^"
In Just redesigned my personal site with a TTY-style interface
Beyond zprof (https://www.bigbinary.com/blog/zsh-profiling) not really I'm afraid. I did the majority of my zsh-prompt hacking 10 years ago and haven't thought about it since. That snippet could be from anywhere. You could peek at something like zprezto https://github.com/sorin-ionescu/prezto or pure https://github.com/sindresorhus/pure for tips. Fetching git/hg/... info is always slow, so try and speed that up where you can (as to how to do that, uhh... I know my prompt has a dirty-state check nicked from pure for speed reasons). You can also cache any `asdf init zsh` or similar to a file and do the same "run in background" trick so the next shell will have any changes. The biggest improvement I can remember was dropping zprezto for my own much smaller config, I really did not need much comparatively. Mostly some git info and "good defau
Read the rest
lt" options. I use zgenom for a plugin manager but only have 3 plugins, probably I should just dump it and inline the plugins to avoid getting owned one day.
In Carapace: A multi-shell completion library and binary
I've been using prezto[0] for a long time so I'm not sure anymore if this is integrated in zsh, but at least using prezto I get this when I run a wrong command: > claer zsh: correct 'claer' to 'clear' [nyae]? n zsh: command not found: claer I am guilty of not reading the docs, but I learnt by experience that n/y/a/e stands for no (run without correction)/yes (correct)/abort (don't run)/edit (manually/interactively) [0] https://github.com/sorin-ionescu/prezto
In SL(1): Cure your bad habit of mistyping
I switched from Bash to ZSH with the caveat that I use prezto and powerlevel10k (included with prezto) and I will never go back. I had to turn off some of the Zsh-specific brackets and quoting features to make it more bash-like because of the tools I use which make it kinda wonky to use with Zsh but otherwise it’s been absolutely fantastic. Remoting into our systems that only have bash feels absolutely prehistoric. https://github.com/sorin-ionescu/prezto
In Zsh 5.9
A lot of these are not so much about saving 100 hours, rather being faster when it does matter, as well as doing something interesting (automating a task by writing a script) instead of doing the same thing over and over again. This is also why you shouldn't take https://xkcd.com/1205/ too literally, although it's good to keep in mind. * frequent (automatic) backups (saves time and mood when things go wrong) * i3 * fd (alternative to find) * ripgrep * keynav (don't use your mouse) * !bangs on duckduckgo * calcurse (terminal calendar) * readline: C-h C-b C-a C-k M-b M-f C-u etc. * howdoi (get SO answers in the terminal), especially useful for things you somewhat know but just forgot the syntax of. * youtube-dl as already mentioned somewhere: you get out of youtube ASAP to prevent their algorithms from tricking into staying there. I also us
Read the rest
e it to watch videos later when I don't have internet, using a syncthing folder on my mobile which only syncs up to 10% remaining space (so that it doesn't fill with 100s of videos, just a few, enough for some trip). Videos are also rather inefficient in terms of communicating ideas, so better to keep them for when I really don't have better to do. * in the same vein, adapt the speed of (technical) videos you watch, to skip the fluff and focus (even rewind) the difficult parts. Skip all ads, everywhere. * uBlock Origin, for the same kind of reason: just block any annoying, time-consuming parts of website. If I need to go on some website regularly, and they happen to have a news section I don't care about (like their twitter feed), I just block it to get it out of my way. * even use a text-only browser (I currently use w3m, which could show images in theory) for things like HN. HN itself works well, and its good links as well. You just trim a lot of the fluff, ads, etc. * an easy way to sync files between your mobile and your computer (I use a combination of "Notes to Self" in Signal with an auto-destruct of 1 week for temporary stuff so that I don't have to delete it manually, and syncthing for longer-term things) * script your way out of any repetitive task: if you need to register periodically to something, either use their API if they have one, or use selenium to automate it. I was really surprised how little time it took me to write my own script and learn how to use selenium. * in general, rely less on proprietary software: it has the potential to break ("introduce new and shiny features and somehow make some old ones disappear" or just change the pricing-model) more regularly, and you'll have to switch which can be a burden. If some free (libre) software breaks hard for a lot of people, chances are that a fork will happen and the transition will be easier. This also applies to SaaS. * try to avoid desktop apps: they don't compose well, you cannot easily script them compared to a CLI. It's also better than having a full remote desktop when you resort to SSH (especially on bad connections). * try to learn the default keyboard shortcuts of software you use, unless they're really crazy: less config (which you'd have to sync and maintain), easier to use a computer which is not yours if need be * regularly check that the commands you write in your terminal are not too verbose (use aliases / functions): https://news.ycombinator.com/item?id=22853646 * check what's possible with frameworks like https://github.com/sorin-ionescu/prezto * some dotfile repository to get you started in 5min on new computers with the same setup you're accustomed to. * mutt (mostly to easily write emails in vim and grep emails from the terminal) * cronjobs and reminders (I get new music albums on my phone regularly from my music library, so that I don't have to choose them manually (it's my library so I know I like them anyway). I used to actually spend time choosing music from my own library.) * typing from your phone is inefficient, avoid it if possible. Batch your (non-time-critical) messaging. Most modern messaging apps have a desktop version these days.
In Ask HN: Programs that saved you 100 hours?

Showing the 15 most recent of 55 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.