# Obsidian Bases

Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries.

- Repository: https://github.com/kepano/obsidian-skills (50569 stars)
- Category: Data and ML
- License: MIT
- Last updated: 2026-09-15
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kepano/obsidian-skills --skill obsidian-bases -g -a claude-code -y`
Codex: `npx skills add kepano/obsidian-skills --skill obsidian-bases -g -a codex -y`
Cursor: `npx skills add kepano/obsidian-skills --skill obsidian-bases -g -a cursor -y`
Gemini CLI: `npx skills add kepano/obsidian-skills --skill obsidian-bases -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add kepano/obsidian-skills`

## Description

Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Obsidian Bases Skill

## 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.

```yaml
# Global filters apply to ALL views in the base
filters:
  # Can be a single filter string
  # OR a recursive filter object with exactly ONE key: and, or, or not
  and:
    - 'status == "active"'
    - not:
        - 'file.hasTag("archived")'

# 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)'

The rest: https://github.com/kepano/obsidian-skills/blob/HEAD/skills/obsidian-bases/SKILL.md
