a sphragis-oss project ← sphragis.eu

config-driven dashboards for Obsidian

Your whole vault,
on one board.

A domain-agnostic dashboard framework for Obsidian: tables, kanban boards, heatmaps and forms over the notes you already have, all from a single profile.json. Live, trust-gated, and written so an LLM can build your dashboard for you.

# In Obsidian
Settings → Community plugins → Browse → "Pinax"

# or jump straight to the listing
obsidian://show-plugin?id=pinax

why pinax

A framework, not an app

01

One JSON file is the dashboard

profile.json declares the layout (grid or tabs) and every pane. Edits hot-reload without a rebuild, and the file is schema-validated, so a broken config tells you what is wrong instead of rendering nothing.

02

Notes as records

11 built-in widgets: table, board, heatmap, stat, form and friends read a folder or a tag set through frontmatter, filtered by where clauses, with rolling-date tokens like {{today-7d}}.

03

Live by default

Editing, creating, renaming or deleting a displayed note re-renders the affected panes, debounced, without stealing your scroll position or focus. Panes fed by external data can auto-refresh on their own refreshSec.

04

Trust gates, all OFF

Web embeds, command buttons and note writing are per-profile toggles that start disabled. An imported profile never inherits trust you granted another one, and every write shows an Undo notice. Command buttons copy, never execute.

05

LLM-buildable

The schema, the authoring guide and the bundled build-your-pinax command exist so you can describe the dashboard you want to a model and paste back a working profile. The bundled SRE, Helm and reading profiles are proof it generalises.

06

Typed companion API

Custom widgets come from companion plugins via window.pinax (apiVersion 1), typed by a copyable pinax-api.d.ts that CI keeps in sync. Released versions never execute code from inside the vault.

quick start

Pick a board, then make it yours

Install and pick a profile

# 1. install + enable, then run
Pinax: Open dashboard

# 2. first run offers the bundled profiles
sre · helm · reading

# 3. duplicate one in Settings to start your own

Profiles are materialized under the plugin folder as plain profiles/<id>/profile.json and hot-reload on edit. The duplicate starts with zero trust, like every profile.

Describe it, let a model build it

# hand your LLM the contract
profile.schema.json + AUTHORING.md

# or run the bundled command
/build-your-pinax

The authoring guide is written for models as much as for people: paste it with a description of your vault and get back a validated profile, ready to drop in.

Nothing is trusted by default. A dashboard renders read-only until you flip the profile's trust toggles; web embeds, command buttons and note writing each ask separately, and imported profiles always start from zero.

profiles

A complete dashboard, in one screen of JSON

This is not an excerpt. It is a valid, complete profile: a kanban board over tasks/, a writing-streak heatmap over journal/, and a capture form that appends to today's note.

{
  "name": "My board",
  "schemaVersion": 1,
  "layout": "grid",
  "panes": [
    { "type": "board",   "title": "Tasks",          "source": { "folder": "tasks" },   "groupBy": "status" },
    { "type": "heatmap", "title": "Writing streak", "source": { "folder": "journal" } },
    { "type": "form",    "title": "Quick capture",  "target": { "note": "journal/{{today}}.md" },
      "fields": [{ "name": "entry" }] }
  ]
}

Profiles travel. Export any profile as a JSON bundle, import one from a paste or an https URL, or start from the community collection at pinax-profiles. Imported profiles always arrive with zero trust.

open source

Built a good board?

Pinax is MIT and built in the open. Profiles are the highest-value contribution: share the bundle that runs your day in pinax-profiles. And if pinax earns a pane in your vault, a star helps others find it.