---
name: obsidian-bases
description: Create and edit Obsidian Bases (.base files) with valid YAML schemas, filters, formulas, properties, summaries, and views. Use for database-like Obsidian views or when the user mentions Bases, .base files, table/card/list views, filters, formulas, or summaries.
license: MIT
metadata:
copilot-enabled-agents: claude, codex, opencode
copilot-builtin-version: "1"
.base file before editing it.filters.formulas only when needed.filters:
and:
- 'file.ext == "md"'
- 'status != "archived"'
formulas:
days_until_due: 'if(due, (date(due) - today()).days, "")'
properties:
status:
displayName: Status
formula.days_until_due:
displayName: "Days Until Due"
summaries:
mean_rounded: 'values.mean().round(2)'
views:
- type: table
name: Active
limit: 50
filters:
and:
- 'status != "done"'
order:
- file.name
- status
- formula.days_until_due
groupBy:
property: status
direction: ASC
summaries:
formula.days_until_due: Average
Views may be table, cards, or list.
A map view depends on compatible map support.
Filters may be a single expression or recursively nested and,or, and not objects. Property namespaces are:
status or note.statusfile.name, file.path,file.folder, file.ctime, file.mtime,file.tags, file.links, andfile.backlinksformula.days_until_dueUse file.hasTag(), file.hasLink(),file.hasProperty(), and file.inFolder() for indexed
file relationships. The this value refers to the Base itself, the
embedding note, or the active file depending on where the Base is rendered.
if()..days, .hours, or another numeric field before.round().formula.X used by a view or property configuration mustX entry under formulas.Read Functions reference for function and
type-specific operations, and Examples for complete
task-tracker and daily-notes Bases.
views list.order, groupBy, and summaries reference defined![[My Base.base#View Name]].Adapted from kepano/obsidian-skills at revisiona1dc48e68138490d522c04cbf5822214c6eb1202. See LICENSE.