HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
bbatsov
prelude
Emacs Lisp2012–2026
bbatsov / prelude

prelude

Prelude is an enhanced Emacs 29.1+ distribution that should make your experience with Emacs both more pleasant and more powerful.

38Distinct people
56Mentions
3Explicit recommenders
5.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Prelude is an enhanced Emacs 29.1+ distribution that should make your experience with Emacs both more pleasant and more powerful.

GitHub

Where it is used

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

What people are saying

It's not really a guide, but I strongly recommend newcomers take a look at emacs prelude (https://github.com/bbatsov/prelude), which is a really good starter kit. I recommend…

zeveb 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, 12:54:37 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 year56 dated mentions

Observed mentions: 2012-10-20 13:52:09 UTC to 2026-06-18 19:57:33 UTC.

0510152012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20122013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 14 mentions; 1 submissions, 13 comments2015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 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): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

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 UTC110
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC505
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC14113
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC202
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC606
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC716
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
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 UTC312
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC312
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC404
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC202
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 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

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

Read the project’s introduction
Emacs Prelude Prelude is an Emacs distribution that aims to enhance the default Emacs experience. Prelude alters a lot of the default settings, bundles a plethora of additional packages and adds its own core library to the mix. The final product offers an easy to use Emacs configuration for Emacs newcomers and lots of additional power for Emacs power users. Prelude is compatible ONLY with GNU Emacs 29.1+. In general you're advised to always run Prelude with the latest stable Emacs release. I've been developing and maintaining Prelude in my free time for well over a decade. That's a lot of work, and not all of it is fun! Please consider supporting Prelude's ongoing development. Features Improved UX, that's still in line with Emacs traditions Sane defaults of baseline Emacs functionality Automatic installation of many major programming modes on demand A curated set of 3rd party packages to enhance the base functionality Simple modular architecture Easy customization Check out our user manual for more information. Fast Forward Assuming you're using an Unix-like OS (*BSD, GNU/Linux, macOS, Solaris, etc), you already have a recent version of Emacs installed, as well as git & curl you can skip the whole manual and just type in your favorite shell the following command: curl -L https://git.io/epre | sh You can now power up your Emacs, sit back and enjoy Prelude. There are two environment variables you can use to control the source repository and the installation directory. To change the installation directory: export PRELUDE_INSTALL_DIR="$HOME/.emacs.d" && \ curl -L https://github.com/bbatsov/prelude/raw/master/utils/installer.sh | sh To change the source repository: export PRELUDE_URL="https://github.com/yourname/prelude.git" && \ curl -L https://github.com/bbatsov/prelude/raw/master/utils/installer.sh | sh Note that the installer will back up any existing .emacs file or .emacs.d since it will unpack Prelude's code in .emacs.d. If you're doing a manual install make sure you don't have a .emacs file or back up your existing .emacs.d directory manually. Important: Don't forget to adjust your prelude-modules.el file in your personal directory once the installation is done. By default most of the modules that ship with Prelude are not loaded. Try Before You "Buy" If you're using Emacs 29+ there's a simple way to try Prelude (or any other Emacs distro for that matter). Just clone Prelude's repo somewhere and do the following: emacs --init-dir ~/path/to/prelude Philosophy Prelude's philosophy is quite simple: simple easy to understand and extend stable a foundation for you to build upon, as opposed to some end-user product This means that it intentionally doesn't pack all the bells and whistles that it could. Prelude aims to enhance the classic Emacs experience without deviating a lot from it - e.g. it would never enable something like evil-mode (vim keybindings) by default and so on. All the third-party packages that it bundles are carefully vetted and are known to be of good quality and to have reliable maintainers. That generally means that Prelude's unlikely to immediate adopt some shiny new package, that has established tried and true alternatives. In practice this translates to the following: Prelude is less opinionated than distros like Spacemacs and Doom Emacs (meaning it's closer to the standard Emacs experience) Prelude installs relatively few additional packages by default Most modules in Prelude are opt-in instead of opt-out (you'll notice the default config enables only a handful of modules) Most modules (e.g. modules for programming languages) are pretty short and feature setup only for essential packages (in some cases that be just the major mode for the language in question) You don't really need to track Prelude's upstream - you're encouraged to just fork it and use it as the basis for your own configuration. Remember that the ultimate goal of every Emacs user is to create an Emacs setup that reflects their own experience, needs, goals and ideas. Just like Lisp, Emacs is nothing but a raw building material for the perfect editing experience. More installation options are discussed in the installation guide. User Manual While Emacs Prelude is pretty simple at its core, it does have some specifics that are worth learning - e.g. configuration options, load order of modules and personal settings and so on. Check out our user manual for more information. You can also find a lot of information about specific Prelude features and the rationale behind them on my Emacs blog Emacs Redux. crux and super-save A lot of utility commands that used to be part of Prelude were eventually extracted to the crux package, so they'd be easily available to more people. These days Prelude simply depends on that package. The super-save package also used to be part of Prelude in the past. Upgrading to Prelude 2.0 Prelude 2.0 is a major release that modernizes the entire distribution around Emacs 29+ features. Here's what you need to know: Emacs 29.1 is now required Prelude no longer supports Emacs 28 or older. If you haven't upgraded yet, now's the time. Emacs 29 brings built-in tree-sitter, Eglot (LSP client), use-package, and many other improvements that Prelude 2.0 takes full advantage of. Tree-sitter support For languages with both classic and tree-sitter modes (e.g., python-mode / python-ts-mode), Prelude uses the tree-sitter mode when its grammar is available. When it isn't, Prelude offers to install the grammar the first time you open such a file, and uses the classic mode if you say no. Set prelude-treesit-auto-install to always to skip the question, or to nil to never install grammars. M-x prelude-treesit-install-grammars installs the grammars for all of your enabled modules in one go. Some modules use tree-sitter modes that install their own grammars (e.g., prelude-ocaml uses neocaml). See the Emacs manual for more on tree-sitter grammars. Built-in LSP via Eglot Prelude 2.0 adds LS
Read the full README on GitHub

What Hacker News says

56 sources
Emacs guy since '97, strongly agree. If you build your own config, the Ikea effect takes hold and you feel like you've made something that's "yours", even if it's mostly cutting and pasting (or using AI) to cobble things together. I think bedrock is reasonable, and so is Prelude (https://github.com/bbatsov/prelude). I used to have a sprawling init.el, but these days is pretty compact (236 lines), mostly using straight to install packages and then configuration for gptel, agent-shell, and various hydras (https://github.com/abo-abo/hydra) to quickly execute various functions.
In Emacs, how it all started for me
I started with prelude[1], I wanted something batteries included to use as my main editor right away, but not as structurally different from vanilla as Doom or Spacemacs. Then after a couple of years I rewrote my config line by line looking at what prelude did and keeping only what I needed. I’m happy with result, but this was 7 years ago so there may be better options than prelude to do something similar today. [1] https://github.com/bbatsov/prelude
In Ask HN: Where to begin with "modern" Emacs?
> I forgot how absolutely horrible the new user experience is... The bbatsov/prelude project was started in 2011 to help address that problem. I started using it not long after that, as a new Emacs user, and it's been a joy to use ever since. And by "started using" I mean I forked it on GitHub, stared personalizing, and then merging/rebasing upstream at my own leisure. https://github.com/bbatsov/prelude https://prelude.emacsredux.com/en/latest/ From 2011 to present, not everyone in the Emacs community feels bbatsov's Prelude makes the best/correct decisions, but given how long Emacs has been around and how large its community has been over time, what can you really expect? It's certainly a lighter-weight starter kit compared to Doom Emacs and Spacemacs. (I'm not knocking those projects!). I've also looked at some of the newer starter kits
Read the rest
mentioned in other comments here and in previous HN threads; they seem okay to me, just reinventing a lot of the same "wheels" you'll find in Prelude, but in a less refined form... such are the freedoms, joys, and challenges of Free Software.
In 2024-01-01 Emacs News
If I recall correctly, on my mac I had an issue with the meta and super keys. I had to rebind Meta to Cmd and Super to Opt. Im pretty sure I used Bozhidar Batsov's solution for this. Another reason for you to stick to Emacs is Emacs Lisp. If you enjoy writing lisp you are not going to find a better piece of software written in any other lisp language. I prefer common lisp to elisp (alot!) but this is a fact in my opinion. Plus elisp is somewhat similar to common lisp and learning/appreciating the differrnces between the two will make you a better lisp programmer. https://github.com/bbatsov/prelude/blob/master/core/prelude-...
In Ask HN: Does anyone Lisp without Emacs?
I discovered this project recently via some random HN post, and I've been contemplating using it to start over with my very chaotic Emacs configuration. https://github.com/bbatsov/prelude The list of features: * Improved UX, that's still in line with Emacs traditions * Sane defaults of baseline Emacs functionality * Automatic installation of many major programming modes on demand * A curated set of 3rd party packages to enhance the base functionality * Simple modular architecture * Easy customization
In Show HN: Emacs Configuration Generator
I suspect it's because so many Emacs tutorials out there cover the same material as the built-in tutorial. And so many pre-packaged Emacs configuration files disable the menu-bar for no good reason other than that's what everyone else seems to be doing. e.g. "Emacs Prelude", one such configuration or "distribution" of Emacs, used to disable the menu-bar by default as recently as a year ago: https://github.com/bbatsov/prelude/commit/878cffb
In Bad Emacs Advice

Showing the 15 most recent of 56 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.