Repository navigation
Properties Tags Search and Bases
Properties, tags and search turn a pile of pages into something you can query, and Bases save those queries as live tables, cards or lists. Everything respects page access: you only ever see pages you can open.
The properties panel (collapsed by default) shows a page's front matter keys. Types: text, number, checkbox, date, datetime, list, tags, aliases. Types come from .folio/properties.json in the repository, or from .obsidian/types.json when that file is absent. The panel exists on every page kind except folders: documents, data tables, forms, boards, PDF and Office files.
- Edit in Live or Source mode. Reading mode is read-only.
- Saving rewrites only the front matter block; every other byte stays.
-
idcannot change. A Folio key with a value Folio would not write itself (such asstatus: deprecated) is shown as a foreign value and never overwritten. - Tables and forms keep properties in their front matter; boards and files in a sidecar
.folio/<path>.props.yamlthat follows the page.
#tag in the text and tags: in front matter both count; a/b nests. The sidebar shows a tag tree. Click a tag to see its pages, or rename it across the space (body, front matter, and tags on tables, forms, boards and files, only on pages you can edit). labels: is read as a synonym of tags: and is never moved or removed.
Press Cmd+K (quick switcher) or search in a space.
| Write | Finds |
|---|---|
words |
all the words in the title or text (a close title forgives a typo) |
"exact phrase" |
the words in this order |
-word, -"phrase"
|
pages without it |
tag:name |
the tag and its children (tag:a also finds a/b); several tag: must all match |
in:folder/ |
pages inside a folder (in:, not path:); several in: mean any |
kind:doc |
doc, table, board, form, pdf, office, canvas, base; kind:doc,table means either |
status:draft |
draft, published, archived
|
prop:key=value |
front matter value (text, number, true/false, a list item, a date); prop:key means the key exists |
There is no standalone OR: comma-separated values inside one filter are the way to say "either". Operator names are case-insensitive; an unknown foo:bar is an ordinary word. A query of filters alone lists every match, newest first. Saved searches (up to 50 per person) live in Cmd+K. The same grammar works in the REST API and in MCP.
Limits: search has no stemming, so word forms differ; PDF and Office files are found by title only.
A base (.base, Obsidian's format) is a saved query over the pages of its space, not a table you fill in.
-
Views: table, cards (cover from an
image:property) and list; group by a property, sort by several keys, limit, column summaries and your own formulas. -
Filters and formulas with
and/or/not, date arithmetic and the usual string, list, link and file functions. - Edit cells in place (Edit toggle): changes that page's property. Only note properties on pages you can edit.
-
Create one:
+, New base, or turn a search into one with Save as base... in the quick switcher. A visual editor (Configure) has a raw YAML tab. - A
basecode block in a document shows the same view.
Limits: no kanban or map views, no html(), image(), icon() or plugin functions, no bases across spaces; a query looks at up to 5,000 pages and shows 200 rows at a time; dates use UTC; share links and public sites show a note instead of a base.
Graph · Migrate from Obsidian · MCP tools · Blog: Folio 0.4 · Folio vs. Obsidian · LIMITATIONS.md
Website · Live demo · Install · Docs · Repository · Discussions · Changelog · MIT license
Start
Move to Folio
- Migrate from Confluence
- Migrate from Notion
- Migrate from Obsidian
- Make Obsidian Multiplayer
- Docs as Code
Use
AI and agents
Admin