Jared Cherup34 downloadsRender grouped summary tables from Bases.
A plain summary table for the Bases you already have. Add it as another view on an existing Base, or embed that Base in a note, to see totals instead of a long list of notes.
A Bases table lists every note. Often you only want the answer: how many, how much, how recent. This view collapses the same filtered notes into one row per group, with a table that looks like the native one and no extra styling to maintain.
| You have | The summary shows |
|---|---|
| Expenses by category | Count and total amount |
| Books by genre | Count, pages read and average rating |
| Tasks by status | Count and estimated hours |
| Client work by client | Hours, billable entries and next due date |
Example .base file:
filters:
and:
- file.inFolder("Media")
views:
- type: summary-base-view
name: Summary
groupBy:
property: note.media
direction: ASC
order:
- amount
- released
summaryColumns:
- type: count
- property: note.amount
summary: Sum
- property: note.amount
summary: Average
- property: note.released
summary: Earliest
View settings:
groupBy: the property to group by, edited with the Base's Group menuorder: the properties that get summary columns, edited with the Base's Properties menusort: header sorting, edited with the Base's Sort menusummaryColumns: the list of summary columns. Use type: count for the note count, or a property with a summarycolumnSize: saved column widthsamount.YYYY-MM-DD ~ YYYY-MM-DD.done - started) get Total hours/days/minutes, Average hours/days, and Longest/Shortest (hours).values methods (sum(), mean(), filter(), ...), chained helpers such as round(), and the built-in summaries as you type. The result is saved as a custom summary in the Base and can be reused.Templates. Enter one folder name per line. A name matches a folder with that name anywhere. A path such as Archive/Old matches that folder and its subfolders. Leave it empty to include everything.The plugin writes to your clipboard only when you choose Copy as CSV or Copy as Markdown table from the results menu. It never reads the clipboard.
Captured from small demo Bases in Obsidian's default theme. Each example shows desktop, then phone width.




npm run verify
That command builds the plugin, type-checks it, runs the Obsidian community scanner lint, and runs a smoke test against the summary core.
If this plugin is useful to you, you can support its development on Ko-fi.