GNU Hyperbole

 [image of the Head of a GNU]

GNU Hyperbole is co-maintained by the author Bob Weiner and Mats Lidell.

[NOTE: As of May 2016, GNU Hyperbole is once again under active development and testing for release this summer with full Emacs version 25 compatibility. When it is publicly available, there will be a notice here and it will be downloadable as a standard Emacs package. No current, working version is yet available for download.]

Mailing lists
User list for GNU Hyperbole (info and subscription, web archive).
List for bug reporting (info and subscription, web archive).


GNU Hyperbole is an open, efficient, programmable information management and hypertext system for GNU Emacs. It is intended for everyday work on any UNIX platform supported by Emacs. It works well with the versions of Emacs that support the following window systems: X, Mac OS X, and Windows.

Hyperbole allows hypertext buttons to be embedded within unstructured and structured files, mail messages and news articles. It offers intuitive mouse-based control of information display within multiple windows. It also provides point-and-click access to World-Wide Web URLs, Info manuals, ftp archives, etc.

Hyperbole consists of five parts:

  1. Info Management: an interactive, unstructured textual information management interface, including fast, flexible file and text finding commands. A powerful, hierarchical contact manager, the Rolo, which anyone can use is also included. It is easy to pick up and use since it introduces only a few new mechanisms and provides user-level facilities through a menu interface, which you control from the keyboard or the mouse; matching pairs of HTML tags, programming language functions and other structured text items may be selected with a single click or key press and then operated upon;
  2. Screen Control: the fastest, easiest-to-use window and frame control available for GNU Emacs. With just a few keystrokes, you can shift from increasing a window's height by 5 lines to moving a frame by 220 pixels or immediately moving it to a screen corner. Text in each window or frame may be enlarged or shrunk (zoomed) for easy viewing, plus many other features;
  3. The Koutliner: an advanced outliner with multi-level autonumbering, permanent ids attached to each outline node for use as hypertext link anchors, per node properties plus flexible view specifications that can be embedded within links or used interactively;
  4. Button Types: A set of hyper-button types which supply core hypertext and other behaviors. Buttons may be added to documents (explicit buttons) or recognized by context (implicit buttons). Buttons are accessed by clicking on them or referenced by name (global buttons), which can be activated regardless of what is on screen. Users can make simple changes to button types and those familiar with Emacs Lisp can quickly prototype and deliver new types with just a few lines of code;
  5. Programming Library: a set of programming library classes for system developers who want to integrate Hyperbole with another user interface or as a back-end to a distinct system. All of Hyperbole is written in Emacs Lisp for ease of modification. Hyperbole has been engineered for real-world usage and is well structured.

Hyperbole Buttons

A Hyperbole hypertext user works with buttons; he may create, modify, move or delete buttons. Each button performs a specific action, such as linking to a file or executing a shell command.

There are three categories of Hyperbole buttons:

  1. Explicit Buttons created by Hyperbole, accessible from within a single document;
  2. Global Buttons created by Hyperbole, accessible anywhere within a user's network of documents;
  3. Implicit Buttons buttons created and managed by other programs or embedded within the structure of a document, accessible from within a single document. Hyperbole recognizes implicit buttons by contextual patterns given in their type specifications.

Hyperbole buttons may be clicked upon with a mouse to activate them or to describe their actions. Thus, a user can always check how a button will act before activating it. Buttons may also be activated from a keyboard. (In fact, virtually all Hyperbole operations, including menu usage, may be performed from any standard terminal interface, so one can use it on distant machines that provide limited display access).

Hyperbole does not enforce any particular hypertext or information management model, but instead allows you to organize your information in large or small chunks as you see fit, organizing each bit as time allows. The Hyperbole Koutliner and Rolo tools organize textual hierarchies and may also contain links to external information sources.

Major Features

Some of Hyperbole's most important features include:

Typical Applications

Typical Hyperbole applications include:

Personal Information Management
Overlapping link paths provide a variety of views into an information space. A single key press activates buttons regardless of their types, making navigation easy.

A search facility locates buttons in context and permits quick selection.

Documentation Browsing
Embedding cross-references in a favorite documentation format.

Addition of a point-and-click interface to existing documentation.

Linkage of code and design documents. Jumping to the definition of an identifier from its use within code or its reference within documentation.

Capture of ideas and then quick reorganization with the Hyperbole Koutliner. Link to related ideas, eliminating the need to copy and paste information into a single place.
Help/Training Systems
Creation of tutorials with embedded buttons that show students how things work while explaining the concepts, e.g. an introduction to UNIX commands. This technique can be much more effective than descriptions alone.
Archive Managers
Supplementation of programs that manage archives from incoming information stream, having them add topic-based buttons that link to the archive holdings. Users can then search and create their own links to archive entries.

Registration Date: Thu 07 Aug 2003 07:52:35 AM CEST
License: GNU General Public License v3 or later
Development Status: 4 - Beta

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to There are also other ways to contact the FSF.

Please send comments on these web pages to, send other questions to

Copyright (C) 1998-2016 Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Last modified: 2016-06-28T12:32:12UTC