Skip to content

Built-in Emacs Lisp packages#

Warning This feature has been removed in favor of upstream change

emacs-ng distributed with more built-in Emacs Lisp packages than upstream GNU Emacs. For now, we have straight.el 08b0ecf and use-package a7422fb included.


We are kind of using straight.el as an alternative of package.el, providing ng-straight-bootstrap-at-startup, ng-bootstrap-straight (as equipment of package-enable-at-startup and package-initialize).


Emacs NG automatically bootstraps straight.el at startup if ng-straight-bootstrap-at-startup is set to t, the default value is nil

You must configure the built-in straight.el in the early init file, as the variable ng-straight-bootstrap-at-startup is read before loading the regular init file. There are some variables you may be interested in (some of them must be set before the bootstrap process, if they might affect how straight.el itself is loaded). You can find the details from this section of the straight.el's documentation.

To be compatible with upstream Emacs, you can place the following in your init-file:

(unless (fboundp 'ng-bootstrap-straight)
  (defvar bootstrap-version)
  (let ((bootstrap-file
         (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
        (bootstrap-version 5))
    (unless (file-exists-p bootstrap-file)
           'silent 'inhibit-cookies)
        (goto-char (point-max))
    (load bootstrap-file nil 'nomessage)))

For more detailed guide, please refer straight.el's


There are also discussions/efforts to include use-package into upstream. Until then, we temporally included it with emacs-ng.

Last update: March 28, 2023