A Brief Summary of Leo

“Word outlines are very useful. But Leo makes Word look like a clunky toy.”—Joe Orr

Leo is a fundamentally different way of using and organizing data, programs and scripts. Leo has been under active development for 20+ years with an active group of developers and users.

Leo is:

  • A fully-featured IDE, with many features inspired by Emacs.
  • An outliner. Everything in Leo is an outline.
  • A data manager, data manager and personal information manager.
  • A powerful scripting environment.
  • A tool for organizing and studying computer code.
  • Extensible via a simple plugin architecture.
  • A tool that plays well with IPython, Vim and Emacs.
  • Written in 100% pure Python

Leo’s unique features

Leo completely integrates Python scripting and outlines. Simulating the following features in Vim, Emacs or Eclipse is possible, just as it is possible to simulate Python in assembly language…

  • All commands and scripts have easy access to outline structure via a simple Python API.
    For example, p.b is the body text of the selected outline node.
    Scripts have full access to all of Leo’s sources.
  • Clones create multiple views of an outline.
    Leo’s underlying data is a Directed Acyclic Graphs.
    As a result, Leo organizes data in completely new ways.
  • Scripts and programs can be composed from outlines using outline-oriented directives.
  • Importers convert flat text into outlines.
  • @test and @suite scripts create unit tests automatically.
  • @button scripts apply scripts to outline data.

These features combine to create a Leonine way of programming and organizing. You won’t learn all about Leo in a day or two. Leo’s tutorial explains the basic features. You can learn more advanced features later. Please ask for help immediately if you get stuck.