| name | emacs-config |
| description | Edit modular Emacs configuration in emacs/.config/emacs/. Use when changing init-*.el modules, use-package setup, custom lisp packages, tree-sitter grammars, XDG path helpers, or Emacs appearance/editing/prog settings — even if the user only mentions "Emacs config" or "init.el".
|
| license | MIT |
| metadata | {"author":"j-shilling","version":"0.1.0"} |
| allowed-tools | ["bash","read","edit"] |
Emacs Configuration
Module organization
Configuration is split into focused init-*.el files loaded from init.el:
| Module | Domain |
|---|
init-lib.el | XDG path helpers (init--state-file, init--cache-file) |
init-package.el | use-package, MELPA, completion (vertico, consult, corfu) |
init-appearance.el | Themes, fonts, UI |
init-editing.el | Text editing |
init-prog.el | Programming language modes, eglot LSP |
init-tools.el | Eshell, dired, Magit |
init-org.el | Org-mode |
init-ai.el | GPTel, MCP hub |
init-ai-tools.el | GPTel tool definitions |
init-tree-sitter.el | Tree-sitter grammars |
init-completion.el | Completion framework details |
Add new domains as new init-*.el files; require them from init.el.
Patterns
- Wrap packages in
use-package with appropriate :defer, :hook, or :commands
- Use
init--state-file and init--cache-file for any new file paths (XDG compliance)
- Custom packages go in lisp/ (markdown-ts-mode, terraform-ts-mode, erb-ts-mode, gptel-*)
- AI prompt templates go in prompts/
- Code snippet templates go in templates/
- Platform branches: use
IS-MAC, IS-LINUX, IS-WSL or init-lib-*-p — support Linux and macOS
Portability
After editing
Restow the emacs package:
stow -R -d ~/dotfiles -t ~ --no-folding -v emacs
Reload in running Emacs: M-x eval-buffer on the changed file, or restart.
Deep reference
See docs/agents/emacs-modules.md for per-module details, LSP setup, and language support.