160+ Official Modules

Each card lists the symbol to place under the matching (doom! …) section in ~/.doom.d/init.el, then run doom sync. Optional flags (for example +lsp) are described in upstream module docs. For file layout and personal settings, see Configuration.

Read Getting Started, compare stacks on the FAQ, and follow Install. Tune config.el on the Configuration page.

Input

Layouts, CJK input, and bidirectional text helpers.

Section keyword: :input

4
bidi
:input
  bidi

In init.el, place bidi under :input. Add documented flags (e.g. (python +lsp)) when you need them.

chinese
:input
  chinese

In init.el, place chinese under :input. Add documented flags (e.g. (python +lsp)) when you need them.

japanese
:input
  japanese

In init.el, place japanese under :input. Add documented flags (e.g. (python +lsp)) when you need them.

layout
:input
  layout

In init.el, place layout under :input. Add documented flags (e.g. (python +lsp)) when you need them.

Completion

Completion UIs and backends (Vertico, Helm, Company, …).

Section keyword: :completion

6
company
:completion
  company

In init.el, place company under :completion. Add documented flags (e.g. (python +lsp)) when you need them.

corfu
:completion
  corfu

In init.el, place corfu under :completion. Add documented flags (e.g. (python +lsp)) when you need them.

helm
:completion
  helm

In init.el, place helm under :completion. Add documented flags (e.g. (python +lsp)) when you need them.

ido
:completion
  ido

In init.el, place ido under :completion. Add documented flags (e.g. (python +lsp)) when you need them.

ivy
:completion
  ivy

In init.el, place ivy under :completion. Add documented flags (e.g. (python +lsp)) when you need them.

vertico
:completion
  vertico

In init.el, place vertico under :completion. Add documented flags (e.g. (python +lsp)) when you need them.

UI

Themes, modeline, workspaces, popups, and window UX.

Section keyword: :ui

24
dashboard
:ui
  dashboard

In init.el, place dashboard under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

deft
:ui
  deft

In init.el, place deft under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

doom
:ui
  doom

In init.el, place doom under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

doom-dashboard
:ui
  doom-dashboard

In init.el, place doom-dashboard under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

doom-quit
:ui
  doom-quit

In init.el, place doom-quit under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

emoji
:ui
  emoji

In init.el, place emoji under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

hl-todo
:ui
  hl-todo

In init.el, place hl-todo under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

indent-guides
:ui
  indent-guides

In init.el, place indent-guides under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

ligatures
:ui
  ligatures

In init.el, place ligatures under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

minimap
:ui
  minimap

In init.el, place minimap under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

modeline
:ui
  modeline

In init.el, place modeline under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

nav-flash
:ui
  nav-flash

In init.el, place nav-flash under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

neotree
:ui
  neotree

In init.el, place neotree under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

ophints
:ui
  ophints

In init.el, place ophints under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

popup
:ui
  popup

In init.el, place popup under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

smooth-scroll
:ui
  smooth-scroll

In init.el, place smooth-scroll under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

tabs
:ui
  tabs

In init.el, place tabs under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

treemacs
:ui
  treemacs

In init.el, place treemacs under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

unicode
:ui
  unicode

In init.el, place unicode under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

vc-gutter
:ui
  vc-gutter

In init.el, place vc-gutter under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

vi-tilde-fringe
:ui
  vi-tilde-fringe

In init.el, place vi-tilde-fringe under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

window-select
:ui
  window-select

In init.el, place window-select under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

workspaces
:ui
  workspaces

In init.el, place workspaces under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

zen
:ui
  zen

In init.el, place zen under :ui. Add documented flags (e.g. (python +lsp)) when you need them.

Emacs

Dired, VC, Tramp, ibuffer, and other core Emacs surfaces.

Section keyword: :emacs

7
dired
:emacs
  dired

In init.el, place dired under :emacs. Add documented flags (e.g. (python +lsp)) when you need them.

electric
:emacs
  electric

In init.el, place electric under :emacs. Add documented flags (e.g. (python +lsp)) when you need them.

eww
:emacs
  eww

In init.el, place eww under :emacs. Add documented flags (e.g. (python +lsp)) when you need them.

ibuffer
:emacs
  ibuffer

In init.el, place ibuffer under :emacs. Add documented flags (e.g. (python +lsp)) when you need them.

tramp
:emacs
  tramp

In init.el, place tramp under :emacs. Add documented flags (e.g. (python +lsp)) when you need them.

undo
:emacs
  undo

In init.el, place undo under :emacs. Add documented flags (e.g. (python +lsp)) when you need them.

vc
:emacs
  vc

In init.el, place vc under :emacs. Add documented flags (e.g. (python +lsp)) when you need them.

Editor

Evil, snippets, format-on-save, folding, and structural editing.

Section keyword: :editor

13
evil
:editor
  evil

In init.el, place evil under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

file-templates
:editor
  file-templates

In init.el, place file-templates under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

fold
:editor
  fold

In init.el, place fold under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

format
:editor
  format

In init.el, place format under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

god
:editor
  god

In init.el, place god under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

lispy
:editor
  lispy

In init.el, place lispy under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

multiple-cursors
:editor
  multiple-cursors

In init.el, place multiple-cursors under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

objed
:editor
  objed

In init.el, place objed under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

parinfer
:editor
  parinfer

In init.el, place parinfer under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

rotate-text
:editor
  rotate-text

In init.el, place rotate-text under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

snippets
:editor
  snippets

In init.el, place snippets under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

whitespace
:editor
  whitespace

In init.el, place whitespace under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

word-wrap
:editor
  word-wrap

In init.el, place word-wrap under :editor. Add documented flags (e.g. (python +lsp)) when you need them.

Terminal

vterm, Eshell, shell REPLs, and classic term.

Section keyword: :term

4
eshell
:term
  eshell

In init.el, place eshell under :term. Add documented flags (e.g. (python +lsp)) when you need them.

shell
:term
  shell

In init.el, place shell under :term. Add documented flags (e.g. (python +lsp)) when you need them.

term
:term
  term

In init.el, place term under :term. Add documented flags (e.g. (python +lsp)) when you need them.

vterm
:term
  vterm

In init.el, place vterm under :term. Add documented flags (e.g. (python +lsp)) when you need them.

Checkers

Spell, grammar, and syntax checkers.

Section keyword: :checkers

3
grammar
:checkers
  grammar

In init.el, place grammar under :checkers. Add documented flags (e.g. (python +lsp)) when you need them.

spell
:checkers
  spell

In init.el, place spell under :checkers. Add documented flags (e.g. (python +lsp)) when you need them.

syntax
:checkers
  syntax

In init.el, place syntax under :checkers. Add documented flags (e.g. (python +lsp)) when you need them.

Tools

Magit, LSP, Docker, Terraform, LLM helpers, and more.

Section keyword: :tools

20
ansible
:tools
  ansible

In init.el, place ansible under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

biblio
:tools
  biblio

In init.el, place biblio under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

collab
:tools
  collab

In init.el, place collab under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

debugger
:tools
  debugger

In init.el, place debugger under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

direnv
:tools
  direnv

In init.el, place direnv under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

docker
:tools
  docker

In init.el, place docker under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

editorconfig
:tools
  editorconfig

In init.el, place editorconfig under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

ein
:tools
  ein

In init.el, place ein under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

eval
:tools
  eval

In init.el, place eval under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

llm
:tools
  llm

In init.el, place llm under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

lookup
:tools
  lookup

In init.el, place lookup under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

lsp
:tools
  lsp

In init.el, place lsp under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

magit
:tools
  magit

In init.el, place magit under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

make
:tools
  make

In init.el, place make under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

pass
:tools
  pass

In init.el, place pass under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

pdf
:tools
  pdf

In init.el, place pdf under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

terraform
:tools
  terraform

In init.el, place terraform under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

tmux
:tools
  tmux

In init.el, place tmux under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

tree-sitter
:tools
  tree-sitter

In init.el, place tree-sitter under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

upload
:tools
  upload

In init.el, place upload under :tools. Add documented flags (e.g. (python +lsp)) when you need them.

Languages

Per-language support (enable flags like +lsp inside each module’s docs).

Section keyword: :lang

66
ada
:lang
  ada

In init.el, place ada under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

agda
:lang
  agda

In init.el, place agda under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

beancount
:lang
  beancount

In init.el, place beancount under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

cc
:lang
  cc

In init.el, place cc under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

clojure
:lang
  clojure

In init.el, place clojure under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

common-lisp
:lang
  common-lisp

In init.el, place common-lisp under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

coq
:lang
  coq

In init.el, place coq under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

crystal
:lang
  crystal

In init.el, place crystal under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

csharp
:lang
  csharp

In init.el, place csharp under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

dart
:lang
  dart

In init.el, place dart under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

data
:lang
  data

In init.el, place data under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

dhall
:lang
  dhall

In init.el, place dhall under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

elixir
:lang
  elixir

In init.el, place elixir under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

elm
:lang
  elm

In init.el, place elm under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

emacs-lisp
:lang
  emacs-lisp

In init.el, place emacs-lisp under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

erlang
:lang
  erlang

In init.el, place erlang under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

ess
:lang
  ess

In init.el, place ess under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

factor
:lang
  factor

In init.el, place factor under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

faust
:lang
  faust

In init.el, place faust under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

fortran
:lang
  fortran

In init.el, place fortran under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

fsharp
:lang
  fsharp

In init.el, place fsharp under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

fstar
:lang
  fstar

In init.el, place fstar under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

gdscript
:lang
  gdscript

In init.el, place gdscript under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

go
:lang
  go

In init.el, place go under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

graphql
:lang
  graphql

In init.el, place graphql under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

graphviz
:lang
  graphviz

In init.el, place graphviz under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

haskell
:lang
  haskell

In init.el, place haskell under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

hy
:lang
  hy

In init.el, place hy under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

idris
:lang
  idris

In init.el, place idris under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

janet
:lang
  janet

In init.el, place janet under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

java
:lang
  java

In init.el, place java under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

javascript
:lang
  javascript

In init.el, place javascript under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

json
:lang
  json

In init.el, place json under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

julia
:lang
  julia

In init.el, place julia under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

kotlin
:lang
  kotlin

In init.el, place kotlin under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

latex
:lang
  latex

In init.el, place latex under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

lean
:lang
  lean

In init.el, place lean under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

ledger
:lang
  ledger

In init.el, place ledger under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

lua
:lang
  lua

In init.el, place lua under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

markdown
:lang
  markdown

In init.el, place markdown under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

nim
:lang
  nim

In init.el, place nim under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

nix
:lang
  nix

In init.el, place nix under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

ocaml
:lang
  ocaml

In init.el, place ocaml under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

odin
:lang
  odin

In init.el, place odin under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

org
:lang
  org

In init.el, place org under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

php
:lang
  php

In init.el, place php under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

plantuml
:lang
  plantuml

In init.el, place plantuml under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

purescript
:lang
  purescript

In init.el, place purescript under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

python
:lang
  python

In init.el, place python under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

qt
:lang
  qt

In init.el, place qt under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

racket
:lang
  racket

In init.el, place racket under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

raku
:lang
  raku

In init.el, place raku under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

rest
:lang
  rest

In init.el, place rest under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

rst
:lang
  rst

In init.el, place rst under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

ruby
:lang
  ruby

In init.el, place ruby under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

rust
:lang
  rust

In init.el, place rust under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

scala
:lang
  scala

In init.el, place scala under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

scheme
:lang
  scheme

In init.el, place scheme under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

sh
:lang
  sh

In init.el, place sh under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

sml
:lang
  sml

In init.el, place sml under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

solidity
:lang
  solidity

In init.el, place solidity under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

swift
:lang
  swift

In init.el, place swift under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

terra
:lang
  terra

In init.el, place terra under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

web
:lang
  web

In init.el, place web under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

yaml
:lang
  yaml

In init.el, place yaml under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

zig
:lang
  zig

In init.el, place zig under :lang. Add documented flags (e.g. (python +lsp)) when you need them.

Email

mu4e, notmuch, and Wanderlust.

Section keyword: :email

3
mu4e
:email
  mu4e

In init.el, place mu4e under :email. Add documented flags (e.g. (python +lsp)) when you need them.

notmuch
:email
  notmuch

In init.el, place notmuch under :email. Add documented flags (e.g. (python +lsp)) when you need them.

wanderlust
:email
  wanderlust

In init.el, place wanderlust under :email. Add documented flags (e.g. (python +lsp)) when you need them.

Apps

RSS, IRC, calendar, EMMS, and system-wide capture.

Section keyword: :app

5
calendar
:app
  calendar

In init.el, place calendar under :app. Add documented flags (e.g. (python +lsp)) when you need them.

emms
:app
  emms

In init.el, place emms under :app. Add documented flags (e.g. (python +lsp)) when you need them.

everywhere
:app
  everywhere

In init.el, place everywhere under :app. Add documented flags (e.g. (python +lsp)) when you need them.

irc
:app
  irc

In init.el, place irc under :app. Add documented flags (e.g. (python +lsp)) when you need them.

rss
:app
  rss

In init.el, place rss under :app. Add documented flags (e.g. (python +lsp)) when you need them.

Config

Runtime defaults, literate config, and use-package integration.

Section keyword: :config

3
default
:config
  default

In init.el, place default under :config. Add documented flags (e.g. (python +lsp)) when you need them.

literate
:config
  literate

In init.el, place literate under :config. Add documented flags (e.g. (python +lsp)) when you need them.

use-package
:config
  use-package

In init.el, place use-package under :config. Add documented flags (e.g. (python +lsp)) when you need them.

OS

macOS and TTY-specific tweaks.

Section keyword: :os

2
macos
:os
  macos

In init.el, place macos under :os. Add documented flags (e.g. (python +lsp)) when you need them.

tty
:os
  tty

In init.el, place tty under :os. Add documented flags (e.g. (python +lsp)) when you need them.

Typical (doom! …) block

;; ~/.doom.d/init.el — excerpt; see each module README for flags
 
(doom!
  :lang
    python      ; or (python +lsp) if documented
    rust
  :tools
    magit
    lsp
  :completion
    vertico
)

Then run doom sync and restart Emacs. Next: Configuration for config.el and packages.el.