JavaScript is disabled. Some features may not work.
obsidian-bases — ★ 37.4K GitHub Stars — Install Guide | SkillsNav
🇺🇸 English🇨🇳 中文
SkillsNav
Home

obsidian-bases

★ 37K repomlSafeIntermediateClaude
🤖 AI Summary

Creates and manages Obsidian Bases by generating `.base` files with YAML configuration, enabling filtered note collections based on tags, folders, properties, or dates.

How to Install

Claude Code:
git clone --depth 1 https://github.com/kepano/obsidian-skills.git && cp obsidian-skills/skills/obsidian-bases ~/.claude/skills/obsidian-bases -r

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

  1. Create the file: Create a .base file in the vault with valid YAML content
  2. Define scope: Add filters to select which notes appear (by tag, folder, property, or date)
  3. Add formulas (optional): Define computed properties in the formulas section
  4. Configure views: Add one or more views (table, cards, list, or map) with order specifying which properties to display
  5. 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
  6. 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 base
filters:
  # Can be a single filter string
  # OR a recursive filter object with and/or/not
  and: []
  or: []
  not: []

# Define formula properties that can be used across all views
formulas:
  formula_name: 'expression'

# Configure display names and settings for properties
properties:
  property_name:
    displayName: "Display Name"
  formula.formula_name:
    displayName: "Formula Display Name"
  file.ext:
    displayName: "Extension"

# Define custom summary formulas
summaries:
  custom_summary_name: 'values.mean().round(3)'

# Define one or more views
views:
  - type: table | cards | list | map
    name: "View Name"
    limit: 10                    # Optional: limit results
    groupBy:                     # Optional: group results
      property: property_name
      direction: ASC | DESC
    filters:                     # View-specific filters
      and: []
    order:                       # Properties to display in order
      - file.name
      - property_name
      - formula.formula_name
    summaries:                   # Map properties to summary formulas
      property_name: Average

Filter Syntax

Filters narrow down results. They can be applied globally or per-view.

Filter Structure

# Single filter
filters: 'status == "done"'

# AND - all conditions must be true
filters:
  and:
    - 'status == "done"'
    - 'priority > 3'

# OR - any condition can be true
filters:
  or:
    - 'file.hasTag("book")'
    - 'file.hasTag("article")'

# NOT - exclude matching items
filters:
  not:
    - 'file.hasTag("archived")'

# Nested filters
filters:
  or:
    - file.hasTag("tag")
    - and:
        - file.hasTag("book")
        - file.hasLink("Textbook")
    - not:
        - file.hasTag("book")
        - file.inFolder("Required Reading")

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

  1. Note properties - From frontmatter: note.author or just author
  2. File properties - File metadata: file.name, file.mtime, etc.
  3. 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.

```yaml formulas: # Simple arithmetic total: "price * quantity"

# Conditional logic status_icon: 'if(done, "✅", "⏳")'

# String formatting formatted_price: 'if(price, price.toFixed(2) + " dollars")'

# Date formatting created: 'file.ctime.format("YYYY-MM-DD")'

# Calculate days since created (use .days for Duration) days_old: '(now() - file.ctime).days'

# Calculate days until due date days_un

Details

Category AI/ML → ml
Sourcekepano/obsidian-skills
SKILL.mdView on GitHub →
Repo Stars★ 37.4K
Est. per Skill~7.5K (shared across 5 skills from this repo)
DifficultyIntermediate
Risk LevelSafe

Related Skills

Works Well With

Skills from the same repository — often designed to work together