A personal adaptive index for org.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A personal adaptive index for org.

org-index is a package for org-mode within emacs.

Read below for a description.

The current version is 5.11.1.

Visit http://2484.de/org-index.html for a Screencast.

Table of Contents

About this Package


Fast search for selected org-nodes and things outside.

org-index creates and updates an index table with keywords; each line either points to a heading in org, references a folder outside of org or carries an url or a snippet of text. When searching the index, the set of matching lines is updated with every keystroke; results are sorted by usage count and date, so that recently or frequently used entries appear first in the list of results.

Please note, that org-index uses org-id throughout and therefore adds an id-property to all nodes in the index.

In the addition to the index table, org-index introduces these supplemental concepts:

  • ‘References’ are decorated numbers (e.g. ‘R237’ or ‘–455–’); they are well suited to be used outside of org, e.g. in folder names, ticket systems or on printed documents.
  • ‘Working set’ (short: ws) is a small set of nodes for your daily work; it can be managed easily and traversed very fast. All related tasks are also available through the interactive function org-index-working-set, which see.

On first invocation org-index will assist you in creating the index table.

To start using your index, invoke the subcommand ‘add’ to create index entries and ‘occur’ to find them.


  • org-index can be installed with package.el
  • Invoke `org-index’; on first run it will assist in creating your index table.
  • Optionally invoke `M-x org-customize’, group ‘Org Index’, to tune its settings.

Further Information

  • Watch the screencast at http://2484.de/org-index.html.
  • See the documentation of `org-index’, which can also be read by invoking `org-index’ and typing ‘?’.



The complete lisp source


Helpful Ruby-Tasks for building


In subdir tests.

ert-tests for org-index
Windows command file to start a specifically prepared emacs for the tests
Customizations for the tests


In subdir screencast.

These files have been used to produce the screencast on http://2484.de/org-index.html:

Windows command file to start a specifically prepared emacs for the screencast
The lisp code used to play the screencast
Customizations for screencast
Internal Notes about the screencast

Custom merge-driver for git

In subdir merge-driver.

Simple ruby script to aid during git merges of your index table; see the comments within the file for instructions

Making a new Release

Testing and checking

  • ert
  • (byte-compile-file “org-index.el”)
  • elint-current-buffer
  • checkdoc
  • package-lint-current-buffer ;; ignore messages about oidx-prefix


  • Update Version number in org-index.el
  • Update Change Log in org-index.el
  • Check and Update Commentary in org-index.el
  • Run rake to copy those pieces of information into README.org and ChangeLog.org
  • git tag -a -m x.y.z x.y.z ; git push –tags

Latest Change Log

See ChangeLog.org for older notes.


  • Implemented do-not-clock commands and behaviour in working-set
  • Fixes


  • Pressing shift prevents clocking into working set
  • Occur shows ‘(more lines omitted)’ if appropriate
  • replaced (org-at-table-p) with (org-match-line org-table-line-regexp) throughout for preformance reasons
  • Offer direct clock-in from result-buffer of occur
  • Various fixes


  • Renamed ‘focus’ to ‘working-set’, changed commands and help texts accordingly.
  • Added special buffer to manage the working-set
  • Function org-index-working-set may now be invoked directly
  • Simplified working-set circle
  • Introduced org-index-occur-columns to limit matches during occur to specified number of leading columns; this gives better matches
  • Removed days option from occur command
  • Fixed and Optimized overlay-handling in occur for better performance and overall stability
  • Limited the number of lines to display in occur for better performance, see ‘org-index-occur-max-lines’


  • Timeout in prompt for additional focus-command
  • Popup to show current node during after focus change
  • Various changes to become ready for melpa
  • Refactored org-index–do-occur (now named oidx–do-occur), creating various new functions
  • Restructured source code, grouping related functions together; groups are separated as usual by ^L
  • Introduced the secondary prefix ‘oidx–’ and renamed everything starting with ‘org-index–’. Functions and variables starting with ‘org-index-’ are left untouched.
  • Renamed functions org-index-dispatch to org-index, org-index to oidx–do and variable org-index-dispatch-key to org-index-key