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:02:05 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

37 sources
For 1, I generally recommend whatever Doom is recommending[0], which is currently the tap you mentioned. For 2, evil is indeed available by default in Doom and works normally with org-mode. For the most part, everything works just like in vim, including splitting panes (windows in emacs), switching tabs if you've enabled them, and so on. So, writing notes in org-mode should essentially be just like writing nodes in any other editor with vim keybindings. You've also got by default nice stuff corresponding to some of the popular vim plugins, including vim-surround and commenting (via `g c <motion>` or selecting a range and then `g c`). There was also this post I saw recently exploring `evil-snipe`, `evil-easymotion`, and a few other plugins available by default that was quite helpful[1]. There are also a number of useful org-mode specific f
Read the rest
unctions available when you're editing an org file behind the "local leader" `spc m`, like ticking off checkboxes (`spc m x`), storing links (`spc m n`) inserting links (`spc m l`), toggling todos, setting priority, scheduling dates, and so on. `TAB` cycles folding of headlines, `shift+TAB` cycles headlines throughout the document. In general, one of the nicest things about emacs is the ability to introspect everything at runtime. `spc h v` allows you to search for, check (and change) the value of any variable, and you can often do some exploration in the fuzzy finder to figure out what settings are available for whatever editor feature you're using. `spc h k` lets you type a keybinding and gives you the documentation for whatever function it's mapped to. `spc :` or `M-x` opens up a fuzzy finder for all the functions available in the editor. You can search through these to find stuff you might like to do, and see inline which keybinding the function is bound to, if any. `spc h a` searches all functions, variables, etc., in a similar way. `spc h i` opens up an info browser, which is like man pages on steroids. Many emacs plugins have documentation here, as well as many system utilities. Last but not least, the help for Doom itself is quite nice, which you can get to via `spc h d m` (help for doom modules), `spc h d h` (general doom help), and so on. For org-mode, you can learn a lot of what's available by typing `spc :` and then just reading through all the functions that start with `org-`. [0]: https://github.com/hlissner/doom-emacs/blob/develop/docs/get... [1]: https://medium.com/@aria_39488/the-niceties-of-evil-in-doom-...
In Emacs Survey 2020 Results
You might love doom emacs. I've used emacs for 8 years and switched in July, and I can see myself using this for the next 10 years. I tried Spacemacs, and the vim integration was so sloppy that the first time I tried to install a single package I was dumped in with unfamiliar emacs bindings, which I then had to look up to even get out of it. The integration in doom emacs is much tighter and better fitting. https://github.com/hlissner/doom-emacs
In Vimflowy
Emacs can use GPG to encrypt files at rest pretty transparently. Just save a files with the extension `.org.gpg` and it should get encrypted automatically with Spacemacs (I personally use https://github.com/hlissner/doom-emacs/). Note that adding an encrypted file to your agenda, .e.g. `(setq org-agenda-files '("~/org/secret-diary.org.gpg"))` will let Emacs decrypt that file upon calling "org-agenda". Something similar should be possible for search if it doesn't work out of the box
In Show HN: CLI plain-text notes & bookmarks with Git, sync, encryption, and more
dhagz·Sep 22, 2020Recommendation phrase
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. I also feel like (note, this is entirely anecdotal and not based on hard facts) Emacs has better LSP integration than Vim. I mainly use Go, so it could also be that gopls has become more stable than it was a year ago when I was first trying to get Vim working with it. [0]: https://github.com/hlissner/doom-emacs
In No script is too simple
> I feel like it’s pretty safe to say https://github.com/hlissner/doom-emacs mostly solves of these concerns for Vim users in 2020 I use both doom emacs and neovim, and I'd say: not really, at least not for me, there are some Vim features evil doesn't emulate properly, or at least it doesn't work like in Vim. Off the top of my head, I write in many languages, but absolutely hate the US international keyboard for accented characters, guess what? Vim has built-in support for digraph[0] by using Ctrl-k and iirc this is a motion keyboard shortcut in emacs, and since I like and use org-mode a lot, I'm always frustrated when I have to type in another language. Another one was with the various Terminal emulators packages in emacs, although this one was solved recently[1], whereas in (neo)vim it works flawlessly ootb. 0: https://vim.fandom.com/wi
Read the rest
In Emacs is special regarding UIs

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