CyrilXBT 分享了一份完整的 Obsidian 仪表盘建造指南。核心命题:大多数人早晨花 45 分钟在邮件、Slack、项目文件夹、日历、任务列表之间切换,试图 mentally assemble 今天该做什么——问题不是信息不存在,是你被迫充当所有信息的集成层。
Obsidian 仪表盘把你从这个角色中解放出来。
仪表盘的核心哲学
仪表盘不是另一个存放信息的地方。它是一个单一笔记,从 vault 各处读取信息,显示当前 relevant 的内容。
因为仪表盘从其他笔记读取而非自己存储信息,你永远不需要手动维护它。你更新项目文件、客户笔记、日常笔记的方式不变,仪表盘每次打开时自动反映这些更新。
仪表盘没有自己的内容。它有查询。
六大信息模块
一个完整的业务仪表盘展示六类信息:
- 今日优先事项——今天到期或逾期的任务,按优先级排序。最重要的 10 件事
- 活跃项目状态——每个活跃项目的完成百分比、截止日期、下一步行动
- ** upcoming 截止日期**——未来 7 天内所有有 deadline 的事项(项目、任务、客户交付物)
- 客户健康度——每个活跃客户的关系健康状态、最后联系日期、下次 scheduled touchpoint。风险客户自动置顶
- 开放循环——昨天日常笔记中仍未关闭的事项。大多数系统中"漏网之鱼"
- 收入脉搏——每个活跃客户按月度收入贡献排序,带实时总计
技术基础:Dataview + Properties
两个 Obsidian 功能让实时仪表盘成为可能:
Dataview:社区插件,作为 vault 的查询引擎。允许在任何笔记内写查询,基于属性、标签或内容从其他笔记拉取信息。结果每次打开笔记时实时渲染。
Properties:结构化元数据字段,YAML 格式写在每篇笔记顶部。
---
type: project
status: active
client: ClientName
deadline: 2026-06-15
priority: high
next_action: Write the campaign brief
completion: 40
---
属性名必须在笔记和查询中完全匹配。一个 typo 就让该笔记对查询不可见。
笔记类型与属性规范
| 笔记类型 | 存放目录 | 核心属性 |
|---|---|---|
| 项目笔记 | 01 - PROJECTS | type, status, client, deadline, priority, next_action, completion |
| 任务笔记 | 02 - TASKS | type, status, project, due, priority, energy |
| 客户笔记 | 03 - CLIENTS | type, status, mrr, last_contact, next_touchpoint, health |
| 日常笔记 | 04 - DAILY | type, date, energy, focus |
仪表盘查询示例
今日优先事项
TABLE WITHOUT ID
file.link as "Task", due as "Due", project as "Project", priority as "Priority"
FROM "02 - TASKS"
WHERE type = "task" AND status != "complete"
AND (due = date(today) OR due < date(today))
SORT priority DESC, due ASC
LIMIT 10
LIMIT 10 是刻意的。显示 40 个逾期任务制造焦虑而非清晰。限制为 10 强迫在属性层面做优先级判断——没进 dashboard 的任务需要调整截止日期或重新评估优先级。仪表盘成为 honest prioritization 的 forcing function。
活跃项目
TABLE WITHOUT ID
file.link as "Project", client as "Client",
completion + "%" as "Done", deadline as "Deadline",
next_action as "Next Action", priority as "Priority"
FROM "01 - PROJECTS"
WHERE type = "project" AND status = "active"
SORT priority DESC, deadline ASC
next_action 是最有价值的列。它显示每个项目现在需要什么,无需打开任何项目文件。结合 deadline 和 completion 列,2 分钟内评估所有活跃项目状态。
未来 7 天
TABLE WITHOUT ID
file.link as "Item", type as "Type", deadline as "Deadline",
status as "Status", client as "Client"
FROM ""
WHERE (deadline >= date(today) AND deadline <= date(today) + dur(7 days))
AND status != "complete"
SORT deadline ASC
跨所有笔记类型查询未来 7 天的 deadline。7 天窗口足够短(全部 genuinely relevant),又足够长(可以提前行动而非只反应)。
客户健康监控
TABLE WITHOUT ID
file.link as "Client", health as "Health",
mrr as "MRR ($)", last_contact as "Last Contact",
next_touchpoint as "Next Touchpoint"
FROM "03 - CLIENTS"
WHERE type = "client" AND status = "active"
SORT health ASC, last_contact ASC
- health 升序 = 风险客户置顶
- last_contact 升序 = 同健康层级内,最久未联系的客户优先
组合效果:无需额外思考,行动优先级自明。红色健康 + 三周未联系 = 立即行动。绿色健康 + 昨天刚联系 = 无需行动。
health 属性三档:healthy、attention、at-risk。保持一致,dashboard 自动排序成原本需要 20 分钟手动检查的 CRM review。
开放循环(Open Loops)
日常笔记中的约定:任何希望出现在第二天 dashboard 的事项,前缀加 OPEN:。
OPEN: Follow up on revised proposal from client
OPEN: Decision on Q3 content pillars
OPEN: Review contract terms before Thursday call
查询:
LIST FROM "04 - DAILY"
WHERE type = "daily" AND date = date(today) - dur(1 day)
FLATTEN file.lists AS item
WHERE contains(string(item), "OPEN:")
Open loops 捕捉"重要但非正式"的事项——大多数只追踪正式任务的系统漏掉的东西。OPEN: 约定在正确时刻 surface 它们,无需单独的追踪系统。
收入脉搏
TABLE WITHOUT ID
file.link as "Client", mrr as "MRR ($)",
health as "Health", status as "Status"
FROM "03 - CLIENTS"
WHERE type = "client" AND status = "active"
SORT mrr DESC
内联查询显示总计:
**Total MRR:** `$= dv.pages('"03 - CLIENTS"').where(p => p.type === "client" && p.status === "active").map(p => p.mrr).array().reduce((a,b) => a + b, 0)`
15 秒看清当前收入全貌:每个活跃客户、月度贡献、健康状态、运行总计。
与 Claude Code 的集成
文章提到仪表盘可连接 Claude Code 实现智能早晨简报。本质上是把 Obsidian 的 structured data 作为上下文喂给 Claude,让 AI 基于你的真实项目状态、客户健康度、开放循环生成每日 brief。
核心 takeaway
这个仪表盘的设计哲学值得所有知识工作者借鉴:
- 单一入口:打开一个笔记,看到一切重要信息,然后开始工作
- 读取而非存储:dashboard 不存内容,全是查询。维护成本为零
- 属性即纪律:一致的 YAML frontmatter 是系统可靠性的基础
- LIMIT 作为 forcing function:人为限制展示数量,强迫 honest prioritization
- OPEN: 捕捉真实工作流:正式任务系统之外的"重要但非正式"事项
和 Miles Deutscher 的 Claude Code 个人 OS 相比,这是"本地优先、零代码"的替代方案——Obsidian 用户无需编程背景就能实现类似效果。