Leo is an outline-oriented text editor, development environment and personal information manager written in Python. It provides a distinctive approach to organising source code, documents, notes and other information within hierarchical outlines.
Unlike conventional editors that treat files as the principal unit of organisation, Leo uses nodes containing headlines and body text. These nodes can be rearranged, expanded and collapsed, allowing users to approach complex material at different levels of detail.
Its most distinctive capability is cloning. A cloned node can appear in several places within an outline while referring to the same underlying content. Editing one occurrence automatically updates the others.
Leo is particularly useful for literate programming, organising large software projects, maintaining technical documentation and combining notes with executable Python scripts.
This is free and open source software.
Key Features
- Hierarchical outliner with commands for creating, moving, promoting, demoting and organising nodes.
- Cloned nodes allow the same content to appear in multiple outline locations without duplication.
- Syntax highlighting and editing support for numerous programming languages.
- External file directives including @file, @auto and @clean connect outlines with ordinary source files.
- Python scripting interface provides programmatic access to outlines and editor commands.
- @button and @command directives make scripts accessible directly from outlines.
- Extensible plugin architecture adds commands, views and specialised functionality.
- Search and navigation facilities help locate information across large outlines.
- Personal information management features support notes, research and project organisation.
- Customisable commands, keyboard shortcuts, settings and interface themes.
- Support for creating documents and maintaining technical writing alongside source code.
- Integration with external tools and workflows, including Jupyter notebooks.
- WebSocket server facilities enable integration with external applications.
- Cross-platform support – runs on Linux, macOS, and Windows.
Website: leo-editor.github.io/leo-editor
Support:
Developer: Edward K. Ream and contributors
License: MIT License

Learn Python with our recommended free books and free tutorials.
Related Software
| Python Integrated Development Environments | |
|---|---|
| PyCharm | Full-featured IDE. Two editions are available, one is open source software |
| JupyterLab | Interactive environment for notebooks, coding and data analysis |
| Spyder | Python development environment providing MATLAB-like features |
| eric | Full featured Python editor and IDE, written in Python |
| Thonny | Tk-based IDE designed for novice programmers |
| PyDev | Python plugin for Eclipse |
| Leo | PIM, IDE and outliner |
| Pyzo | Interactive editor for scientific Python |
| PTK | Interactive environment for Python |
| IDLE | Python’s Integrated Development and Learning Environment |
| Zasper | Fast, notebook-focused IDE with integrated development tools |
Read our verdict in the software roundup.
| Integrated Development Environments | |
|---|---|
| RStudio | Enterprise-ready professional software for R |
| PyCharm | Integrated Development Environment for Python |
| Neovim | Continuation and extension of Vim |
| Lapce | Fast and powerful code editor written in Rust |
| NetBeans IDE | Java based IDE from Apache |
| VSCodium | Binary distribution of VS Code |
| Eclipse | Java based environment combining a number of different Eclipse projects |
| Qt Creator | Cross-platform, complete Integrated Development Environment |
| Spyder | The Scientific Python Development Environment |
| KDevelop | An easy to use IDE for KDE |
| Helix | Post-modern modal text editor |
| Theia | Cloud & desktop IDE framework |
| eric | Full featured Python editor and IDE |
| Thonny | Python Integrated Development Environment for Beginners |
| Lazarus | Delphi compatible cross-platform IDE |
| PyDev | Python Integrated Development Environment for Eclipse |
| Gambas | Development environment and a full powerful development platform |
| Che | Kubernetes based Cloud Development Environments for Enterprise Teams |
| Leo | Python based IDE, Outliner and PIM |
| IntelliJ IDEA | IDE for Java, Groovy, and other languages |
| LiteIDE | Edit and build Go projects |
| Arduino IDE | Electronics prototyping platform |
| ZeroBrane Studio | Lightweight Lua-based IDE for Lua |
| CodeLite | Powerful and lightweight C/C++ IDE |
| Pyzo | Cross-Platform Python IDE focused on interactivity and introspection |
| DrRacket | IDE for the Racket programming languages |
| Builder | IDE for GNOME |
| Geany | Small and lightweight IDE based on Scintilla |
| Code::Blocks | Very extensible and fully configurable |
| Ecere SDK | Software development kit |
| Zasper | IDE for Data Science |
| U++ | Rapid application development framework |
| roobuilder | Vala and JavaScript IDE |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.
To the author, or to you the reader, In case you like Leo 🙂
There’s now a vscode extension that integrates Leo completely in VSCode, called LeoInteg, and even another one that is a complete Leo re-implementation in typescript called LeoJS, – also as an VSCode extension.
Hope you try them out!