Org-mode Contributed Packages

Table of Contents

{Back to Worg's index}

This page lists the contributed packages to Org-mode, with links to available documentation. Most of these packages are located 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.

contrib/

docco side-by-side annotated code export to HTML
The docco tool (see http://jashkenas.github.com/docco/) generates HTML from JavaScript source code providing an attractive side-by-side display of source code and comments. This file (see contrib/scripts/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.com/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.
org-bookmark.el – support for links to Emacs bookmarks
Written by Tokuya Kameshima. Link to raw file.
org-bullets.el – Show bullets in org-mode as UTF-8 characters
Written by sabof 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-colview-xemacs.el – Column View in Org-mode, XEmacs-specific version
Written by Carsten Dominik <carsten at orgmode dot org> Link to raw file.
org-contacts.el – manage contacts
Written by Julien Danjou. 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.
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. Link to raw file.
org-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.
org-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-index.el – A personal index for org and beyond
Mark and find your favorite org-locations and other points of interest easily; create and update a lookup table of references and links. When searching, frequently used entries appear at the the top and entering some keywords narrows down to matching entries only; so the right one can be spotted easily. org-index.el is included in the contrib directory of Org.
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-jira.el – add a jira:ticket protocol to Org
Written by Jonathan Arkell. 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-mac-link.el – 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. 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.
org-man.el – support for links to manpages in Org-mode.
Written by Carsten Dominik. Link to raw file.
org-mew.el – Support for links to Mew messages from within Org-mode
Written by Tokuya Kameshima Link to raw file.
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. Link to raw file.

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. Link to raw file.
org-notify.el – notifications for Org-mode
Written by Peter Münster. Link to raw file.

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.

org-notmuch.el – support for links to notmuch messages
Written by Matthieu Lemerre. Link to raw file.
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-track.el – Keep current with Org-mode development: M-x org-track-update
Download org-latest.tar.gz, unpack it, generate autoloads file and compile sources using one simple command.
Written by Bastien Guerry, Eric S Fraga and Sebastian Rose. Link to raw file.
org-velocity.el – something like Notational Velocity for Org
Written by Paul M. Rodriguez. Link to raw file.
org-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.
org-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.

htmlize.el – convert buffer text and decorations to HTML
Written by Hrvoje Niksic. Link to raw file.
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 raw file.
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-julia.el – org-babel functions for julia code evaluation
Written by G. Jay Kerns, based on ob-R.el. 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-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-magit – basic support for magit links
Written by Yann Hodique.
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-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. Link to raw file.
org-export.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 org-export.el (ascii, html, latex, odt, publish) are currently located in the EXPERIMENTAL directory of the Org distribution. Link to tree. Part of org-mode core as ox.el since 8.0.
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. Link to raw file.
This package is part of the Org core.

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.

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-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. Link to raw file.
org2rem.el – Convert org appointments into reminders for remind
Written by Bastien Guerry and Sharad Pratap. Link to raw file.

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
  [[repofile:contrib/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))))

Documentation from the http://orgmode.org/worg/ website (either in its HTML format or in its Org format) is licensed under the GNU Free Documentation License version 1.3 or later. The code examples and css stylesheets are licensed under the GNU General Public License v3 or later.