Skip to main content
KiwiFS can import data from databases, files, and SaaS platforms — converting each row/record into a markdown page with structured frontmatter.
kiwifs import --from <source> [options] --root ./knowledge

Supported sources

PostgreSQL

--from postgres

MySQL

--from mysql

SQLite

--from sqlite

MongoDB

--from mongodb

CSV

--from csv

JSON

--from json

YAML

--from yaml

Excel

--from excel

Notion

--from notion

Airtable

--from airtable

Google Sheets

--from gsheets

Firestore

--from firestore
Plus: JSONL, Obsidian vaults, Confluence exports, DynamoDB, Redis, Elasticsearch.

Key features

  • Idempotent — re-importing the same data skips unchanged records
  • Column filtering--columns "name,email,status" to include only specific fields
  • Dry run--dry-run to preview what would be imported
  • Limit--limit 100 to import a subset
  • Custom queries--query "SELECT * FROM users WHERE active = true"
For HTTP APIs that browse schemas, preview rows, and manage saved connections, see Browse, preview, and saved connections and Import and export. For Airbyte Docker and Cloud sync, see Airbyte import.

How it works

Each record becomes a markdown file with frontmatter:
---
_imported_at: "2026-04-25T18:46:15Z"
_source: users
_source_id: pg:users:42
name: Jane Doe
email: jane@example.com
role: admin
---

# Jane Doe

> Auto-imported from users (row pg:users:42)
The _source_id field enables idempotent re-imports — KiwiFS compares field values and skips records that haven’t changed.
Last modified on May 22, 2026