kiwifs serve includes a full web UI. Open http://localhost:3333; there is nothing else to install. Everything you do in it goes through the same write pipeline as the API, so every save is a git commit and shows up in search right away.
Layout
On screens narrower than 768 px, the sidebar becomes an overlay that closes when you open a page.
Keyboard shortcuts
Press Mod+/ to see every shortcut. Mod is Cmd on macOS and Ctrl elsewhere.Customize shortcuts
Rebind actions in.kiwi/keybindings.json or inline in config.toml. Inline config wins over the file, and unknown actions or invalid chords are ignored.
search, new_page, toggle_editor, save, toggle_sidebar, graph, toggle_bases, toggle_timeline, toggle_kanban, toggle_mode, shortcuts_help, undo, focus_tree_filter, and close_overlay. GET /api/kiwi/keybindings returns the active bindings and any conflicts; the shortcuts dialog shows a warning when two actions share a chord.
Search
Mod+K opens the search palette. Each query runs full-text search and, when vector search is configured, semantic search at the same time, and merges the results.- Narrow results with folder chips and the 7 days, 30 days, and 90 days chips.
- Type
field:valueto filter by frontmatter, for examplestatus:draftortag:billing. - With no matches, the palette suggests a spelling (Did you mean: …?).
Pages and the file tree
- New page opens a dialog with a Path and a Template: Blank page or any template in
.kiwi/templates/. - Right-click a page for Open, Duplicate, Rename, Move, Delete, and publish actions. Right-click a folder for New page in …, Upload files to …, Rename, Move, and Delete folder.
- Drag files from your desktop onto the tree to upload them.
- Click a missing wiki link (tooltip Missing: … — click to create) to create the page.
- Previous and Next at the bottom of a page follow the nearest
_book.yaml(aparts:list). Without one, they follow the folder’s files, with_index.mdfirst.
Editor
Click Edit (or press Mod+E) to edit the current page. The editor has two modes, chosen with the Visual | Source toggle:- Visual
- Source
A block editor. Type
/ for commands, including Wiki link, Info callout, Warning callout, Error callout, and one entry per widget. Type [ to link to a page.Visual mode may reformat some markdown on save. If a page can’t be opened visually, KiwiFS offers Back to Source.- The editor autosaves 2 seconds after you stop typing and shows Unsaved, Saving…, Saved, or Error.
- Save & Close saves and returns to the rendered page.
- Switching modes with unsaved changes asks whether to Save & switch or Switch without saving.
- The Frontmatter section above the body edits YAML frontmatter.
- KiwiFS remembers the mode you used last.
.kiwi/config.toml
Saves use the file’s ETag. If someone else changed the page since you opened it, the save fails with a
409 error. Copy your changes, reload the page, and edit again.History
Click History on a page to see its git versions. Choose Diff for a word-level diff against the previous version, or Blame for line-by-line authorship. Restore writes an older version back as a new commit.Views
The header buttons open full-screen views. Only one is open at a time.
See Bases, Canvas, Whiteboard, and Workflows.
Knowledge graph
The graph shows every page and link in the knowledge base.- Highlight… searches for nodes. All folders and All tags filter the graph.
- Mode switches between 2D and 3D.
- Size by PageRank, Color by community, and Show links change how nodes and edges are drawn.
- Link types filters edges: wiki-link or any typed frontmatter relation, such as
supersedes. - Find path shows the shortest path between two pages you click.
- Click a node to open its page.
Restructure pages
Restructure moves, renames, and merges pages as one commit without breaking links. Open it from the Restructure: move and merge pages icon in the sidebar’s Pages header.1
Write a manifest
Enter moves, merges, and edits in Manifest (YAML or JSON):
2
Plan and review
Click Plan. Nothing changes yet. The plan shows Before and After trees, how many links will be rewritten, any errors under Cannot apply, warnings under Check before applying, and a diff for every file under Changes, file by file. Uncheck an item to leave it out.
3
Apply
Click Apply. The result names the commit, and Undo reverts it.
kiwifs refactor and to agents through kiwi_refactor_plan and kiwi_refactor_apply. See Refactor for the full manifest format.
Import data
Open Data sources, then Connect a source. On a fresh knowledge base, the welcome page also offers Import from a source.
The wizard walks through the source, the connection (upload a file, or give a server path such as an Obsidian Vault path), a Target folder, Field mapping with types inferred from up to 100 sample rows, and a Preview of five records before you click Import. Syncable sources then show Sync now and Pause sync in Data sources.
See Import connections.
Reading features
Rich blocks and widgets
Fenced code blocks render as interactive components: Mermaid and D2 diagrams, charts, DQL tables, calculators, and step-through widgets such as```array, ```tree, and ```graph. Other markdown viewers show them as plain code.
- Mermaid diagrams have zoom, Reset, fullscreen, and SVG / PNG download. Add
focus="A,B"ordim="C"to the fence to highlight nodes. - D2 diagrams are rendered on the server, with Download SVG.
- Step-through widgets and
kiwi-stepshave playback controls: Space plays and pauses, the arrow keys step, andrresets. Widgets on one page can share a clock, and Copy link to this step links to a specific step.
Quizzes
A[!quiz] callout becomes an interactive question:
single, multi, boolean, order, match, and short. Submit grades the answer and shows Correct or Not quite with the explanation; short-answer quizzes use Show answers instead. A running score appears above the page, and your answers are saved for next time. Search indexes only the question, so answers never show up in snippets.
Progress tracker
A```widget:tracker block turns numbered folders such as 01-intro/ and 02-setup/ into a checklist. Mark pages complete with the circle next to each one, filter by All, Todo, or Done, and bookmark pages for review. Each folder starts collapsed; click its header to expand it. Progress is saved per user.
Comments
Select text on a page and click + Comment. Comments can be resolved or deleted, and appear in the page footer.Export and publish
- More actions (the ⋯ button on a page) has Export as Markdown and Export as PDF. PDF export runs in your browser with Typst; wiki links become plain text and embeds are dropped. The first export downloads the Typst compiler from a CDN, so it needs internet access. For server-side PDF, HTML, or slides, use Document export.
- Publish sets
published: trueand makes the page readable at/p/{path}. A published page’s button shows its view count, Copy public link, View published page, and Unpublish. Right-click a folder for Publish folder. See Publishing.
Spaces
With multiple spaces, a dropdown at the top of the sidebar lists each space with its file count. New Space creates one. Switching spaces closes open views and reloads the tree.Customize the UI
.kiwi/config.toml
Features
Features
Set a key under
[ui.features] to false to hide that part of the UI. edit = false hides New page, Edit, Restructure, and the More actions menu, which also removes the export items. These flags only hide UI; use auth scopes to block writes.Start page
Start page
welcome shows the welcome screen, recent lists recently opened pages, and dashboard opens the first of dashboard.md, pages/dashboard.md, or index.md. Any other value is treated as a page path.Themes
Themes
KiwiFS includes five themes: Kiwi (the default), Neutral, Ocean, Sunset, and Forest, each with light and dark variants. The header toggles light and dark mode. Set a theme for everyone with
PUT /api/kiwi/theme. theme_locked = true hides the toggle and blocks theme changes through the API. Add your own styles in .kiwi/custom.css.Related
Quickstart
Install and run KiwiFS.
Widgets
Diagrams, charts, and step-through widgets.
Wiki links
Link syntax and backlinks.
Refactor
Move and merge pages without breaking links.
Configuration
Every
[ui] key.