bases

v2026.09.24

Obsidian Bases (database-over-notes): list base files/views, create items, run view queries with json/csv/tsv/md output. Use when user mentions Bases or .base files.

GitHub
Install command
npx skhub add laurigates/bases
Markdown
SKILL.md

Obsidian Bases

When to Use This Skill

Use this skill when...Use the alternative instead when...
Querying notes that share a Base view (status board, reading list, project tracker)Doing a free-text search across the vault — use search-discovery
Creating a new entry that should land in a specific Base viewCreating an arbitrary note — use vault-files
Listing what .base files and views exist in the vaultReading frontmatter on a single note — use properties

Bases turn note collections into queryable views with frontmatter-driven filters and columns. The CLI exposes those views as structured data — JSON for the agent, CSV/TSV for piping, markdown for rendering.

Prerequisites

  • Obsidian desktop 1.12.7+ installer with CLI enabled
  • Obsidian must be running
  • At least one .base file in the vault

List Bases and Views

# List all .base files in the vault
obsidian bases

# List the views defined in a base (default: active base)
obsidian base:views file=Reading
obsidian base:views path="Bases/Reading.base"

Query a View

base:query runs a view and returns rows. Default format is JSON, which is the right choice for agentic consumption.

# Query the active view of the active base
obsidian base:query

# Specific base + view, JSON for parsing
obsidian base:query file=Reading view="To read" format=json

# Markdown table for human consumption
obsidian base:query file=Reading view="To read" format=md

# Just the matching note paths (one per line, useful with xargs)
obsidian base:query file=Projects view=Active format=paths

# CSV for spreadsheet workflows
obsidian base:query file=Tasks view=Open format=csv

The format=paths mode is the agentic-friendly equivalent of a vault search that already understands base filters — pipe the output into obsidian read or any file-level skill.

Create an Entry in a Base

Create a new note that automatically lands in a base view (the base's filter must match the new note's frontmatter for it to actually appear):

# Add to the active base view
obsidian base:create name="Untitled Book"

# Specific base + view, with starting content
obsidian base:create file=Reading view="To read" name="The Mythical Man-Month" content="# The Mythical Man-Month\n\n"

# Open the new note in a new tab after creating
obsidian base:create file=Reading view="To read" name="New entry" newtab open

Common Patterns

"Find every active project and append a status update"

obsidian base:query file=Projects view=Active format=paths \
  | while read -r path; do
      obsidian append path="$path" content="\n## $(date +%F) update\n- "
    done

"Show me a markdown table of incomplete reading"

obsidian base:query file=Reading view="To read" format=md

"Bulk-create entries from a CSV"

Read each row, then call base:create per row with the desired name= and content=. Avoid embedding shell operators inside the CLI invocation — build values in shell variables first, then pass them.

Agentic Optimizations

ContextCommand
List .base filesobsidian bases
List views in a baseobsidian base:views file=X
Query a view as JSONobsidian base:query file=X view=Y format=json
Get matching paths onlyobsidian base:query file=X view=Y format=paths
Markdown table for humansobsidian base:query file=X view=Y format=md
Create entry in a viewobsidian base:create file=X view=Y name="…"

Related Skills

  • vault-files — Read/write notes returned by a base query
  • properties — Edit frontmatter that drives base filters
  • search-discovery — Free-text and tag search when no base exists
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

obsidian-plugin/skills/bases

Default branch

main

Latest commit

1668324

Tree SHA

b2d4cc3