.kiwi/views/. Open Bases in the web UI to browse the results, or run the same view from the API or MCP.
Use a base when you want a reusable slice of your pages, such as all open incidents, every paper tagged llm, or vendors that have an office location.
How it works
1
Pages carry frontmatter
Every field you want to query lives in YAML frontmatter, for example
status, owner, or due.2
A view stores a DQL query
The view’s
query selects and shapes rows. Filtering and sorting belong in the query (WHERE, SORT).3
Executing the view runs the query
GET /api/kiwi/views/{name}/execute runs the query against the frontmatter index, then evaluates any computed formula columns.4
The web UI renders the rows
Bases shows the result in the view’s default layout. You can switch layouts and quick-search the loaded rows without editing the view.
Executing a view requires the default SQLite search engine. With
[search] engine = "grep", the execute endpoint returns 503.File format
Each view is one JSON file named after the view..kiwi
views
open-incidents.json
reading-list.json
.kiwi/views/open-incidents.json
View names must start with a letter or digit and may contain letters, digits, spaces, hyphens, and underscores.
Computed columns
A column with aformula is evaluated for each row after the query runs, and the result is written into that column’s property. Formulas support:
- Field references, numbers, and quoted strings
- Arithmetic with
+,-,*, and/ length(x),round(x, digits), andif(field, then, else), where the condition is true when the field is set and not empty
Layouts in the web UI
Hide the Bases toolbar button with
bases = false under [ui.features].
Create and run a view
- REST
- MCP
- Web UI
Terminal
Saved views are configuration under
.kiwi/, not pages. Saving one writes the JSON file directly; it does not create a git commit or appear in search.Saved views versus computed views
Saved views live in.kiwi/views/ and render in the web UI. Computed views are markdown pages with kiwi-view: true and a kiwi-query in frontmatter. KiwiFS writes the query result into the page body between <!-- kiwi:auto --> and <!-- /kiwi-view --> markers, so any tool that reads the file sees the result. Regenerate one with POST /api/kiwi/view/refresh or the kiwi_view_refresh MCP tool. See DQL for details.
Related
Views REST API
List, save, delete, and execute views.
DQL
The query language behind every view.
Metadata API
Query frontmatter directly.
Web UI
Toolbar views, including Bases.