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

15 sources
My configuration is 3k lines of lisp code (measured by cloc). Doom is about 44k. So, Doom's configuration is about 12 times large than mine and my configuration works for just about everything I need. Adding support for a new language is typically mostly figuring out how to get a language server and configuring eglot for it, then installing syntax-highlighting either via tree-sitter or with (use-package <language>-mode :ensure t). Addtitionally, just skimming doom's early-init.el[1], it makes a lot of questionable choices (like requiring the use of `doom sync` for stuff emacs just does by itself). [1]: https://github.com/doomemacs/doomemacs/blob/master/early-ini...
In Emacs and shellcheck
I'm not an old greybeard (in my 20s) and I solely use Emacs. What's "modern tools"? Emacs has everything; with the Language Server Protocol it is exactly like VS Code and the like, with autocomplete, find definitions, native tree-sitter support. It can even read PDFs, images, man/info pages, browse the web. I don't see any advantage that VS Code has over Emacs. PS. Try Doom Emacs and evil-mode: https://github.com/doomemacs/doomemacs/
In Mastering Emacs
I am a long-time Emacs user and used to maintain my own config, but I switched to Doom Emacs [1] a year ago. Doom Emacs is like a pre-packaged/pre-configured emacs distro. You still need to configure the features that you want to use, but it's a lot easier (and faster) than having to do everything from scratch, and definitely if you already have some emacs background anyway. For me, it makes the newer, more advanced, features more accessible. Since switching, I started to use Emacs more again. [1] https://github.com/doomemacs/doomemacs
In Emacs 29.1
If you're a vim user but interested in trying out Emacs, I'd highly recommend Doom Emacs: https://github.com/doomemacs/doomemacs. I had been using neovim as my main editor for a while, but the vim bindings (evil) in Doom Emacs are excellent. It was a lot to take in at first, so I went back to neovim. But I started using org mode more and more until I finally just went all in on Emacs. Now I understand that the editor war is pointless. Bringing vim + emacs together is bliss.
In Emacs is not just an editor (2015)
For those playing along at home, here's where I got to with doom emacs - - You can't just "git clone" doom emacs using a rooted termux, because /data/data/org.gnu.emacs/ is read-only. - So it seems that you have to use the emacs process. I went to buffers -> scratch to get a keyboard, and then used https://f-droid.org/en/packages/juloo.keyboard2/ to `M-x shell`. - You don't have `git` in this shell, but you can still download doomemacs from github using curl -LJO https://github.com/doomemacs/doomemacs/archive/refs/heads/master.zip - and `unzip` the archive, moving it into place. - .emacs.d/bin/doom is just a shell script, so you can invoke installation with - `sh .emacs.d/bin/doom install` - This is where I left off, for this script fails with "`emacs` not found on path". All-in-all, a very, very exciting release! I hope somebody else
Read the rest
manages to hack this.
In Emacs is on F-Droid
> What both Emacs and Vim have in common is an intimidating learning curve. You can't just dip your toe in. You kinda can, these days. One of the main issues is that Emacs is, out of the box, the most complete toolbox you'll ever see, while at the same time being very incomplete. You have an email client, spreadsheet, unit converter, ASCII drawing, debugger, file explorer and so on and so forth. Meanwhile, you open a Python file and you are lacking a bunch of stuff that the likes of VSCode have out of the box. So the solution is to customize, and that takes an inordinate amount of time. Thankfully, some other people have solved this for us: https://www.spacemacs.org/ Spacemacs has VI commands by default - and I don't mean just the simplest keybindings like some VI emulators do, it's using evil-mode and it's pretty good. It can also be use
Read the rest
d in 'holy' mode (Emacs keybindings). There's also(the one I use): https://github.com/doomemacs/doomemacs Either of these will get you a much more modern Emacs experience out of the box. You may need to add packages (it wouldn't be feasible to add all packages that everyone could possibly want), but they make it easy. Even though Emacs now comes with a package manager, it doesn't have any opinion on how you configure things. Both Spacemacs and Doom Emacs are opinionated, and that's a good thing. Sure, you still need to learn concepts and keybindings. Thankfully, there's no shortage of tutorials, and Emacs own built-in documentation is very good. It also has a built-in tutorial, which is how I learned.
In The benefits of everything being a buffer in Emacs

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.