Org-mode is an editing and organizing mode for notes, planning, and authoring
in the free software text editor Emacs. It is characterized by a flexible and
versatile system which adapts to various workflows, simple and complex, and by an
extensive and extensible function, which can integrate with a large variety of
external systems and resources. Org-mode was created by Carsten Dominik
in 2003, originally to organize his life and work as a scientist, and since the
first release numerous users and developers helped him to improve this
free software package, which has grown to over 140,000 lines of code. Org-mode
is part of Emacs as a major mode — although it is also released separately,
and newer versions of Org-mode than the ones shipped with Emacs are often
available. Bastien Guerry is the current maintainer, in cooperation with an
active development community. System
As briefly described by Org system author Carsten Dominik, "Org-mode does
outlining, note-taking, hyperlinks, spreadsheets, TODO lists, project
planning, GTD, HTML and LaTeX authoring, all with plain text files in Emacs."
All functionality is optional, to adapt to different use cases with diverse
degrees of complexity. From the Org-mode home page, on simplicity and depth: "At
its core, Org-mode is a simple outliner for note-taking and list management. You
can learn the basics for using it in five minutes. This may be all you need,
and Org-mode will not impose more complex features on you. [...] The full
feature set is both broad and deep, easy to access, but unobtrusive."
Most aspects of Org-mode's behavior are customizable, in the standard Emacs
manner, either by setting variables directly in the .emacs init file, or by
using the more user-friendly Customize interface.
The Org system is based on plain text files with a simple markup. A full
functionality implies the use of Emacs — available for most operating systems —
or alternatively the use of Vim plugins or Org mobile apps for subsets of the
functionality. However, Org's plain text files are directly readable and flexibly
editable like any text document and by any text editor, searchable with common
tools such as grep, etc., and manipulable by most programming
languages, which results in the maximum available portability and integration
between different computers, mobile devices, and operating systems. Emacs
and other text editors can be configured to use UTF-8 for international
compatibility. Plain text, as a universal open format standard, is also
considered by digital archives a high confidence format for long-term data
preservation. The system includes a lightweight markup
language designed to be easy to write and read in plain text files, to be
exportable, and also to enable functionality, for text formatting such
as *bold*, , =code=, ~verbatim~, _underlined_, +strike-through+,
:tags/drawers:, [[links]], | tables |, - lists, 1. ordered lists, - [X]
checklists/tasks, * headlines/projects...
In addition to the Org markup, embedded LaTeX markup can also be used to
represent mathematical symbols and formulae.
Functionality Org-mode, also known as the Emacs Org
mode, has specific support for a number of uses, such as maintaining to-do
lists, project planning, and writing web pages. For example, to-do items can
optionally be given priorities and deadlines, subdivided into simple steps,
and given tags and properties. An agenda for the items to be done this week or
day can then be automatically generated by Org-mode.
Other examples of functionality include: Plain text hierarchical documents or
outlines, which for instance can have the same function and be exported as
mind maps in tree form. There is optional indentation for a cleaner
outline view. Structure editing, with a comprehensive
set of functions. For example, list items, including subitems, can be
quickly moved up/down in a list — to order by priority, etc. — using the key
bindings M-up and M-down. If the list is ordered, renumbering is automatic. Also,
C-c ^ can automatically sort entries in the active region in a number of ways;
it also sorts tables. Capture, a method used to quickly note
down ideas, thoughts or links, and then file them away, edit them or categorize
them later. Or, for example, when distractions appear during work hours,
they can be promptly noted down to do them later at a suitable time,
increasing concentration and efficiency at work. Templates are used for capture
items, context, and target locations. E.g., among the various target types
there are file, heading, or a date tree in a file, that is a calendar in the
form of an outline of years, months and days. There are many possible ways to
use Org-mode, and for instance alternatives or complements to agenda
views can be options such as the aforementioned date trees in one file,
or simple calendar files compatible with any mobile text editor. Any of these
options can include schedules and references to other files. Also, a
simpler alternative or complement to Org's capture method can be Emacs'
custom find-file dedicated keys, such as , to directly open most used .org files
for quick notes. Search options, in addition to those in
Emacs. E.g., with property searches like C-c / p, Org files can be used as
searchable databases. Org files as interconnected pages of a
personal wiki, with external links like [[file:Topic.org][topic]] or, using link
abbreviations for absolute paths, [[wiki:Topic][topic]]. Other methods for
quick file and buffer navigation are Emacs' Dired, Buffer Menu, Speedbar, and
Sr-Speedbar. Also, Org-velocity and Emacs' Deft are similar to Notational
Velocity. Org-mode can be used as a distributed
issue tracker, by storing .org files in a distributed revision control system
such as Git. Developers of the Org-babel extension to Org-mode used Org-mode in
this way to track bugs and feature requests.
Add-on packages, contributed by different developers in a wide variety
from, for example, generic exporters to any user-defined markup format such as
Wikipedia's markup, to flashcard learning systems implementing
SuperMemo's algorithms. And, for instance: tree visibility
cycling, quick table and spreadsheet editing, 2D and 3D information graphs,
habit tracking, views, work time clocking, effort estimates, attachments,
archiving, appointment reminders, automatic web publishing, customizable
hook variables, etc. There is extensive functionality related
to integration with other systems. Integration
Org-mode can integrate with: RSS feeds. Org-mode can add and change
entries based on information found in RSS and Atom feeds.
Non-Org text files, using on them the Org-mode structure, list, table, and
link editing via Org minor modes. Calfw, a calendar table view in Emacs,
using calfw-org for the Org agenda. Calfw also displays iCalendar.
Emacs' BBDB to link to contact details for people. An alternative is
org-contacts. Emacs email and news clients such as
Gnus, VM and Wanderlust, to link to emails or newsgroup messages. Also,
links like mailto:... can open any external default email application, such
as Mozilla Thunderbird. Outlook, using org-outlook to create
tasks from Outlook items, and open Outlook links in Org-mode.
Web browsers like Firefox, to link to URLs:
[[http:example.com][description]]. Bare URLs like http:example.com are also
enabled as links by default. Any files, via absolute or relative
hyperlinks, integrating with Emacs and default applications. E.g., a bare
file+sys:anyfile.pdf is an active file link.
Images, such as [[image.jpg]], which can be linked and exported. Images can
also be shown graphically integrated with the Org text on Emacs, using
org-toggle-inline-images, org-startup-with-inline-images and, new
in Org 8, org-image-actual-width. Mobile phones and tablets, by
synchronizing Org files, and using one or several of the available mobile
integrations for Android, iOS, and other platforms:
GNU Emacs for Android, including Org-mode. Initial version, most Ctrl,
etc. key bindings work with Hacker's Keyboard app, or a hardware keyboard and
External Keyboard Helper Pro app. Customizable with the emacs/.emacs init
file. A large display is recommended. Emacs with Org-mode running on a remote
server or VPS, connecting to it via a mobile SSH client such as Terminal IDE
for Android, or iSSH for iPhone and iPad.
Emacs for Maemo including Org-mode, and other Emacs ports.
Org mobile apps:MobileOrg for iOS. MobileOrg for Android.
MobileOrgNG for Android. Emacs evernote mode, to refer and edit
Evernote notes directly from Emacs. There is also
org-post-subtree-to-evernote. Org-toodledo, which synchronizes tasks
bi-directionally between Org-mode and over fifty apps via Toodledo's web app
and open API. Any mobile text editor for plain text
files, such as Jota Text Editor for Android or Nebulous Notes for iPhone and
iPad, or Simplenote sync apps such as mNote for Android or Simplenote for
iPhone and iPad. Vim text editor, which has plugins with
subsets of the Emacs Org-mode functionality:
VimOrganizer - An Emacs Org-mode clone for Vim.
vim-orgmode - Text outlining and task management for Vim based on Emacs
Org-mode. VOoM - Outliner including an Org markup
mode. vxfold.vim - Fold cycling similar to
Emacs Org-mode. Another alternative is to use emulation
layers such as Viper or Evil for Vi/Vim key bindings in Emacs.
Over forty programming languages, such as C, C++, Java, JavaScript, Perl,
Python, Ruby, R, SQL, etc. There is initial support for PHP using ob-php.
The languages can be executed inside Org documents, and can access and modify
tables in the document. It also integrates with iESS buffers, allowing
for persistent sessions. Blocks of program code and explanatory text can be
woven and tangled in a literate programming style.
GitHub code repository, which supports Org markup for text files, and its
conversion to HTML for web rendering. JIRA issue tracker, integrated using
org-jira. Sublime Text editor, with Org syntax and
features using its orgmode plugin. Trello project management system, based
on Kanban, synchronized using org-trello.
Memacs modules are able to integrate metadata from a number of external data
sources into local Org-mode files: Emails, Usenet postings, text messages,
RSS feeds, revision control commits, files containing ISO date and time
format strings, photographs, and data stored in CSV or XML file format.
Org-sync is under development to synchronize with online services such as
bugtrackers and to-do managers. There are planned backends for Bugzilla,
GitHub, Redmine, Bitbucket, among others.
Import tools: Databases such as MySQL can generally
export tab or whitespace separated text files, importable into Org-mode as
tables using M-x org-table-import. Pandoc can convert documents in the
markup formats Markdown, reStructuredText, Textile, HTML,
DocBook, BBCode and LaTeX, to Emacs Org-mode.
There are also tools or scripts to import from WorkFlowy, Remember the
Milk, Palm ToDo, Remind, OmniFocus, TaskPaper, OpenOffice ODT, iCalendar.
Export options: Org-mode can export documents to ASCII,
Latin-1, UTF-8, HTML, LaTeX, Beamer, PDF, DocBook, OpenDocument Text,
TaskJuggler, FreeMind, XOXO, and iCalendar. New in Org 8: Markdown,
Texinfo, Man. Tables are exportable to CSV, HTML,
LaTeX, Texinfo, TSV, generic format. Agenda views can be exported as plain
text, HTML, PostScript, PDF, and iCalendar.
Tangled source code and/or its evaluation results can also be exported
Some of the integrations above require third-party Org-mode extensions, all of
which are free software. See also
Lightweight markup language Comparison of notetaking software
Comparison of document markup languages List of personal information managers
Outliner External links
Org mode official site, in English, French, and Japanese
List of Org-mode text and video tutorials on the Org-mode wiki, Worg
EmacsWiki: Org Mode Emacs-orgmode mailing list - General
discussions on Org-mode development, bug reports and use issues
Org-mode Questions, Stack Overflow References
= Books = Dominik, Carsten. The Org Mode 7
Reference Manual: Organize your life with GNU Emacs. With contributions by
David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, Eric Schulte, and
Thomas Dye. UK: Network Theory. p. 282. ISBN 978-1-906966-08-9.
= Journal articles = Schulte, Eric; Davison, Dan; Dye,
Thomas; Dominik, Carsten. "A Multi-Language Computing Environment for
Literate Programming and Reproducible Research". Journal of Statistical
Software 46: 1–24. ISSN 1548-7660. Schulte, E.; Davison, D.. "Active
Documents with Org-Mode". Computing in Science Engineering 13: 66–73. ISSN
1521-9615.