pooyash199834 downloadsInstantly turn tables, checkboxes, and key:value data into interactive charts.
Turn your Obsidian notes into interactive charts in seconds. Place your cursor inside any table, checkbox list, or key:value block — press a shortcut — and a live, auto-refreshing chart is inserted directly into your note.
| Monthly revenue (Pie) | Sprint progress (Doughnut) |
|---|---|
![]() |
![]() |
| Product mix (Polar Area) | Team availability (Bar) |
|---|---|
![]() |
![]() |
true/false), currency ($1,200), percentages (42%), yes/no, and mixed tables; strips trailing empty columns automatically| Format | Example |
|---|---|
| Markdown table | | Item | Sales | |
| Checkbox list | - [x] Write tests |
| JSON object | {"Revenue": 500, "Cost": 300} |
| JSON array | [{"name": "A", "count": 5}] |
| Key : value | Revenue: 500 |
Tables can contain numbers, booleans (true/false, yes/no), currency, or percentages — any column whose values can be converted to a number is offered as a value series.
Cmd/Ctrl + Shift + C (or right-click anywhere in the editor → Generate chart from this note)chartspark block is inserted directly below the source dataCharts re-render automatically when the source data changes. Each chart stores a unique ID and scans backwards from its own position to find its source block — so editing one table only refreshes the chart that belongs to it.
Enable Show refresh button in settings to display a ↻ Refresh button on each chart.
Hover over any chart and click the × button in the top-left corner.
Charts are stored as standard fenced code blocks and can be written or edited by hand:
```chartspark
{
"type": "bar",
"data": {
"labels": ["Q1", "Q2", "Q3", "Q4"],
"datasets": [{"label": "Revenue", "data": [120, 95, 140, 180]}]
}
}
```
Any valid Chart.js configuration can be placed in the data and options fields.
| Command | Shortcut | Description |
|---|---|---|
| Quick chart | Cmd/Ctrl + Shift + C |
Generate a chart from data in the active note |
| Generate chart (with preview) | — | Same, but opens the full column-picker preview |
| Scan vault and generate chart | — | Aggregate checkbox data across vault |
| Export active chart as PNG | — | Save the focused chart as an image |
| Insert chart template | — | Insert a blank chart block to edit manually |
| Setting | Default | Description |
|---|---|---|
| Default chart type | Pie | Chart type pre-selected in the preview modal |
| Auto-refresh charts | On | Re-render when source data changes |
| Max chart width | 600 px | Maximum rendered width (200–1200 px) |
| Show refresh button | On | Display a manual ↻ button on each chart |
main.js, manifest.json, and styles.css from the latest release<Vault>/.obsidian/plugins/chartspark/npm install
npm run dev # watch mode with hot reload
npm run build # production build
npm test # run unit test suite