Rust TUI mind-map (Excalidraw-in-terminal vibes) with movable nodes, notes, colors, undo/redo, autosave, search, and JSON persistence — all in your terminal.
Sketch project trees, CLI ideas, and scratch notes without leaving the keyboard. Maps are just JSON, so they version cleanly in git.
Then install the crate:
cargo install ponderUpdate existing install:
cargo install ponder --forceOr build locally:
git clone https://github.com/fibnas/ponder
cd ponder
cargo run --release- Mind maps as JSON
- Create/open/save maps on disk.
- Autosave with configurable interval and path.
- Fast node editing
- Add/clone/delete nodes, move them freely, and jump to parent/child.
- Per-node colors to visually group branches.
- Notes everywhere
- Multi-line notes per node with a dedicated overlay editor.
- Search across titles and notes.
- Comfortable navigation
- Arrow-key navigation, Tab/Shift-Tab cycling, and directional selection.
- Undo/redo history with bounded snapshots.
- TUI quality-of-life
- Separate panes for canvas, selected node details, shortcuts, and messages.
- Lightweight dependencies:
ratatui+crossterm.
ponder # new map
ponder map.json # open or create specific file- If the file exists → it is loaded
- If it does not → a new map is created and saved there when you hit
s
- Canvas: mind map graph
- Selected: title, color, notes
- Shortcuts: keybinding cheat sheet
- Messages: status/toast area
- Quit:
q - Help:
?
- Move: arrows
- Next/Prev node:
Tab/Shift-Tab - Parent/Child:
[/]
- Add child:
a - Clone subtree:
c - Delete subtree:
d - Move mode:
m(arrows; holdShift= bigger steps) - Rename:
t - Edit notes:
Enter(multi-line;Esccloses) - Color cycle:
k
- Open:
o - Save:
s - Save As:
S - New map:
n
- Start search:
/ - Cycle hits:
Up/Down - Jump:
Enter - Close:
Esc
- Undo:
uorCtrl+Z - Redo:
rorCtrl+Y
- Set autosave path:
A - Set autosave interval:
I(seconds;0disables) - Status bar shows:
- autosave on/off
- autosave path
- last autosave time
Autosave writes normal JSON, which you can open with o.
Pretty-printed JSON:
namerootidnext_idnodes[]containing:id,title,notecolorposition {x,y}parentchildren[]
This format is stable, readable, and git-friendly.
- Use colors to group topics or branches.
- Keep the root broad (“Projects”, “Roadmap”, “Research”).
- Use notes for details to keep the canvas clean.
- Sibling/root jumping
- Tagging + filtering
- Export formats
- Zoom presets
MIT — see LICENSE.
