HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
doomemacs
core
Emacs Lisp2018–2026
doomemacs / core

core

An Emacs framework for the stubborn martian hacker

116Distinct people
145Mentions
5Explicit recommenders
22.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

An Emacs framework for the stubborn martian hacker

GitHub

Where it is used

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

What people are saying

I was where you are about a month ago. I ended up using Doom[0] as a bootstrapped config and haven't looked back. I love org-mode. It's the killer feature of Emacs in my mind.…

dhagz used a recommendation phrase. 6 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 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 10:56:20 AM 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 year145 dated mentions

Observed mentions: 2018-02-24 01:17:45 UTC to 2026-03-11 11:56:22 UTC.

0102030402018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 9 mentions; 1 submissions, 8 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 18 mentions; 2 submissions, 16 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 37 mentions; 6 submissions, 31 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 22 mentions; 0 submissions, 22 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 28 mentions; 3 submissions, 25 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 15 mentions; 1 submissions, 14 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 9 mentions; 2 submissions, 7 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 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
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC918
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC18216
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC37631
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC22022
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC28325
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC15114
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC606
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC927
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

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

Read the project’s introduction
Cautiondoomemacs.com is not associated with nor endorsed by this project! doomemacs.org is our one and only domain. Read our announcement about it here. Doom Emacs Install • Documentation • FAQ • Screenshots • Contribute Table of Contents Introduction Features Prerequisites Install Roadmap Getting help Contribute Introduction It is a story as old as time. A stubborn, shell-dwelling, and melodramatic vimmer—envious of the features of modern text editors—spirals into despair before he succumbs to the dark side. This is his config. Doom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their frameworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rolled config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more about our favorite operating system. Its design is guided by these mantras: Gotta go fast. Startup and run-time performance are priorities. Doom goes beyond by modifying packages to be snappier and load lazier. Close to metal. There's less between you and vanilla Emacs by design. That's less to grok and less to work around when you tinker. Internals ought to be written as if reading them were part of Doom's UX, and it is! Opinionated, but not stubborn. Doom is about reasonable defaults and curated opinions, but use as little or as much of it as you like. Your system, your rules. You know better. At least, Doom hopes so! It won't automatically install system dependencies (and will force plugins not to either). Rely on doom doctor to tell you what's missing. Nix/Guix is a great idea! The Emacs ecosystem is temperamental. Things break and they break often. Disaster recovery should be a priority! Doom's package management should be declarative and your private config reproducible, and comes with a means to roll back releases and updates (still a WIP). Check out the FAQ for answers to common questions about the project. Features Minimalistic good looks inspired by modern editors. Curated and sane defaults for many packages, (major) OSes, and Emacs itself. A modular organizational structure for separating concerns in your config. A standard library designed to simplify your elisp bike shedding. A declarative package management system (powered by straight.el) with a command line interface. Install packages from anywhere, not just (M)ELPA, and pin them to any commit. Optional vim emulation powered by evil-mode, including ports of popular vim plugins like vim-sneak, vim-easymotion, vim-unimpaired and more! Opt-in LSP integration for many languages, using lsp-mode or eglot Support for many programming languages. Includes syntax highlighting, linters/checker integration, inline code evaluation, code completion (where possible), REPLs, documentation lookups, snippets, and more! Support for many tools, like docker, pass, ansible, terraform, and more. A Spacemacs-esque keybinding scheme, centered around leader and localleader prefix keys (SPC and SPCm for evil users, C-c and C-c l for vanilla users). A rule-based popup manager to control how temporary buffers are displayed (and disposed of). Per-file indentation style detection and editorconfig integration. Let someone else argue about tabs vs spaces. Project-management tools and framework-specific minor modes with their own snippets libraries. Project search (and replace) utilities, powered by ripgrep and ivy or helm. Isolated and persistent workspaces (also substitutes for vim tabs). Support for Chinese and Japanese input systems. Save a snapshot of your shell environment to a file for Emacs to load at startup. No more struggling to get Emacs to inherit your PATH, among other things. Prerequisites Required: GNU Emacs 27.1–31.1 (31.1 is recommended) Using only Doom's CLI requires 27.1+ Using Doom as a starter kit requires 29.1+ Git >= 2.23 ripgrep >= 11.0 Optional, but recommended: fd 7.3.0+ (used to improve file indexing performance) GNU variants of find, ls, and tar (on MacOS and BSD *nix) Symbola font (Emacs' fallback font for glyphs it can't display) WarningAvoid unstable and pre-release builds of Emacs. These end in .50, .60, or .9X (e.g. 28.1.91). Doom should generally work on Emacs HEAD (the maintainer dogfoods it), but support lags behind the bleeding edge by at least a month or so. ImportantDoom is comprised of ~150 optional modules, some of which may have additional dependencies. Visit their documentation or run bin/doom doctor to check for any that you may have missed. Install git clone --depth 1 https://github.com/doomemacs/core ~/.config/emacs ~/.config/emacs/bin/doom install Then read our Getting Started guide to be walked through installing, configuring and maintaining Doom Emacs. It's a good idea to add ~/.config/emacs/bin to your PATH! Other bin/doom commands you should know about: doom sync to synchronize your private config with Doom by installing missing packages, removing orphaned packages, and regenerating caches. Run this whenever you modify your private init.el or packages.el, or install/remove an Emacs package through your OS package manager (e.g. mu4e or agda). doom sync --env to include a snapshot of your shell environment that Doom will load at startup. This allows Emacs to inherit your PATH, among other things. This replaces exec-path-from-shell. doom upgrade to update Doom to the latest release & all installed packages. doom doctor to diagnose common issues with your system and config. Roadmap Doom is an active and ongoing project. To make that development more transparent, its roadmap (and other concerns) are published across three github project boards and a newsletter: Development Roadmap Packages under review: lists plugins we are watching and considering for inclusion, and what their status for inclusion is. Please consult this list before requesting new packages/features. Upstream bugs: lists issues
Read the full README on GitHub

What Hacker News says

28 sources
Because of the steep learning curve and troubleshooting associated with it, I've become more hesitant in recommending Emacs. However for the curious, the video Getting Started in Org Mode [1] which is a great demonstration on Emacs and Org Mode's potential as an organizational tool. Anyone still curious and would like to smooth out the learning curve, I'd recommend using an emacs starter kit such as Doom Emacs [2] which has a lot of OOB functionality without having to immediately learn Elisp. [1] https://www.youtube.com/watch?v=SzA2YODtgK4 [2] https://github.com/doomemacs/doomemacs
In Ask HN: Looking for a Programable Text Editor
The Emacs package from Nix. It’s the only macOS build of Emacs I used that was fully featured, provided in binary form, distributed from a reputable source, and not broken. I initially used Homebrew Emacs, but it removed GUI support a while back. I then briefly tried the emacsformacosx build, the one Homebrew Cask points to, but I stopped using that too because it’s not compiled with the full set of dependencies and isn’t supported by DoomEmacs [1]. I then moved to emacs-plus, but that too had issues like the lack of binary packages and unreliable updates. I finally settled on Nix and it hasn’t given me problems since. The current situation personally came off as a surprise considering the popularity of Emacs. [1]: https://github.com/doomemacs/doomemacs/blob/085b5563fc73daf5...
In Ask HN: Emacs on macOS Ventura on Apple Silicon
I don't really know what you do with your text editor, but Emacs (and vim) are very much not "low-level" editors unless you chose to not configure them. Emacs has all the features of VScode, plus more. And it keeps expanding by each day. A "fully featured" Emacs "IDE" is also just as laggy, sometimes even more, as any other "fully featured" IDE. Some Emacs configs even take tens of seconds to load! Mine however takes 1.5s, but that is because everything is lazily loaded. The first time I open a C++ file, it takes a couple seconds. A really nice easy to use framework for getting productive in Emacs quickly is Doom[1]. You should give it a peak if you think Emacs is "low-level". [1] https://github.com/doomemacs/doomemacs
In My IDE is too heavy so I moved to Emacs
There is a very opinionated and batteries-included "Vim-y" Emacs called Doom [0]. A decent way to approach this if you don't want to start writing elisp outta the gate to have fancy editor features is to learn enough of the Doom config to tweak it to your liking, then add some elisp customization in as needed. I personally use this approach, usually cribbing config and elisp tweaks from the top contributors' configs. The Evil layer that Doom and most everyone seems to use for Vim modes works really well, and has a lot of ways to tweak things (e.g. changing `j` to `gj` for going through line breaks in normal mode; I forgot what that setting is called...). There is something to be said by bootstrapping your config entirely from scratch instead of using a "config framework" like Doom, but that can be too daunting and end up preventing one fr
Read the rest
om trying things out. [0] https://github.com/doomemacs/doomemacs
In Resolving the great undo-redo quandary
> How do I get started using Emacs, if I wanted to use this awesome-sounding tool, while still being friendly to the fact that I have to get stuff done and still need the tools I mentioned above? Only use the new system on Friday afternoons or whenever your typical slow periods or lulls happen until you get used to it. If you plan to customize your workflow and extend your system I recommend: https://github.com/SystemCrafters/crafted-emacs If you want more out of the box, but harder to debug and extend I'd recommend: https://github.com/doomemacs/doomemacs (you can use vanilla or vim keybindings) In either case I'll echo the user recommending Mastering emacs.
In Unix as a tool forge and how Emacs fits in Unix philosophy
I use emacs with evil and been using it for over a decade now. However, I use VSCode for web development and Rider for game development as the integrations are superior with vim extensions for those IDEs. What you are looking for is a set of principles that make theses editors better. You can take baby steps towards it and 1 - 2 weeks is very limited time if you want to change your editing style (It's like learning a new language). 1. Modal editing (VIM / Evil): Install vim extension pack[1][2][3] for VSCode. This should give a good starter pack. 2. Practice: - Disable the arrow keys using keymapping in VSCode or with a keyboard customization (s/w or h/w). - Disconnect the mouse - Practice long writing / code editing sessions where your productivity doesn't matter. You are learning. - Start with simple navigation (hjkl, go to
Read the rest
line) - Use numeric prefixes - Begin using text manipulation commands (yi" or di> for example) - Use normal mode keys for window navigation (spc + w + h for example) Once you get comfortable with this you should already see a decent leap in comfort/experience and almost zero mouse usage. 3. Next install emacs with a configuration repository[4]. Most of your practice in VSCode vim should apply almost directly. 4. With emacs, you have a vast operating surface. You can choose to use it just as your editor or you can use it as an operating system: email, calendering, note taking, calculations, twitter, rss, text based browser, file manager, http request playground etc. Org mode is essential emacs experience. You can add the rest of them very slowly [1]: vscodevim.vim: https://marketplace.visualstudio.com/items?itemName=vscodevi... [2]: vspacecode.vspacecode: https://marketplace.visualstudio.com/items?itemName=VSpaceCo... [3]: vspacecode.whichkey: https://marketplace.visualstudio.com/items?itemName=VSpaceCo... [4]: doom emacs: https://github.com/doomemacs/doomemacs
In Ask HN: How to become good at Emacs/Vim?
I found Obsidian great, so if this reaches near feature parity and allows me to stay in the terminal, it's a great upgrade already. Recently though I switched from vim to Doom Emacs and started learning org-mode. This turned out to quite literally be a career breakthrough for me, as I realized how much easier it is with both to remain productive throughout the day and to manage my personal knowledge base, or second brain. I'd highly recommend everyone to try DE out [0]. I always thought Emacs to be unnecessarily complex, but majority of it is hidden away in special features. DE, especially for vimmers, delivers a lot of very useful IDE-like functionality out of the box, simplifies the hotkeys, provides stellar configurability and, in my experience, just lets fingers flow more smoothly across the keyboard. Org-mode by itself may seem daunt
Read the rest
ing as well, but it turns out to be designed in a similar fashion - take and use what you need, no hidden complexity or other strings attached. I can recommend Distrotube's tutorials on either [1]. [0]: https://github.com/doomemacs/doomemacs [1]: https://www.youtube.com/watch?v=Ea_-TaEGa7Y
In Show HN: Jot: Rapid note management for the terminal, inspired by Obsidian
What has helped me with the consolidation is the ubiquity of my preferred key bindings. I use vim keys with spacemacs like bindings. On emacs, doom-emacs[1] gives me the bindings. On VSCode, VSpaceCode[2], on Jetbrains Rider, Intellimacs[3]. While there are minor differences between the implementations, I have very limited friction when switching between IDEs. I have paid for the Jetbrains ultimate subscription as I also use DataGrip. I think I’ll be satisfied with the current version of their IDEs for the next 2 years even if I decide to cancel the sub. [1]: https://github.com/doomemacs/doomemacs [2]: https://vspacecode.github.io/ [3]: https://github.com/MarcoIeni/intellimacs
In Ask HN: MacBook M1 development workflow?
I also bounced off multiple times but have now been happily using it for 2 years. I really reccomend trying Doom Emacs and learning the default VIM modal editing. Doom comes with sane defaults and very simple configuration presets for every language out of the box. Learning modal editing pays off quickly. https://github.com/doomemacs/doomemacs
In Emacs Timeline

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