How doomemacs/core works
Doom Emacs is a configuration framework and CLI for turning GNU Emacs into a modular, reproducible editing environment. Users either launch Emacs, which loads Doom and its modules, or invoke the Doom CLI to install, synchronize, upgrade, diagnose, and snapshot the shell environment. The runtime then composes packages and editor features such as Vim emulation, language tooling, projects, search, popups, and persistent workspaces. Relationships reflect the README and repository tree; no source excerpts were available.
Components 22
Entry & Lifecycle
- Doom CLI Entry
bin/doom - CLI Dispatcher
lisp/doom-cli.el - System Doctor
bin/doom-doctor
Doom Core
- Doom Runtime
lisp/doom.el - Emacs Initialization
lisp/doom-emacs.el - Module Loader
lisp/doom-modules.el - Standard Library
lisp/lib
Package Management
- Package Manager
lisp/doom-packages.el - Straight Backend
lisp/doom-straight.el
Editor Features
- Optional Modules
modules - Vim Emulation
modules - Language Tooling
modules - Project Search
lisp/lib/projects.el - Persistent Workspaces
lisp/lib/sessions.el - Popup Manager
modules
State & Integrations
- Persistent State
lisp/lib/store.el - Shell Environment
lisp/cli/sh.el
Other components
- User
- GNU Emacs
- Git
- Ripgrep
- Package Sources
Connections 24
- User → Doom CLI Entry: invokes
- Doom CLI Entry → CLI Dispatcher: dispatches
- CLI Dispatcher → Package Manager: syncs packages
- CLI Dispatcher → System Doctor: runs diagnosis
- CLI Dispatcher → Shell Environment: writes snapshot
- CLI Dispatcher → Persistent State: regenerates caches
- Package Manager → Straight Backend: uses backend
- Straight Backend → Git: fetches revisions
- Straight Backend → Package Sources: retrieves packages
- User → GNU Emacs: launches
- GNU Emacs → Emacs Initialization: loads initialization
- Emacs Initialization → Doom Runtime: starts runtime
- Doom Runtime → Module Loader: loads modules
- Doom Runtime → Standard Library: uses utilities
- Module Loader → Optional Modules: configures modules
- Module Loader → Package Manager: declares packages
- Module Loader → Vim Emulation: enables emulation
- Module Loader → Language Tooling: enables tooling
- Module Loader → Project Search: enables projects
- Module Loader → Persistent Workspaces: enables workspaces
- Module Loader → Popup Manager: enables popups
- Project Search → Ripgrep: searches projects
- Doom Runtime → Shell Environment: reads snapshot
- Doom Runtime → Persistent State: loads state