Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kiwifs.com/llms.txt

Use this file to discover all available pages before exploring further.

KiwiFS can import data from third-party SaaS platforms, converting records into markdown pages.

Notion

Import pages from a Notion database.
kiwifs import --from notion \
  --prefix knowledge/ \
  --root ./knowledge
FlagDescription
--database-idNotion database ID (required for MCP)
--prefixPath prefix in KiwiFS
--limitMax records to import
--dry-runPreview without writing

Setup

  1. Create a Notion integration and copy the API key.
  2. Share your database with the integration.
  3. Set the NOTION_API_KEY environment variable.
export NOTION_API_KEY="ntn_..."
kiwifs import --from notion --root ./knowledge

MCP usage

{
  "tool": "kiwi_import",
  "arguments": {
    "from": "notion",
    "database_id": "abc123...",
    "prefix": "notion-pages/"
  }
}

Airtable

Import records from an Airtable base.
kiwifs import --from airtable \
  --prefix records/ \
  --root ./knowledge
FlagDescription
--base-idAirtable base ID (required for MCP)
--table-idAirtable table ID (required for MCP)
--prefixPath prefix in KiwiFS
--limitMax records to import

Setup

  1. Create a personal access token in Airtable.
  2. Set the AIRTABLE_API_KEY environment variable.
export AIRTABLE_API_KEY="pat..."
kiwifs import --from airtable --root ./knowledge

MCP usage

{
  "tool": "kiwi_import",
  "arguments": {
    "from": "airtable",
    "base_id": "app...",
    "table_id": "tbl...",
    "prefix": "airtable/"
  }
}

Re-import behavior

All SaaS imports are idempotent. KiwiFS uses _source_id in frontmatter to track which records have been imported. Re-running an import:
  • Skips records that haven’t changed
  • Updates records with new field values
  • Creates new records that weren’t imported before
Use --dry-run to preview changes before writing:
kiwifs import --from notion --dry-run
Last modified on May 4, 2026