ObsidianBases技能:让 Claude Code 帮你直接写出可用的 Obsidian Bases 数据库视图
- 一句话定位:这是一个让 Claude Code 具备「创建和编辑 Obsidian Bases(
.base文件)」能力的 AI 技能,视图、过滤器、公式、摘要一次写对。 - 核心能力:支持表格 / 卡片 / 列表 / 地图四种视图类型,支持全局与视图级过滤器、公式计算、属性显示名配置和自定义摘要。
- 最大痛点解决:Bases 用 YAML 编写,嵌套过滤器和公式表达式很容易写错语法,本技能把「查文档、试语法、反复报错」变成「用自然语言描述需求」。
- 使用门槛:只需要会描述自己的笔记字段和想要的效果,不必背函数名与运算符。
- 适用人群:重度 Obsidian 用户、知识管理者、研究者、需要把笔记变成数据库视图的开发者与写作者。
该技能叫什么?如何下载安装 AI 技能提升开发效率?
这个技能的中文名是 ObsidianBases技能Skill,英文名是 obsidian-bases,技能 ID 为 12095。
它解决的问题非常具体:Obsidian Bases 是一套基于 YAML 的笔记数据库视图机制,一个 .base 文件里可以同时包含全局过滤器、公式、属性配置、自定义摘要和多个视图。功能强大,但语法细节多——and/or/not 的递归嵌套、单引号与双引号的混用规则、日期加减的单位写法、列表函数与字符串函数的链式调用,任何一处写错,视图就会空白或报错。本技能让 Claude Code 直接掌握这套语法规则,你描述需求,它输出可用的 .base 文件内容。
安装前提
- 已具备 Claude Code 使用环境(技能通过 Claude Code 的技能机制加载)。
- 本地的 Obsidian 已支持 Bases 功能(具体版本要求以 Obsidian 官方说明为准)。
- 你的笔记中有可用的 frontmatter 属性(如
status、due、priority、pages等),否则过滤器与公式无字段可用。
安装思路与步骤(一键式技能加载)
- 在 Claude Code 的技能库 / 技能市场中,按技能英文名
obsidian-bases或技能 ID12095检索该技能。 - 执行安装或启用操作(具体命令与入口以官方说明为准),将技能加入当前会话可用的技能列表。
- 重启或刷新会话,使技能被加载。
- 验证是否生效:直接用自然语言提问,例如「帮我写一个
.base文件,筛选标签为 task 且状态不是 done 的笔记,用表格视图按状态分组,并显示距离截止日期的天数」。若 Claude Code 能返回包含filters、formulas、views三个区块的合法 YAML,说明技能已正常工作。 - 若返回的是泛泛的说明而非可粘贴的 YAML,说明技能未加载成功,需回到第 1 步检查安装状态。
「一键安装」的价值在于:一次技能加载,后续所有 Bases 相关需求都自动走同一套正确语法,不需要每次重新贴文档、重新调试。
该技能的主要功能和特点
- 生成完整的
.base文件:可一次产出包含全局过滤器、公式区、属性区、摘要区与多视图的完整 YAML 结构,而不是片段式示例。 - 四种视图类型全覆盖:表格视图(
table)、卡片视图(cards)、列表视图(list)、地图视图(map,需要经纬度属性与地图插件)。 - 递归过滤器能力:支持单个过滤器字符串,也支持
and/or/not任意嵌套的组合条件,可精确定位「重要但未完成」「有某标签但不在某文件夹」这类复杂集合。 - 公式系统:支持算术计算、条件逻辑(
if)、字符串格式化、日期格式化与相对时间、日期加减(1M、7d、2h等持续时间单位)、列表的filter / map / reduce / join / sort / unique等高阶运算。 - 属性显示名本地化:通过
properties区为status、formula.days_until_due等属性配置中文显示名,让视图对中文用户更友好。 - 自定义摘要公式:除内置的 Average、Sum、Min、Max、Median、Stddev、Earliest、Latest、Checked、Unique 等摘要外,还能自行定义如
values.mean().round(3)的摘要逻辑。 - 视图级配置:支持
limit限制条数、groupBy分组与升降序、order控制列顺序、视图独立过滤器。 - 支持嵌入 Markdown:可生成
![[MyBase.base]]或指定视图的![[MyBase.base#View Name]]写法,把数据库视图嵌进日记或项目主页。 - 和普通「问 AI 写 YAML」的差别:普通对话容易漏掉 YAML 引号规则(含双引号的公式要用单引号包裹)和函数签名细节,本技能内建了运算符表、文件属性表、函数参考与常见模式,输出更接近「可直接保存使用」的状态。
如何使用该技能?
第 1 步:明确数据基础
先告诉 Claude Code 你的笔记放在哪个文件夹、有哪些 frontmatter 字段。例如:「我的任务笔记都有 status(todo/doing/done)、priority(1-3)、due(日期)三个字段,文件都带 task 标签。」
第 2 步:描述你想要的视图 用日常语言说清「看什么、怎么筛、怎么排、怎么分组」。例如:「做一个表格视图,只显示未完成的任务,按状态分组,显示优先级图标和距离截止天数,最后对剩余天数求平均。」
第 3 步:获取并检查输出 技能会返回结构化的 YAML,典型形态如下(节选):
filters:
and:
- file.hasTag("task")
- 'file.ext == "md"'
formulas:
days_until_due: 'if(due, ((date(due) - today()) / 86400000).round(0), "")'
views:
- type: table
name: "活动任务"
filters:
and:
- 'status != "done"'
order:
- file.name
- status
- due
- formula.days_until_due
groupBy:
property: status
direction: ASC
summaries:
formula.days_until_due: Average
第 4 步:保存为 .base 文件
把内容保存为 任务.base,放进 Obsidian 保险库的任意位置。需要注意:.base 文件是纯 YAML,也可以嵌入 Markdown 代码块中使用。
第 5 步:在 Obsidian 中打开并迭代 打开该文件即可看到视图渲染结果。如果某列空白或分组异常,把报错现象或空白字段反馈给 Claude Code,让它修正过滤器或公式表达式,而不是自己逐行猜语法。
第 6 步:嵌入到日常页面
如需在日记或项目主页显示,使用 ![[任务.base]],或只显示某个视图 ![[任务.base#活动任务]]。
同类型竞品对比分析
| 方案名称 | 定位 | 核心功能 | 安装/使用门槛 | 适用场景 | 优势与不足 |
|---|---|---|---|---|---|
| obsidian-bases 技能(本技能) | 用自然语言生成 Obsidian Bases 文件 | 生成 .base 的视图、过滤器、公式、摘要、属性配置 |
需 Claude Code 环境 + 加载技能;使用者无需掌握 YAML | 快速搭建任务看板、阅读清单、项目索引 | 优势:语法细节由 AI 兜底,复杂嵌套过滤器与公式不必手写;不足:生成结果仍需人工在 Obsidian 中验证,依赖本地 Obsidian 支持 Bases |
| 手写 Obsidian Bases | Obsidian 官方原生方案 | 同样的视图、过滤器、公式能力 | 零安装,但需通读语法文档并自行调试 | 熟悉 YAML、需求稳定的长期配置 | 优势:完全可控、无外部依赖;不足:学习曲线陡,嵌套过滤器与日期函数易出错,改一次查一次文档 |
| Dataview 插件 | 社区查询插件,用查询语言生成列表与表格 | DQL 查询、内联字段、任务查询 | 需在 Obsidian 中安装第三方插件并学习查询语法 | 高度自定义查询、脚本化统计 | 优势:社区生态成熟、查询表达力强;不足:语法非 YAML、与官方 Bases 体系不同,维护成本高,且不属于官方原生能力 |
| Notion / Airtable 等在线数据库 | 云端数据库式笔记与表格 | 表格、看板、属性、公式、协作 | 注册账号、数据上云 | 团队协作、跨设备同步 | 优势:协作与可视化成熟、上手直观;不足:数据不在本地、与 Obsidian 本地 Markdown 库割裂,迁移成本高 |
选型建议:如果你已经在 Obsidian 里积累了 Markdown 笔记并希望「原地」升级为数据库视图,本技能 + Bases 的组合最省事;如果需求极其复杂且愿意投入学习,Dataview 仍然强悍;如果核心诉求是团队协作,云端数据库方案更合适。
该技能的典型应用场景与实际体验情况
场景一:研究者的阅读清单管理
角色是研究生或书评作者,痛点是把读过的书、在读的书、弃读的书分散在不同笔记里无法总览。使用方式是让技能生成一个阅读清单 .base:全局过滤器用 or 组合 file.hasTag("book") 和 file.hasTag("article"),卡片视图按封面 + 书名 + 作者展示,表格视图筛出 status == "to-read" 并附上按页数估算的阅读时长公式。实际体验:一次描述即可得到含两个视图的文件,公式里 (pages * 2).toString() + " min" 这类写法可以稳定产出;需要注意的是,封面字段必须在 frontmatter 中真实存在,否则卡片视图会缺图。
场景二:知识管理者的项目总览看板
角色是自由职业者或团队里的项目负责人,痛点是项目散落在 Projects 文件夹,无法看出哪些在推进、哪些久未更新。使用方式是要求技能生成以 file.inFolder("Projects") 为全局过滤器的表格视图,加上 file.mtime.relative() 显示「几天前更新」,并用 groupBy: status 按状态分组、对链接数求平均摘要。实际体验:相对时间与分组组合是最能体现实用价值的部分;注意事项是自定义摘要需按技能提供的自定义摘要写法定义后再在视图里引用,否则会取不到值。
场景三:每日笔记索引与写作统计
角色是日记写作者,痛点是几百篇日记无法按星期、字数做概览。使用方式是让技能用正则过滤器 /^\d{4}-\d{2}-\d{2}$/.matches(file.basename) 锁定日期命名的笔记,再用公式输出 date(file.basename).format("dddd") 得到星期几、用 (file.size / 5).round(0) 估算字数,并通过 limit: 30 只显示最近 30 条。实际体验:正则 + 日期函数的组合最能体现「AI 写得比人快」;注意事项是字数只是按文件字节数估算,不是精确字数。
场景四:任务跟踪与逾期提醒
角色是重度待办用户,痛点是不知道哪些任务已经逾期。使用方式是让技能写一个条件公式 if(due, date(due) < today() && status != "done", false) 生成逾期标记,配合优先级图标公式和 Average 摘要统计平均剩余天数。整体上手难度低,效果直观;注意事项是日期字段的格式必须符合技能文档要求的解析格式,否则 date() 解析失败会导致整列空白。
该技能能为用户带来的价值
- 把语法门槛降到接近零:Bases 的过滤器运算符、文件属性表、函数签名、YAML 引号规则都被封装在技能里,用户只需描述「我要什么」,不用记「怎么写」。
- 显著缩短搭建时间:手写一个含分组、公式、摘要的多视图
.base文件,通常需要反复查文档和试错;用自然语言描述后一次生成可运行结构,把分钟级到小时级的调参压缩成一次对话。 - 降低出错率:嵌套过滤器、日期持续时间单位、列表函数链式调用是最容易写错的三类语法,由技能按规则产出,减少「视图空白但不知道错在哪」的挫败感。
- 让非开发者也能用上数据库视图:写作、科研、运营等非工程背景用户,可以只理解「字段 + 筛选条件 + 展示方式」这三个概念,就获得看板级的信息组织能力。
- 长期可维护:生成的是标准 YAML 文本,可版本管理、可复制复用、可被后续会话继续修改,形成可沉淀的个人视图模板库。
- 数据始终留在本地:所有视图都作用于你自己的 Obsidian 保险库,不涉及把笔记上传到第三方数据库。
常见问题 FAQ
Q1:这个技能怎么安装?需要付费吗?
在 Claude Code 的技能入口按英文名 obsidian-bases 或技能 ID 12095 检索并启用即可,具体安装命令、入口位置及是否收费以官方说明为准。技能本身只负责「生成和编辑 .base 文件」,不改变你现有的 Obsidian 使用方式。
Q2:安装后怎么确认它真的生效了?
给一个带具体字段的需求,例如「筛选带 task 标签且状态不是 done 的笔记,用表格视图按状态分组并显示距离截止天数」。如果返回的是包含 filters、formulas、views 的完整 YAML,说明生效;如果只是文字解释,说明技能未被加载。
Q3:它和 Dataview 插件冲突吗?我该选哪个? 不冲突,两者是不同体系:Bases 是 Obsidian 官方的 YAML 视图机制,Dataview 是社区查询插件。若你希望用官方原生能力、文件可长期稳定维护,选本技能 + Bases;若你有存量 Dataview 查询且依赖其查询语言,可继续保留,两者可以并存于同一保险库。
Q4:生成的 .base 文件打开后是空白怎么办?
常见原因有三类:字段名与 frontmatter 不一致(如 due 写成 deadline)、过滤器条件过严导致无匹配笔记、公式中日期格式无法解析。把「哪一列空白、期望显示什么」反馈给技能,让它调整过滤器或公式即可,不建议手动逐行修改。
Q5:适合谁用?完全不懂 YAML 也能用吗? 适合重度 Obsidian 用户、知识管理者、研究者、写作者和需要把笔记变成结构化视图的开发者。完全不懂 YAML 也可以使用,你只需要知道自己的笔记有哪些字段、想按什么条件筛选和展示;真正的语法细节由技能负责。地图视图属于例外,需要笔记中存在经纬度属性并安装相应地图插件(以 Obsidian 官方说明为准)。