UndoTree
The undo history visualizer for Sublime Text
Details
Installs
- Total 7
- Win 3
- Mac 2
- Linux 2
| Feb 1 | Jan 31 | Jan 30 | Jan 29 | Jan 28 | Jan 27 | Jan 26 | Jan 25 | Jan 24 | Jan 23 | Jan 22 | Jan 21 | Jan 20 | Jan 19 | Jan 18 | Jan 17 | Jan 16 | Jan 15 | Jan 14 | Jan 13 | Jan 12 | Jan 11 | Jan 10 | Jan 9 | Jan 8 | Jan 7 | Jan 6 | Jan 5 | Jan 4 | Jan 3 | Jan 2 | Jan 1 | Dec 31 | Dec 30 | Dec 29 | Dec 28 | Dec 27 | Dec 26 | Dec 25 | Dec 24 | Dec 23 | Dec 22 | Dec 21 | Dec 20 | Dec 19 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Mac | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Linux | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
UndoTree for Sublime Text
A Vim-style UndoTree plugin for Sublime Text 4 (Python 3.8+), visualizing undo history as a branching ASCII tree with live diff previews.

Features
- Branching undo history — every save creates a new node; multiple branches supported
- ASCII tree visualization — shows the hierarchy of undo states using indentation and
- - Current node marker — the active undo state is marked with
* - Sequential counters — each node is numbered for easier reference (
1 -> +2 -0) - Live diff preview — highlights changes when navigating the tree
- Restore any state — select a node to restore its content in the editor
- Automatic initial snapshot — captures file content on open
- Lightweight & Python-only — no external dependencies
Installation
- Place the plugin folder into your Sublime Text
Packagesdirectory:
- Linux:
~/.config/sublime-text/Packages/ - Windows:
%APPDATA%\Sublime Text\Packages\ - macOS:
~/Library/Application Support/Sublime Text/Packages/
- Restart Sublime Text.
Usage
Open UndoTree
- Open the command palette (
Ctrl+Shift+P/Cmd+Shift+P) → Show UndoTree - The tree will appear in a Quick Panel, for example:
*1 -> Initial state
2 -> +2 -0
3 -> +1 -0
4 -> +3 -1
5 -> +1 -2
*marks the current node->separates the counter from the diff summary
Restore a Node
- Move the selection in the Quick Panel
- Press Enter → restores the editor content to that node
- Hovering over nodes shows a live diff preview in a separate panel
UndoTree Behavior
- Every file save creates a new node
- Branches are automatically tracked if you modify the file from an older state
- Initial file load automatically captures the starting state
Example Tree
*1 -> Initial state
2 -> +2 -0
3 -> +1 -0
4 -> +3 -1
5 -> +1 -2
- Shows indentation for branches
- Current node is marked with
* - Numbers help track node order
Commands
| Command | Description |
|---|---|
show_undo_tree |
Opens the UndoTree Quick Panel |
undo_tree_restore |
Restore buffer content to a specific node |
undotree_write_preview |
Internal: writes live diff preview |
undotree_write_panel |
Internal: updates ASCII tree panel |
Requirements
- Sublime Text 4 / 3.8+
- Python 3.8+ (built-in with Sublime Text 4)
- No additional dependencies
Notes
- ASCII tree uses spaces and
-only for branch visualization, so it works in any font - Hover preview works with the diff panel
- Branches can be navigated visually, but the Quick Panel does not allow full Vim-style j/k navigation yet