Skip to main content
Each row or document becomes a markdown page with its fields in frontmatter. Every source also accepts the common flags: --prefix, --id-column, --columns, --limit, and --dry-run.

SQL databases

Terminal
When you pass --table, KiwiFS detects the table’s primary key and uses it as the file name. With --query, set --prefix and --id-column yourself, because there is no table name or key to fall back on.
Terminal

MongoDB

Terminal
The document _id becomes the file name.

Firestore

Terminal
The CLI uses Application Default Credentials. Set GOOGLE_APPLICATION_CREDENTIALS or run inside GCP. Over REST you can instead send the service account JSON in the credentials field.

DynamoDB

Terminal
KiwiFS uses the default AWS credential chain (AWS_PROFILE, ~/.aws/credentials, or an IAM role). Set AWS_ENDPOINT_URL to point at DynamoDB Local or another compatible endpoint.

Redis

Terminal
Each matching key becomes one page, and the default prefix is redis. How the value maps to frontmatter depends on the key type: The key becomes the file name, with :, /, and spaces replaced by _. For example, article:42 becomes redis/article_42.md.

Elasticsearch

Terminal
KiwiFS scrolls through every document in the index with a match_all query. The document _id becomes the file name.

From the API or an agent

PostgreSQL, MySQL, SQLite, MongoDB, and Firestore are also available over REST and MCP. The request fields match the CLI flags in snake case.
Terminal
Response
A successful REST import of PostgreSQL, MySQL, MongoDB, or Firestore saves the connection and turns on hourly auto-sync. See Saved connections to change or pause it.

Import overview

Output format, common flags, and re-import rules.

Browse, preview, and sync

List tables and preview rows before importing.
Last modified on October 19, 2026