Navigation Menu

Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



78 Commits

Repository files navigation


This package (i.e org-auto-tangle) is a very simple emacs package that allows you to automatically tangle org files on save. This is done by adding the option #+auto_tangle: t in your org file.

The tangling process happens asynchronously so it will not block your emacs session.


Simply require the package in you emacs init and hook it into org-mode.

(require 'org-auto-tangle)

(add-hook 'org-mode-hook 'org-auto-tangle-mode)

or you can use use-package

(use-package org-auto-tangle
  :load-path "site-lisp/org-auto-tangle/"    ;; this line is necessary only if you cloned the repo in your site-lisp directory 
  :defer t
  :hook (org-mode . org-auto-tangle-mode))

If the minor mode is on, it will try to automatically tangle your org files if they contain a non nil value for the #+auto_tangle: option.

You can configure auto-tangle as the default behavior for all org buffers by setting the org-auto-tangle-default variable to t. In this case, you can disable it for some buffers by setting the #+auto_tangle: option to nil.

The #+auto_tangle: option may also be used to specify variables that should be preserved in the asynchronous tangling process. For example, if you have installed a newer version of org-mode or additional Babel processors, using

#+auto_tangle: vars:load-path

will be sure that they are available during tangling. The vars option takes a colon-separated list so multiple variables may be specified

#+auto_tangle: vars:calendar-longitude:calendar-latitude:calendar-location-name

It is also possible to disable auto-tangling by adding the nil option to the line without removing any vars list.

#+auto_tangle: vars:load-path nil

Babel Auto Tangle Safelist

Add a list of files to the safelist to autotangle with noweb evaluation

(setq org-auto-tangle-babel-safelist '(


This package (i.e. org-auto-tangle) is licensed under the the 2-Clause BSD License.