pavel61 downloadsA local-first dashboard for Pavel's existing tasks and knowledge cards.
A local-first dashboard and task workbench for Obsidian. It turns Markdown notes and frontmatter already in your vault into a focused home workspace: capture ideas, view task status, choose a focus task, and track time without sending your notes anywhere.
.base file can be added as an optional Obsidian Bases view.Focus Workbench is local-first. It does not make network requests, collect telemetry, or upload vault content. It reads only the task, inbox, permanent-note, and literature-note folders configured in its settings, plus the optional task template and .base file. All task and timer data stays in Markdown frontmatter inside your vault.
After the plugin is approved, open Settings → Community plugins, search for Focus Workbench, install it, and enable it. Run Open Focus Workbench from the Command Palette.
The plugin works with Markdown files that use frontmatter. Its default task conventions use Chinese field names, and every field name can be remapped in the setup wizard or Settings → Focus Workbench:
---
type: 任务
所属项目: ""
任务状态: 待做 # 待做 | 进行中 | 暂停 | 完成
任务优先级: P2 # P0 | P1 | P2
计划日期: 2026-07-22
预计耗时分钟: 25 # optional
计时状态: 未开始 # 未开始 | 进行中 | 暂停 | 完成
计时开始时间:
累计耗时秒: 0
完成: false
---
The focus timer counts up: elapsed seconds accumulate in 累计耗时秒 while 计时状态 is 进行中. With the optional 预计耗时分钟 estimate set, the timer pill shows remaining time and keeps counting into overtime (with a one-time notice) instead of stopping; a session left running for more than 12 hours is auto-paused when the workbench opens. New tasks are created from the Markdown template configured in settings (default 模板/任务模板.md), falling back to the minimal built-in format above when the file does not exist.
Ideas use type: 闪念笔记. The default task location is 目标与任务/任务管理/任务, and the default Base file is 目标与任务/任务总表.base. Folders, field names, the task template, and the Base path can all be adapted to your vault from Settings → Focus Workbench. The .base file is an optional companion view; the plugin does not interpret its filter expressions.
This repository intentionally keeps the plugin source as readable, plain JavaScript in main.js; it is the exact file loaded by Obsidian. No generated or minified source is required to review the plugin.
Requirements: Node.js 20 or newer.
npm run release:check
The command syntax-checks the source, validates the manifest, and creates release-ready files in dist/:
dist/
├── main.js
├── manifest.json
└── styles.css
For local development, copy main.js, manifest.json, and styles.css into:
<vault>/.obsidian/plugins/pavel-dashboard/
Restart Obsidian or reload the plugin after making changes.
manifest.json using x.y.z format.npm run release:check.0.1.1 (no v prefix).main.js, manifest.json, and styles.css as assets.Each release workflow also generates GitHub artifact attestations for the three release assets. To verify a downloaded asset, run:
gh attestation verify <asset-path> -R PavelPeng7/focus-workbench