Pinax - config-driven dashboards for Obsidian (tables, kanban, heatmaps, stats) from a single profile.json

Disclaimer

Is this project open source? Yes (MIT)
Is this project completely free? Yes
Is this project vibe-coded beyond the author’s ability to comprehend how it works? No
Community Directory: https://community.obsidian.md/plugins/pinax

Hi everyone,

Pinax (πίναξ, an ancient Greek board or panel) is a dashboard framework for Obsidian: you describe the dashboard you want in a single profile.json, and Pinax renders it on top of the notes you already have. No queries inside notes, no code in your vault.

What it does

  • 11 built-in widgets: tables (notes as records via frontmatter), kanban boards with drag-and-drop write-back and one-click Undo, GitHub-style heatmaps with streaks, stat tiles with sparklines and warn thresholds, quick-capture forms, markdown embeds, and more
  • Live re-rendering: edit, create, rename or delete a note a pane shows and the dashboard updates automatically
  • Multi-tab layouts, 18 themes (press t), command palette (⌘K), deep links (obsidian://pinax?profile=)
  • Profile sharing: export/import as JSON bundles, by paste or URL; community bundles at pinax-profiles
  • LLM-friendly by design: paste profile.schema.json + the authoring guide into any model, describe your dashboard in plain language, get a valid profile back

Security model

Web embeds, command buttons and note writing are three per-profile toggles, all OFF by default, and an imported profile never inherits trust you granted another one. The plugin never executes code from your vault; custom widgets come from tiny companion plugins via a public API (copy-paste template included).

Bundled examples: an SRE command center, a personal multi-tab dashboard, and a reading tracker, all from the same engine with zero code difference.

Repo: sphragis-oss/pinax

Happy to answer questions and hear what widgets you would want next. I will keep all future updates for Pinax in this thread.

Update: v0.1.5 to v0.1.7

Three small releases since the original post, mostly shaped by early feedback:

  • Live re-renders no longer interrupt you. Dashboards refresh automatically when the notes they display change; a refresh now keeps your scroll position, and if you are typing in a form or capture input it waits until you are done instead of stealing focus.
  • Keyboard and screen reader support across the core UI: tabs, collapsible pane headers, sortable table headers and kanban cards are focusable and operable with Enter/Space, with proper ARIA roles and labels. Board cards can now also be moved between columns from the keyboard: press M on a focused card and pick the target column.
  • Preferred terminal. Command buttons used to open the macOS default terminal only. There is now a per-device setting for iTerm2, Ghostty, kitty, Alacritty, WezTerm, Warp, Windows Terminal, cmd, PowerShell and common Linux terminals, plus a “Copy only” mode if you have your own workflow. Windows and Linux get a system-terminal fallback for the first time.
  • Settings search. On Obsidian 1.13+ every Pinax setting shows up in the settings search.
  • For plugin developers: if you are writing a companion widget plugin in TypeScript, copy the single-file pinax-api.d.ts into your project for a fully typed window.pinax with autocomplete. CI keeps it in sync with the real API.

Update from Settings → Community plugins. Feedback very welcome, especially from keyboard-first and screen reader users.