obsidian-bases
Skill1 starsChanged 7 months agoApache-2.0View on GitHub
Create or edit Obsidian Bases (.base files) — the native database layer for dynamic tables, card views, list views, filters, formulas, and summaries over vault notes. Bases query the vault by frontmatter properties and tags, then render as table/card/list views. Use when the user says "create a base", "make a database view", "obsidian base", "filter notes into a table", "task tracker base", "reading list base", "/obsidian-bases", or any phrasing implying a queryable, filterable view of vault content.
80 other projects use a version of this.
Adopted by
Most recently taken up by
- synthetic-recon/atlas-obsidian-vaulttheir own version, first seen Nov 15, 2026
- Bruno-Cunha-Souza/ValarMindSkillstheir own version, first seen Nov 8, 2026
- levi-qiao/obsidian-llm-wikitheir own version, first seen Nov 8, 2026
- shkodnik1917/claude-brainlabtheir own version, first seen Nov 8, 2026
- lingengyuan/my-skillstheir own version, first seen Nov 5, 2026
- The-AIOS/aiostheir own version, first seen Nov 3, 2026
Used with
Projects with it also use obsidian-cli, knap and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
jykimSkillobsidian-cli
Interact with Obsidian using the official CLI to read, search, create, and manage notes, daily notes, tasks, properties, and more. Use when the user wants to query or manipulate vault content via the obsidian command.
Also in 48 projects that use this
lucasmaher-hashSkillknap
Render Markdown from templates and structured data using Knap CLI. Use when the user asks to apply a Knap template, turn JSON or CSV data into notes, batch-generate Markdown files, or format Defuddle output into a note.
Also in 4 projects that use this
BCS1037Skillmermaid-visualizer
Transform text content into professional Mermaid diagrams for presentations and documentation. Use when users ask to visualize concepts, create flowcharts, or make diagrams from text. Supports process flows, system architectures, comparisons, mindmaps, and more with built-in syntax error prevention.
Also in 5 projects that use this
pedronauckSkillalex-hormozi-pitch
Create irresistible offers and pitches using Alex Hormozi's methodology from $100M Offers. Guides through value equation, guarantee frameworks, pricing psychology, and creating offers "too good not to take" for any product or service.
Also in 3 projects that use this
dqtx760Skillcreate-project
Scaffold a complete, runnable project from scratch with proper structure and best practices. Use when building new apps, games, tools, scripts, or any project from zero.
Also in 4 projects that use this
az9713Skillvault-health
Audit vault health: unresolved links, orphan notes, dead-end files, missing frontmatter, structural gaps. Produces an actionable report note with prioritized fix suggestions. Use when wanting to clean up, organize, or assess the current state of the vault.
Also in 3 projects that use this
Other versions80 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 80
- AgriciDaniel/claude-obsidian★ 16ksame name
- anbeime/skill★ 7.9ksame name
- breferrari/obsidian-mind★ 5.4ksame name
- Atmosphere/atmosphere★ 3.8ksame name
- heyitsnoah/claudesidian★ 2.6ksame name
- pedronauck/skills★ 655same name
- freestylefly/canghe-skills★ 461same name
- edrickleong/obsidian-calendar-bases★ 186same name
- benoror/obsidianos_work★ 166same name
- bozhouDev/video-skills-toolkit★ 147same name
70 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- auto-modeSkill
- autoresearchSkill
- bind-workspaceSkill
- build-search-indexSkill
- canvasSkill
- conventionsSkill
- decision-consolidateSkill
- defuddleSkill
- discover-list-filesSkill
- discover-list-vaultsSkill
- force-new-port-startSkill
- hot-compactSkill
- lockSkill
- manage-deleteSkill
- manage-moveSkill
- meta-attach-vaultSkill
- meta-audit-bridge-readinessSkill
- meta-setupSkill
- meta-statusSkill
- meta-sync-templateSkill
- obsidian-markdownSkill
- read-frontmatterSkill
- read-getSkill
- read-searchSkill
- read-search-smartSkill
- saveSkill
- sync-from-githubSkill
- template-executeSkill
- unlockSkill
- who-is-speakingSkill
- wiki-boundarySkill
- wiki-exportSkill
- wiki-foldSkill
- wiki-graphSkill
- wiki-ingestSkill
- wiki-lintSkill
- wiki-neighborsSkill
- wiki-pathSkill
- wiki-querySkill
- wiki-refresh-digestsSkill
- wikiSkill
- wiki-tourSkill
- write-appendSkill
- write-bundleSkill
- write-create-or-replaceSkill
- write-frontmatter-mergeSkill
- write-frontmatter-setSkill
- write-patchSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 78 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 73
Before writing the base, you need:
- Distinctive: line 79
Ask 1-2 short questions if unclear.
- Distinctive: line 152
If the path already exists: read it, propose a diff, ask before overwriting.
- Distinctive: line 160
Don't fabricate frontmatter properties the vault doesn't actually use.
- Very specific: line 161
Don't write .base files at the vault root unless the user asked.
- Distinctive: line 162
Don't try to filter by free-text body content — Bases filter on properties (frontmatter + tags + file.*), not on body content.
- Very specific: line 163
Don't add a formula: field unless you're sure of the syntax — Obsidian Bases formula syntax is fragile and version-dependent.
“Common” is measured: kept by at least 6 in 10 of the 78 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
obsidian-bases
Obsidian Bases (released late 2025) are YAML files with .base extension that produce live database-like views. They're under-documented; this skill gets the syntax right.
When to use
- The user wants a dynamic view of notes by some property (dates, tags, status, project).
- The user has a frontmatter convention (e.g., every project note has
status: active|done) and wants a filtered table. - A wiki dashboard —
wiki/meta/dashboard.baseis a common pattern: tasks-by-status, recent saves, source list.
When NOT to use
- The user wants a static list → just write a markdown file with a list.
- The user wants chart visualizations → Bases don't render charts; suggest the Charts plugin or the
canvasskill.
.base file format
filters:
and:
- 'file.path.startsWith("Projects/")'
- 'status != "archived"'
properties:
status:
displayName: "Status"
due:
displayName: "Due Date"
views:
- type: table
name: "Active Projects"
order:
- file.name
- status
- due
sort:
- column: due
direction: ASC
columnSize:
file.name: 280
status: 100
- type: cards
name: "By Status"
cardSize: medium
grouping:
by: statusKey concepts:
filters— boolean expression tree (and,or,not). Atoms are JS-ish expressions overfile.*and frontmatter properties. Common atoms:file.path.startsWith("X")/endsWith/containsfile.name == "X"<frontmatter-key> == "value"(also!=,>,<,>=,<=,in,contains)tags.contains("project")file.cday(creation day),file.mday(modified day) — date math:file.mday > date("2026-01-01")
properties— declared columns the views can show.displayNameoverrides the raw frontmatter key.views— one or more views over the same filtered set. Each hastype(table,cards,list),name, optionalorder(column order),sort,grouping,columnSize, etc.
Steps
1. Clarify the schema
Before writing the base, you need:
- Which folder/path scope (root?
Projects/?wiki/?) - Which frontmatter properties the user uses
- Which property values are meaningful (status enum? tag list?)
- What views they want (table/cards/list, sorted by what?)
Ask 1-2 short questions if unclear. Don't write a base on assumptions — it's the kind of thing that's annoying to debug if the filter is wrong.
2. Verify properties exist
Sample a few notes from the target scope (mcp__obsidian-router__list_files then get_frontmatter on 3-5 of them) to confirm the frontmatter keys you're filtering on actually appear. If they don't, surface this — the base will return empty results.
3. Compose the YAML
Build the filter, properties, and views per the schema. Common patterns:
Task tracker (tasks.base):
filters:
and:
- 'tags.contains("task")'
- 'status != "done"'
properties:
due: { displayName: "Due" }
priority: { displayName: "P" }
views:
- type: table
name: "Open Tasks"
order: [file.name, priority, due]
sort:
- { column: priority, direction: ASC }
- { column: due, direction: ASC }Reading list (reading.base):
filters:
and:
- 'file.path.startsWith("Reading/")'
properties:
status: { displayName: "Status" }
rating: { displayName: "Rating" }
views:
- type: cards
name: "By Status"
grouping: { by: status }
cardSize: mediumWiki dashboard (wiki/meta/dashboard.base):
filters:
and:
- 'file.path.startsWith("wiki/")'
- 'type != "fold"'
properties:
type: { displayName: "Type" }
saved_at: { displayName: "Filed" }
views:
- type: table
name: "All Pages"
order: [file.name, type, saved_at]
sort: [{ column: saved_at, direction: DESC }]
- type: cards
name: "By Type"
grouping: { by: type }4. Write the file
mcp__obsidian-router__write_file({
vault: <name>,
path: "<path>.base",
content: <yaml>,
ifNew: true
})If the path already exists: read it, propose a diff, ask before overwriting.
5. Tell the user where to see it
Bases render in the Obsidian UI when opened. The user must open the .base file in Obsidian to see the live view. Mention this — they might not realize it's not a markdown file.
Anti-patterns
- Don't fabricate frontmatter properties the vault doesn't actually use. Verify first.
- Don't write
.basefiles at the vault root unless the user asked. Default towiki/meta/or a sensible domain folder. - Don't try to filter by free-text body content — Bases filter on properties (frontmatter + tags + file.*), not on body content.
- Don't add a
formula:field unless you're sure of the syntax — Obsidian Bases formula syntax is fragile and version-dependent. When in doubt, use sortable string properties.
Output format
✅ Created
<path>.basewith N filters, M properties, V views. Open it in Obsidian to see the live view. Schema preview:<key fields>
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

