obsidian-dashboard
Obsidian Vault Dashboard
A live, local dashboard for the Obsidian vault at
C:\Users\Prabhash\Documents\obsidian\prabhash-vault.
It watches the vault and updates in real time as you edit notes in Obsidian: stats, a writing-activity heatmap, tag breakdown, an interactive note graph, aggregated tasks (toggleable from the dashboard), recent notes, and a daily-note calendar. Click anything to jump straight to that note in Obsidian.
Run it
Double-click start-dashboard.bat, or:
npm install
npm run build
npm start # http://localhost:5175
Development mode (hot reload):
npm run dev # client on http://localhost:5173, API on :5175
Configure
config.json:
{
"vaultPath": "C:\\path\\to\\your\\vault",
"vaultName": "your-vault-name",
"port": 5175
}
vaultName must match the vault name in Obsidian for the
"open in Obsidian" links (obsidian:// URIs) to work.
Automation
-
Project sync - the report scans each
syncRootsentry inconfig.json; any top-level folder without a matching note anywhere in the vault gets one created from the Project template (in that root's target vault folder), with arepo:path in its frontmatter. Matching is loose ("saple-bridge" matches "Saple Bridge.md"). Folders listed inprojectsExcludeare skipped."syncRoots": [ { "path": "D:\\project", "folder": "Projects" }, { "path": "C:\\Users\\Prabhash\\Documents\\code\\project", "folder": "Projects" }, { "path": "D:\\code\\contests", "folder": "Contests" } ] -
Daily report -
npm run report(ordaily-report.bat) creates today's daily note from the template if missing and writes a "Vault report" section into it: git commits per project since yesterday, focus-project signals, inbox pressure, yesterday's edits, today's edits so far, and all open tasks. It also creates/refreshes the current weekly review note (Daily/Week YYYY-WW.md) with the top 3 project focus, cleanup candidates, and review prompts. Scheduled via Task Scheduler as "Obsidian Daily Report", daily at 8:00 (runs on next wake if the PC was off). Change the time in Task Scheduler, or remove with:Unregister-ScheduledTask -TaskName "Obsidian Daily Report". -
Server auto-start -
obsidian-dashboard.vbsin the user Startup folder launches the server in the background at login. Delete that file to disable. -
Report sections are wrapped in
<!-- vault-report:start/end -->markers; the indexer skips them so generated content never inflates vault stats.
Focus workflow
The dashboard is designed to keep the real working set to 3 active focus projects.
Choose the top 3 focus projects
Open a project note in Obsidian and edit its Properties/frontmatter:
status: active
priority: high
focus: true
next: One clear next action
blocked:
last-reviewed: 2026-07-06
Use this for projects that should not compete for attention:
status: paused
priority: low
focus: false
Rules used by the dashboard/report:
status: activekeeps a project eligible.status: paused,not active,inactive,done, orarchivedremoves it from active focus.focus: trueis the strongest top-3 signal.priority: highalso boosts a project.next:should be one concrete next action; blanknext:is flagged.blocked:should explain the blocker; any value is flagged as blocked.last-reviewed:older than 14 days is flagged as stale.
Daily use
- Open the dashboard at
http://localhost:5175. - Check the Focus strip for today, weekly review, inbox, project overload, and open tasks.
- Use Top 3 focus to choose what to work on.
- Use Project queue filters (
Focus,No next,Stale,Blocked,Thin) to clean up project notes. - Write work logs in the daily note and project note.
- Run
npm run reportanytime to refresh the generated daily and weekly review sections.
Weekly review
npm run report creates/refreshes Daily/Week YYYY-WW.md. Use it to decide:
- Which 3 projects are truly active next week?
- Which projects should be paused, marked not active, done, or archived?
- Which project notes need a
next:action, review date, or clearer goal? - Which Inbox notes should become projects, reference notes, or be deleted?
How it works
server/- Express + WebSocket. Indexes every.mdfile (frontmatter, tags, wikilinks, tasks, word counts) withgray-matter, watches the vault withchokidar, and broadcasts a fresh snapshot on every change. Edit history for the heatmap accumulates inserver/data/activity.json.client/- React + Tailwind + Recharts + d3-force, built with Vite intodist/and served by the same server.
How to Install
- Download the dashboard markdown file from GitHub
- Drop it into your vault (anywhere)
- Install the Homepage plugin and point it at the file
- Enable any listed CSS snippets for the intended look
Stats
Stars
0
Forks
0
Last updated 1mo ago
Categories