Skip to content
/ ponder Public

Rust TUI mind-map (Excalidraw-in-terminal vibes) with movable nodes, notes, colors, undo/redo, autosave, search, and JSON persistence — all in your terminal.

License

Notifications You must be signed in to change notification settings

fibnas/ponder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ponder

Rust TUI mind-map (Excalidraw-in-terminal vibes) with movable nodes, notes, colors, undo/redo, autosave, search, and JSON persistence — all in your terminal.

Crates.io Docs License

Mind map screenshot

Sketch project trees, CLI ideas, and scratch notes without leaving the keyboard. Maps are just JSON, so they version cleanly in git.


Install

Then install the crate:

cargo install ponder

Update existing install:

cargo install ponder --force

Or build locally:

git clone https://github.com/fibnas/ponder
cd ponder
cargo run --release

Features

  • 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.

Usage

Launch

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

Layout

  • Canvas: mind map graph
  • Selected: title, color, notes
  • Shortcuts: keybinding cheat sheet
  • Messages: status/toast area

Keybindings

Core

  • Quit: q
  • Help: ?

Navigation

  • Move: arrows
  • Next/Prev node: Tab / Shift-Tab
  • Parent/Child: [ / ]

Nodes

  • Add child: a
  • Clone subtree: c
  • Delete subtree: d
  • Move mode: m (arrows; hold Shift = bigger steps)
  • Rename: t
  • Edit notes: Enter (multi-line; Esc closes)
  • Color cycle: k

Files

  • Open: o
  • Save: s
  • Save As: S
  • New map: n

Search

  • Start search: /
  • Cycle hits: Up / Down
  • Jump: Enter
  • Close: Esc

Undo/Redo

  • Undo: u or Ctrl+Z
  • Redo: r or Ctrl+Y

Autosave

  • Set autosave path: A
  • Set autosave interval: I (seconds; 0 disables)
  • Status bar shows:
    • autosave on/off
    • autosave path
    • last autosave time

Autosave writes normal JSON, which you can open with o.


Data Format

Pretty-printed JSON:

  • name
  • root id
  • next_id
  • nodes[] containing:
    • id, title, note
    • color
    • position {x,y}
    • parent
    • children[]

This format is stable, readable, and git-friendly.


Tips

  • Use colors to group topics or branches.
  • Keep the root broad (“Projects”, “Roadmap”, “Research”).
  • Use notes for details to keep the canvas clean.

Roadmap

  • Sibling/root jumping
  • Tagging + filtering
  • Export formats
  • Zoom presets

License

MIT — see LICENSE.

About

Rust TUI mind-map (Excalidraw-in-terminal vibes) with movable nodes, notes, colors, undo/redo, autosave, search, and JSON persistence — all in your terminal.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages