Skip to content

Doom Emacs

A configuration framework that turns GNU Emacs into a fast, curated editor setup.doomemacs/core

Stars
22.8k
Forks
3.1k
Licence
MIT
Language
Emacs Lisp
Last update
1 months ago
Type
Dev tool

What it is

Doom Emacs is a configuration framework for GNU Emacs, the long-running text editor. It supplies a set of reasonable defaults, optional modules for many programming languages and tools, and a command line script (bin/doom) for installing and updating packages. It can be used as a base for your own configuration or as a way to learn how Emacs is set up.

  • Set up a development environment for a programming language using optional modules
  • Use vim-style editing with evil-mode and vim plugin ports
  • Manage Emacs packages declaratively and pin them to specific commits
  • Run project-wide search and replace with ripgrep
  • Keep workspaces separate for different projects

Great for

  • Emacs users who want a curated starting point without building everything from scratch
  • Vim users who want optional vim emulation through evil-mode
  • People who care about startup speed and want a faster-loading config
  • Developers working across many languages who want modular, opt-in support

Not ideal for

  • People who want Emacs to work with no configuration or learning curve, since it assumes familiarity with Emacs concepts
  • Users who prefer a minimal config they fully control, because the framework adds its own layer of conventions
  • Users on unstable or pre-release Emacs builds, which the README says are not well supported
Step-by-step guide: how to use Doom EmacsInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Clone and build from source

    You'll need: GNU Emacs 27.1–31.1 (31.1 recommended) · Git >= 2.23 · ripgrep >= 11.0

    Clone the repository

    git clone --depth 1 https://github.com/doomemacs/core ~/.config/emacs

    Install Doom

    ~/.config/emacs/bin/doom install
  2. 2

    Run it

    • Install the prerequisites: Emacs, Git, and ripgrep
    • Clone the repository to ~/.config/emacs
    • Run ~/.config/emacs/bin/doom install
    • Follow the Getting Started guide in the documentation to configure Doom
    • Run doom doctor to check for missing dependencies
  3. 3

    Get the most out of it

    • Add ~/.config/emacs/bin to your PATH so the doom command is available everywhere
    • Run doom sync after editing your private init.el or packages.el
    • Run doom sync --env to load a snapshot of your shell environment at startup
    • Install optional tools such as fd to improve file indexing performance
    • Use doom upgrade to update Doom and installed packages

Downloads

Strengths

  • The README describes a focus on startup and run-time performance, with packages modified to load lazily
  • Modular design lets you enable only the parts you need
  • Includes a diagnostic command (doom doctor) to find missing system dependencies

Trade-offs

  • Requires GNU Emacs 27.1 to 31.1, and some features need newer versions such as 29.1 for use as a starter kit
  • The README notes about 150 optional modules, some with their own dependencies, so setup can take effort
  • The README says rollback for releases and updates is still a work in progress

How it compares

ProjectStarsTypeLevelUpdatedBest for
core (this)22.8kDev toolintermediate1 months agoEmacs users who want a curated starting point without building everything from scratch
fzf83.9kDev toolbeginner8 days agoCommand-line users who often search file names or command history
vim-plug35.8kDev toolbeginner22 days agoVim or Neovim users who want to manage plugins without a heavy setup
vim-airline18kAppbeginner22 days agoVim users who want a clearer status bar without heavy configuration
Vim15.2kAppbeginner6 days agoDevelopers who already know Vim and want its keybindings in VS Code
ideavim10.3kAppbeginner4 days agoDevelopers who already know Vim and want its keys inside a JetBrains IDE

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.