mcpField
D
doom-literate-config

doom-literate-config

github.com/tejas-kaleDevelopment038 installsUpdated 4d ago
Repository

About doom-literate-config

A skill for maintaining Doom Emacs configurations written in literate Org mode. It helps developers trace generated files back to config.org, preserve existing settings, and make focused changes using Doom conventions.

Key features

  1. 01Identify tangled files and destinations
  2. 02Inventory settings and package declarations
  3. 03Preserve comments in the source
  4. 04Use Doom-native configuration macros
  5. 05Organize tools into Org sections

Use cases

  1. 01Modify a Doom configuration safely
  2. 02Add a package declaration to packages.el
  3. 03Change key bindings or package settings

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tejas-kale/skills --skill doom-literate-config

After installing, type/doom-literate-configin Claude Code to confirm it loaded.

Details

From the project README

Doom Literate Config

In a literate setup config.org is the source and everything else is tangled — generated on export and overwritten. Every edit belongs in the source; an edit to a tangled file is lost at the next tangle.

1. Establish what tangles where

Read init.el, config.org, config.el, and packages.el.

  • :config literate in init.el makes config.org the source.
  • Ordinary emacs-lisp blocks tangle to config.el.
  • Blocks marked :tangle packages.el tangle there; package! declarations need that marker.

Done when you can name the source file and the tangle destination of every block you intend to touch.

2. Account for the current configuration

Before the first edit, inventory every active setting in config.el and every package! declaration in packages.el, and confirm each one has a home in config.org.

Carry package-file comments into a config.org block tangled to packages.el, so they survive regeneration.

Done when every active setting, declaration, and comment in the tangled files is accounted for in the source — each one either preserved there or deliberately dropped.

3. Make the smallest Doom-native change

Reach for the Doom macro over raw Emacs Lisp:

TaskUse
Declare an external packagepackage! (in the packages.el block)
Configure a packageuse-package!
Bind keysmap!
Set the default fontdoom-font
Set new-frame geometrydefault-frame-alist

Give each tool its own config.org section and code block, with its prerequisites in a block above its configuration.

Done when every changed line traces to a preference the user stated.

Comments

Markdown supported