Notion
Import the rows of a Notion database. Each row’s properties become frontmatter. The page body is not imported.1
Create an integration
Create a Notion integration and copy its secret.
2
Share the database
Open the database in Notion and add the integration as a connection.
3
Run the import
Terminal
The default prefix is
notion. A row’s title or Name property becomes its file name.
Airtable
Import the records of one Airtable table.Terminal
Create the token on the personal access tokens page. A record’s
Name field becomes its file name.
Notion and Airtable over REST and MCP
Both sources work withPOST /api/kiwi/import and the kiwi_import MCP tool. Over REST, pass the token in api_key or set the environment variable on the server.
- REST
- MCP
Terminal
Over REST, KiwiFS routes Notion and Airtable through the Airbyte connector when Docker or an Airbyte Cloud key is available, and uses the built-in connector otherwise. Add
"via": "builtin" to always use the built-in connector.Google Sheets
Import the rows of one sheet. The first row is the header.Terminal
Share the spreadsheet with the service account’s email address. Google Sheets is CLI-only.
Obsidian
Import an Obsidian vault and convert its syntax to KiwiFS conventions.Terminal
During the import, KiwiFS:
- Keeps each note’s frontmatter and folder structure.
- Rewrites wiki links to lowercase, hyphenated targets:
[[Page Name|Alias]]becomes[[page-name|Alias]]. - Rewrites embeds to markdown images:
![[diagram.png]]becomes. - Copies images, PDFs, and media into an
assets/folder. - Skips
.obsidian/and.trash/.
POST /api/kiwi/import both support Obsidian:
Terminal
Confluence
Import a space from an HTML export, or fetch it live from Confluence Cloud. Both modes keep the page tree, convert common macros, and import attachments.- HTML export
- Confluence Cloud API
Export the space as HTML from Confluence, unzip it, and point The default prefix is the export folder’s name.
--path at the folder.Terminal
Confluence import is CLI-only.