원클릭으로
add-package
Add a new Emacs package to this doom config — packages.el declaration, config.org section, and doom sync
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Add a new Emacs package to this doom config — packages.el declaration, config.org section, and doom sync
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Run static analysis and byte-compile checks on the Doom config without opening Emacs
Systematically debug a doom emacs issue — errors, broken packages, slow startup, keybinding conflicts
Look up a Doom Emacs module's documentation, flags, and packages before configuring anything manually. Use this when the user asks about adding a feature, package, or integration to Doom.
Run doom sync after config changes and diagnose any errors
Update doom emacs and/or packages — runs doom upgrade, handles errors, summarizes what changed
Expert Emacs Lisp programmer and Doom Emacs architect. Use when writing custom packages, configuring complex behaviors, debugging elisp, designing abstractions, or any task that requires deep Emacs/Doom knowledge.
| name | add-package |
| description | Add a new Emacs package to this doom config — packages.el declaration, config.org section, and doom sync |
| argument-hint | <package-name> [description of what you want it to do] |
| allowed-tools | Read, Edit, Grep, Bash |
Full workflow to add a new package to this doom emacs config.
config.el — it is auto-generated. All config goes in config.org.pipboy/~/.config/emacs/bin/doomAlways check this first — prefer enabling a module over a manual package!.
grep -rl "$0" ~/.config/emacs/modules/*/*/README.org
ls ~/.config/emacs/modules/*/ | grep -i "$0"
If a module exists, use the doom-module skill to read its README and enable it in init.el instead of proceeding here.
Also grep packages.el and init.el to check if it's already declared:
Grep packages.el and init.el for: $0
packages.elAppend a (package! ...) form. Use the simplest form that works:
;; From MELPA (most packages):
(package! package-name)
;; Pinned to a commit:
(package! package-name :pin "COMMIT-SHA")
;; From a git repo not on MELPA:
(package! package-name
:recipe (:host github :repo "user/repo"))
;; Disabled (override doom default):
(package! package-name :disable t)
config.orgFind the appropriate section heading (UI, Languages, Tools, Workflows, etc.) and insert a new subheading.
Documentation is required — every section must include prose above the source block:
** Package Name
One sentence: what this package does and why it's here.
Link to upstream if non-obvious: [[https://github.com/user/repo][package-name]]
Requirements (env vars, external tools, first-run steps) if any.
| Key | Action |
|-----------+---------------|
| =SPC x y= | does the thing |
#+begin_src emacs-lisp
(use-package! package-name
:after some-dep ;; if needed
:config
(setq package-name-option value)) ;; comment only if non-obvious WHY
#+end_src
Conventions:
use-package! (doom's version), not plain use-package:defer t or :after when possible:config using (map! ...) or as a separate map! blockUse the doom-sync skill or run:
~/.config/emacs/bin/doom sync 2>&1
M-x doom/reload or restart Emacs