Org-mode Contributed Packages
This page lists some contributed packages to Org-mode, with links to available documentation.
Most of these packages are located in the org-contrib repository.
Some used to live in the contrib directory of the Org distribution. Some have made it into the core by now, but we keep the documentation here because it is more extensive than what is available in the manual. If no documentation link is present, see the file header of the package – it will hopefully have some documentation.
org-contrib
- docco side-by-side annotated code export to HTML
- The
docco
tool (see http://ashkenas.com/docco/) generates HTML from JavaScript source code providing an attractive side-by-side display of source code and comments. This file (see org-docco.org) generates the same type of output from Org-mode documents with code embedded in code blocks. For example org-docco output see http://eschulte.github.io/org-docco/org-docco.html. - org-annotate-file.el – annotate a file with org syntax
- The annotation is in a separate file, with links back to the annotated file. Written by Philip Jackson. Link to raw file.
- org-bibtex-extras.el – extras for working with org-bibtex entries
- Written by Eric Schulte. Link to raw file.
- ol-bookmark.el/ – support for links to Emacs bookmarks
- Written by Tokuya Kameshima. Link to raw file.
- org-checklist.el – org functions for checklist handling
- Reset checklists in repeating entries. Written by James TD Smith. Link to raw file.
- org-choose.el – decision management for org-mode
- Org-choose helps documenting a decision-making process by using TODO keywords for different degrees of chosenness, and by automatically keeping a set of alternatives in a consistent state. Writen by Tom Breton. Link to raw file.
- org-collector.el – collect properties into tables
- Collect and process properties into a table. Written by Eric Schulte. Link to raw file.
- org-depend.el – TODO dependencies for Org-mode
- Make TODO state changes in one entry trigger changes in another, or be blocked by the state of another entry. Also, easily create chains of TODO items with exactly one active item at any time. Written by Carsten Dominik. Link to raw file.
- ol-elisp-symbol.el – Org links to emacs-lisp symbols.
- This can create annotated links that exactly point to the definition location of a variable of function. Written by Bastien Guerry. Link to raw file.
- org-expiry.el – expiry mechanism for Org entries
- Written by Bastien Guerry. Link to raw file.
- ol-git-link.el – link to files under git version control
- This package adds new link types to link to specific versions of a file, which will be checked out when the link is activated. Written by Reimar Finken. Link to raw file.
- org-interactive-query.el – interactive modification of tags queries
- After running a general query in Org, this package allows to narrow down the results by adding more tags or keywords. Written by Christopher League. Link to raw file.
- org-invoice.el – help manage client invoices
- Written by Peter Jones. Link to raw file.
- org-learn.el – Implements SuperMemo's incremental learning algorithm
- Written by John Wiegley. Link to raw file.
- org-mac-iCal.el – import OS X iCal.app events into Emacs diary
- Written by Christopher Suckling. Link to raw file.
- org-mairix.el – hook mairix search into Org for different MUAs
- Written by Georg C. F. Greve. Link to raw file.
- ol-mew.el – Support for links to Mew messages from within Org-mode
- Written by Tokuya Kameshima Link to raw file.
- org-notify.el – notifications for Org-mode
Written by Peter Münster. Link to ELPA page.
This package looks for todo-entries with deadline in your agenda files. For such entries, you can get configurable reminders: notification-pop-ups, emails, noise, and so on. You can define various notification-types, each one with its own actions and timings. Each todo-entry can have its own notification-type, defined by a property. For some notification actions (pop-ups) it's possible to mark something "done", or to shift the deadline just by one mouse-click.
- ol-notmuch.el – support for links to notmuch messages
- Written by Matthieu Lemerre. Link to repository.
- org-panel.el – simplified and display-aided access to some Org commands
- Written by Lennart Borgman. Link to raw file.
- org-registry.el – a registry for Org links
- Find out from where links point to a given file or location. Written by Bastien Guerry. Link to raw file.
- org-screen.el – visit screen sessions through Org-mode links
- Written Andrew Hyatt. Link to raw file.
- org-screenshot.el – Take and manage screenshots in Org-mode files
- Written by Max Mikhanosha Link to raw file.
- org-secretary.el – Team management with org-mode
- Written by Juan Reyero. Link to raw file.
- org-sudoku.el – Create and solve SUDOKU games in Org tables
- Written by Carsten Dominik. Link to raw file. ::
- orgtbl-sqlinsert.el – convert Org-mode tables to SQL insertions
- Written by Jason Riedy. Link to raw file.
- org-toc.el – table of contents in a separate buffer
- With fast access to sections and easy visibility cycling. Written by Bastien Guerry. Link to raw file.
- org-velocity.el – something like Notational Velocity for Org
- Written by Paul M. Rodriguez. Link to Git repository.
- ol-vm.el – Support for links to VM messages from within Org-mode
- Written by Carsten Dominik Link to raw file.
- org-wikinodes.el – CamelCase wiki-like links to nodes
- Written by Carsten Dominik. Link to raw file.
- ol-wl.el – Support for links to Wanderlust messages from within Org-mode
- Written by Tokuya Kameshima and David Maus Link to raw file.
Exporter
See Exporters.
- ox-bibtex.el – Export bibtex fragments
- Formerly known as org-exp-bibtex.el. Written by Taru Karttunen. Link to raw file.
- ox-confluence.el – Confluence Wiki Back-End for Org Export Engine
- Written by Sébastien Delafond. Link to raw file.
- ox-deck.el – deck.js Presentation Back-End for Org Export Engine
- Written by Rick Frankel. Link to raw file.
- ox-freemind.el – Freemind Mindmap Back-End for Org Export Engine
- Written by Jambunathan K. Link to raw file.
- ox-groff.el – Groff Back-End for Org Export Engine
- Written by Nicolas Goaziou and Luis R Anaya. Link to raw file.
- ox-koma-letter.el – An exporter to Write KOMA
- Written by Nicolas Goaziou. Scrlttr2 letters in Org.
- ox-rss.el – RSS 2.0 Back-End for Org Export Engine
- Written by Bastien Guerry. Link to git repo.
- ox-s5.el – S5 Presentation Back-End for Org Export Engine
- Written by Rick Frankel. Link to raw file.
- ox-taskjuggler.el – TaskJuggler Back-End for Org Export Engine
- See Tutorial. Written by Christian Egli and Nicolas Goaziou. Link to raw file.
- org-static-mathjax.el – Muse-like tags in Org-mode
- Written by Jan Böker. Link to raw file.
Babel
- ob-eukleides.el – Org-babel functions for eukleides evaluation
- Written by Luis Anaya Link to raw file.
- ob-fomus.el – Org-babel functions for fomus evaluation
- Written by Torsten Anders Link to raw file.
- ob-mathomatic.el – Org-babel functions for mathomatic evaluation
- Written by Eric S Fraga and Eric Schulte and Luis Anaya (Mathomatic) Link to raw file.
- ob-oz.el – Org-babel functions for Oz evaluation
- Written by Torsten Anders and Eric Schulte Link to raw file.
- ob-tcl.el – Org-babel functions for tcl evaluation
- Written by Dan Davison and Eric Schulte and Luis Anaya Link to raw file.
External
- org-drill.el – flashcards and spaced repetition for org-mode
- Items in org-mode outlines can be used as flashcards. The user can conduct interactive "drill sessions" to memorize the material in a set of flashcards; cards are scheduled for review using the spaced repetition algorithms popularised by SuperMemo and similar programs. Numerous flashcard types are defined, and the user can add their own card types using elisp. Written by Paul Sexton.
- org-auto-shorten-url.el
- By Neil Smithline. Automatically shorten URLs in `org-mode' using Bit.ly or a link shortener of your choice. See the comment in the code to make sure you load the needed dependancies.
- Org-bom – Bill of Materials
- This add-on by Christian Fortin helps you build collections from your Org buffer and gather data in tables. Every item identified as a component will be totalized in a temporary database, from which you can extract useful information, such as the number of item per section. You should find here all you would expect from a BOM of a professionnal CAD software. Link to raw file
- org-google-weather.el – weather forecast in the agenda buffer
- Allow %%(org-google-weather "New York") sexps for displaying weather forecast in the agenda buffer. Written by Julien Danjou.
- org-import-icalendar.el – import iCal events in an Org buffer
- Written by Vagn Johansen.
- org-mac-link – grab links from various mac applications
- Grab the current link or selection from an open mac application and insert it as a hyperlink at point in an org-mode document. Written by Anthony Lander, John Wiegley and Christopher Suckling. This file replaces the earlier org-mac-message.el and org-mac-link-grabber.el. project page.
- orgit – support for magit links
- Written by Jonas Bernoulli.
- org-occur-goto.el – search open org buffers with an occur interface
- Usage: M-x oog, then start typing. Select from the occur matches with up/down/pgup/pgdown and press enter (you can navigate the history with M-p/M-n). The search string must be at least 3 characters long (by default).
- org-search-goto.el – Use search to go to locations in your org buffers
- Usage: M-x osg, then start typing. Select from the matches with up/down/pgup/pgdown and press enter to go that location (you can navigate the history with M-p/M-n). If the search string contains several strings separated by spaces then these substrings can appear in any order in the results. See the announcement on the list.
- org-search-goto-ml.el – Use multiline search to go to locations in your org buffers
- Usage: M-x osg, then start typing. Select from the matches with up/down/pgup/pgdown and press enter to go that location (you can navigate the history with M-p/M-n). If the search string contains several strings separated by spaces then these substrings can appear in any order in the results. The search handles an org heading and its text as one block, so the substrings can match in any part of an org entry. If the heading is not matching, only the body, the heading is added to the results anyway to indicated which entry is matched.
- org-superstar.el – Prettify headings and plain lists in Org mode
- Written by D. Williams. Partially based on org-bullets, prettifying headline bullets with UTF-8 characters, this package also supports special headline bullets for TODO keywords, item bullets for plain lists and further options for handling leading stars, such as the ability to hide leading stars in the same way Org hides emphasis markers. Link to the github project page.
- org-link-minor-mode.el – Enables Org links in non org-mode buffers
- Written by Sean O'Halpin. Link to github file and the github project page.
- org-impress-js.el – impress.js export for Org mode
- Written by kinjo. Link to the github project page.
- org-weights.el – display the "weight" of a headline, with the # of sub headlines
- Written by François Pinard. Link to the github project page.
Moved to core
- Org-babel – execution of source code blocks
- The embedded code evaluation and literate programming subsystem
written by Eric Schulte and Dan Davison
Org Babel is now part of the Org core and documented in the manual. See also Babel for contrib files regarding org-babel. - org-element.el – Parser and applications for Org syntax
- Written by Nicolas Goaziou. Link to raw file.
- org-exp-blocks.el – pre-process blocks when exporting org files
- Org-export-blocks allows for the pre-processing or blocks in
org-mode files to create images, or specially formatted HTML or
LaTeX output. Written by Eric Schulte.
Org-exp-blocks is now part of the Org core as ob-exp.el. - ox.el – Generic Export Engine For Org
- Generic export engine for Org built on Org Elements.
Written by Nicolas Goaziou.
Link to raw file.
Back-ends for ox.el (ascii, html, latex, odt, publish) were previously located in the EXPERIMENTAL directory of the Org distribution. They are a part of org-mode core as ox.el and ox-∗.el since Org 8.0. - org-eww.el – Support link/copy/paste from eww to Org-mode
- Makes it possible to store an org-link to the url of an eww-buffer. The second feature is to copy a region from eww keeping the links. Written by Marco Wahl. Link to raw file.
- org-feed.el – add RSS feed items to Org files
- Read RSS feeds from the web, add new items to Org files, and trigger
actions when items have changed.
Written by Carsten Dominik.
Link to raw file.
This module is part of the Org core documented in the manual. - org-protocol.el – Trigger actions through URLs
- org-protocol intercepts calls from emacsclient to trigger custom
actions without external dependencies. Only one protocol has to be
configured with your external applications or the operating
system.
This package is part of the Org core and also documented in the manual. - org-R.el – Computing and data visualisation in Org-mode using R
- Written by Dan Davison. Link to legacy raw file. This modules has been superseded by the Org Babel functionality, which is part of the Org core and documented in the manual.
- org-special-blocks.el – turn blocks into LaTeX envs and HTML divs
- Written by Chris Gray.
This package is part of the Org core. - ol-man.el – support for links to manpages in Org-mode.
- Written by Carsten Dominik. Link to raw file.
Moved out of Org repo
- htmlize.el – convert buffer text and decorations to HTML
- Written by Hrvoje Niksic.
Repo. - org-bullets.el – Show bullets in org-mode as UTF-8 characters
- Written by sabof
Repo. - org-jira.el – add a jira:ticket protocol to Org
- Written by Jonathan Arkell, later maintained by Bao Haojun and
then Matthew Carter.
Repo. - org-mime.el – org html export for text/html MIME emails
org-mime
can be used to send HTML email using Org-mode HTML export.This approximates a WYSiWYG HTML mail editor from within Emacs, and can be useful for sending tables, fontified source code, and inline images in email. Written by Eric Schulte, maintained by Chen Bin. Repo.
- org-contacts.el – manage contacts
- Managing contacts information, recording, searching etc in Org mode. As contacts database backend for mu4e etc. Written by Julien Danjou, now maintained by stardiviner. Link to project repo page.
Obsolete
- org-annotation-helper.el – managing browser bookmarks
- Org-annotation-helper allows to create Org-mode links and annotations while working in a browser, by simply clicking a bookmarklet. Written by Bastien Guerry and Daniel M German. Link to legacy raw file. This module has been superseded by org-protocol.el, part of the Org core, and documented in the manual.
- HTML presentations from an Org file
Several possibilities here:
Note: These were all written for the old exporter, and will most likely not work with the new export framework.
- org-S5 from Eric Schulte
- org-html-slideshow from Stuart Sierra
- org-html5presentation.el from kinjo
For use with the new exporter, ox-s5.el (link to raw file) and ox-deck.el (link to raw file), both by Rick Frankel, are included in the contrib directory. The latest source and documentation for both are at https://github.com/cybercode/org-slides.
- org-browser-url.el – bookmark from a browser into org links
- Written by Ross Patterson. Link to legacy raw file. This module has been superseded by org-protocol.el, part of the Org core, and documented in the manual.
- org-colview-xemacs.el – Column View in Org-mode, XEmacs-specific version
- Written by Carsten Dominik <carsten at orgmode dot org> Removed in this commit.
- org-eval.el – show evaluation result of code
- The
<lisp>
tag, adapted from Emacs Wiki and Emacs Muse, allows text to be included in a document that is the result of evaluating some code. Other scripting languages like perl can be supported with this package as well. Written by Carsten Dominik. Link to raw file.
This modules has been superseded by the Org Babel functionality, which is part of the Org core and documented in the manual. - org-eval-light.el – display result of evaluating code in various languages (light)
- Org-eval-light allows the execution of source code embedded in an
org-mode file. The results of the execution are placed into the
org-mode file. It is a reworking of Carsten's org-eval with the
goals of a more uniform syntax, safer default execution rules, and
increased ease of execution.
Written by Eric Schulte.
Link to raw file.
This modules has been superseded by the Org Babel functionality, which is part of the Org core and documented in the manual. - org-export-generic.el – Export org files to user-defined output formats
- Org-export-generic provides the ability to create an org file and then export it to any given format you desire. This is done by defining a set of variables that include prefixes and suffixes for each line type (E.G., header, list item, etc …) and then running org-export-generic on the file to process it. Written by Wes Hardaker.
- org-mtags.el – support for some Muse-like tags in Org-mode
- This package allows you to write
<example>
and<src>
and other syntax copied from Emacs Muse, right inside an Org file. The goal here is to make it easy to publish the same file using either org-publish or Muse. Written by Carsten Dominik. Removed in this commit. - org2rem.el – Convert org appointments into reminders for remind
- Written by Bastien Guerry and Sharad Pratap.
Maintenance
Keeping this list maintained is quite a challenge. Here are some elisp
functions to help with it. They require cl-lib (Emacs 24.3) and org-mode
with contrib/
(git).
(require 'cl-lib) (defun worg-parse-contrib-index.org (&optional buffer) "Return an alist of elisp file names. The files are either documented, not-in-contrib, or undocumented. TODO: Do not check files in sections except for \"contrib/\"." (with-current-buffer (or buffer "index.org") (let* ((items (cl-remove-duplicates (cl-reduce #'(lambda (a b) (append a b)) (org-element-map (org-element-parse-buffer) 'plain-list #'(lambda (e) (delq nil (mapcar (lambda (item) (let ((title (nth 5 item))) (when (and (stringp title) (string-match "/\\([^/]+\\.el\\)/" title)) (match-string 1 title)))) (org-element-property :structure e)))))))) (org-contrib-files (directory-files (expand-file-name "../contrib/lisp/" (file-name-directory (find-lisp-object-file-name #'org-mode #'org-mode))) nil "\\.el\\'" 'nosort))) (list (cons 'documented (cl-union items org-contrib-files)) (cons 'not-in-contrib (cl-set-difference items org-contrib-files :test #'string=)) (cons 'undocumented (cl-set-difference org-contrib-files items :test #'string=)))))) (require 'lisp-mnt) (defun worg-generate-missing-contrib-index (&optional index-buffer) "Return a string containing auto formated entries for undocumented files." (let* ((parsed (worg-parse-contrib-index.org index-buffer)) (missing (sort (cdr (assq 'undocumented parsed)) #'(lambda (a b) (not (string< a b))))) (contrib-path (expand-file-name "../contrib/lisp/" (file-name-directory (find-lisp-object-file-name #'org-mode #'org-mode)))) misc babel ox) (dolist (i missing) (push (ignore-errors (lm-with-file (expand-file-name i contrib-path) (format "- /%s/ -- %s :: Written by %s [[contribfile:lisp/%s][Link to raw file.]]\n\n" i (lm-summary) (mapconcat #'(lambda (a) (concat "/" (car a) "/")) (lm-authors) " and ") i))) (cond ((string-prefix-p "ox-" i) ox) ((string-prefix-p "ob-" i) babel) (t misc)))) (concat (apply #'concat misc) "* Export\n" (apply #'concat ox) "* Babel\n" (apply #'concat babel))))