Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. USE WHEN working with .base files or building database-like table/card/list views over a note collection, or when a user mentions Bases, filters, or formulas in Obsidian.
Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. USE WHEN working with .base files or building database-like table/card/list views over a note collection, or when a user mentions Bases, filters, or formulas in Obsidian.
cluster
research-knowledge
version
1.0.0
origin
antigravity-awesome-skills (MIT)
risk
unknown
source
https://github.com/kepano/obsidian-skills
date_added
2026-03-21
Obsidian Bases Skill
When to Use
Use when creating or editing .base files in Obsidian.
Use for database-like note views with filters, formulas, summaries, or cards/tables.
Use when the user asks about Obsidian Bases specifically.
Workflow
Create the file: Create a .base file in the vault with valid YAML content
Define scope: Add filters to select which notes appear (by tag, folder, property, or date)
Add formulas (optional): Define computed properties in the formulas section
Configure views: Add one or more views (table, cards, list, or map) with order specifying which properties to display
Validate: Verify the file is valid YAML with no syntax errors. Check that all referenced properties and formulas exist. Common issues: unquoted strings containing special YAML characters, mismatched quotes in formula expressions, referencing formula.X without defining X in formulas
Test in Obsidian: Open the .base file in Obsidian to confirm the view renders correctly. If it shows a YAML error, check quoting rules below
Schema
Base files use the .base extension and contain valid YAML.
# Global filters apply to ALL views in the basefilters:# Can be a single filter string# OR a recursive filter object with and/or/notand: []
or: []
not: []
# Define formula properties that can be used across all viewsformulas:formula_name:'expression'# Configure display names and settings for propertiesproperties:property_name:displayName:"Display Name"formula.formula_name:displayName:"Formula Display Name"file.ext:displayName:"Extension"# Define custom summary formulassummaries:custom_summary_name:'values.mean().round(3)'# Define one or more viewsviews:-type:table|cards|list|mapname:"View Name"limit:10# Optional: limit resultsgroupBy:# Optional: group resultsproperty:property_namedirection:ASC|DESCfilters:# View-specific filtersand: []
order:# Properties to display in order-file.name-property_name-formula.formula_namesummaries:# Map properties to summary formulasproperty_name:Average
Filter Syntax
Filters narrow down results. They can be applied globally or per-view.
Filter Structure
# Single filterfilters:'status == "done"'# AND - all conditions must be truefilters:and:-'status == "done"'-'priority > 3'# OR - any condition can be truefilters:or:-'file.hasTag("book")'-'file.hasTag("article")'# NOT - exclude matching itemsfilters:not:-'file.hasTag("archived")'# Nested filtersfilters:or:-file.hasTag("tag")-and:-file.hasTag("book")-file.hasLink("Textbook")-not:-file.hasTag("book")-file.inFolder("RequiredReading")
Filter Operators
Operator
Description
==
equals
!=
not equal
>
greater than
<
less than
>=
greater than or equal
<=
less than or equal
&&
logical and
||
logical or
!
logical not
Properties
Three Types of Properties
Note properties - From frontmatter: note.author or just author
File properties - File metadata: file.name, file.mtime, etc.
Formula properties - Computed values: formula.my_formula
File Properties Reference
Property
Type
Description
file.name
String
File name
file.basename
String
File name without extension
file.path
String
Full path to file
file.folder
String
Parent folder path
file.ext
String
File extension
file.size
Number
File size in bytes
file.ctime
Date
Created time
file.mtime
Date
Modified time
file.tags
List
All tags in file
file.links
List
Internal links in file
file.backlinks
List
Files linking to this file
file.embeds
List
Embeds in the note
file.properties
Object
All frontmatter properties
The this Keyword
In main content area: refers to the base file itself
When embedded: refers to the embedding file
In sidebar: refers to the active file in main content
Formula Syntax
Formulas compute values from properties. Defined in the formulas section.
formulas:# Simple arithmetictotal:"price * quantity"# Conditional logicstatus_icon:'if(done, "✅", "⏳")'# String formattingformatted_price:'if(price, price.toFixed(2) + " dollars")'# Date formattingcreated:'file.ctime.format("YYYY-MM-DD")'# Calculate days since created (use .days for Duration)days_old:'(now() - file.ctime).days'# Calculate days until due datedays_until_due:'if(due_date, (date(due_date) - today()).days, "")'
Key Functions
Most commonly used functions. For the complete reference of all types (Date, String, Number, List, File, Link, Object, RegExp), see FUNCTIONS_REFERENCE.md.
Function
Signature
Description
date()
date(string): date
Parse string to date (YYYY-MM-DD HH:mm:ss)
now()
now(): date
Current date and time
today()
today(): date
Current date (time = 00:00:00)
if()
if(condition, trueResult, falseResult?)
Conditional
duration()
duration(string): duration
Parse duration string
file()
file(path): file
Get file object
link()
link(path, display?): Link
Create a link
Duration Type
When subtracting two dates, the result is a Duration type (not a number).
IMPORTANT: Duration does NOT support .round(), .floor(), .ceil() directly. Access a numeric field first (like .days), then apply number functions.
# CORRECT: Calculate days between dates"(date(due_date) - today()).days"# Returns number of days"(now() - file.ctime).days"# Days since created"(date(due_date) - today()).days.round(0)"# Rounded days# WRONG - will cause error:# "((date(due) - today()) / 86400000).round(0)" # Duration doesn't support division then round
Date Arithmetic
# Duration units: y/year/years, M/month/months, d/day/days,# w/week/weeks, h/hour/hours, m/minute/minutes, s/second/seconds"now() + \"1 day\""# Tomorrow"today() + \"7d\""# A week from today"now() - file.ctime"# Returns Duration"(now() - file.ctime).days"# Get days as number