simratt27 downloadsMinimalist table sort. Click the caret in any column header to sort rows A→Z, Z→A, or numerically.
A minimalist table sort for Obsidian. Named for the ▾ caret you click and a quiet nod to quicksort.

Obsidian is one of those amazing tools which allow you to customize it to your liking. I like using tables in my vault for things like project lists, job trackers, reading lists, etc. I wanted a simple "one-click" solution that sorts the tables alphabetically/ascending/descending. After looking around, I came across plugins like Dataview and Advanced Tables, but no click-to-sort like I wanted.
This is my "painkiller solution." There are no API calls or external services or config files etc. One button, one dropdown, and done.
Adds a little ▾ next to every column header. Click the arrow, pick A → Z or Z → A, and the plugin rewrites your markdown file in place. For numerical values, it shows Ascending or Descending. The new sort order reflects in the markdown file because it's actually edited on the disk, not just in a view.
You can also undo the last sort from reading view. To use it, open Settings → Hotkeys, search for "Caretsort: Undo last table sort", and bind whatever key you want (e.g. Cmd/Ctrl+Z). No default is set to avoid conflicting with Obsidian's built-in shortcuts.

Manual (for now):
main.js, manifest.json, and styles.css from the latest release.<your-vault>/.obsidian/plugins/caretsort/.Works in both reading view and live preview (as long as your cursor isn't inside the table you're sorting).
[[file|display name]] — the internal pipe doesn't break column splitting (regex swaps them out before parsing, swaps them back after).If I end up wanting any of these I'll add them. PRs welcome if you beat me to it.
Clone the repo, install dependencies, and either watch for changes or build once.
npm install
npm run dev # watch mode — rebuilds on file save
npm run build # one-off production build
Output lands in main.js. Copy main.js, manifest.json, and styles.css into <your-vault>/.obsidian/plugins/caretsort/ and reload Obsidian (Cmd/Ctrl+R) to test.
Built in a single session with Claude Code. The idea, the regex implementation, and the scope decisions were mine — Claude wrote the scaffolding and the TypeScript faster than I could have alone.
Made by Simrat Bains · MIT