Skip to main content
File sources read a local file and turn each record into a markdown page. Every source also accepts the common flags: --prefix, --id-column, --columns, --limit, and --dry-run. The default --prefix is the file name without its extension.

Tabular files

Terminal
The first row is the header. Each following row becomes a page.
json and jsonl share one reader that detects the format from the first character, so either value works for either file.

File names

For JSON, JSONL, YAML, and Excel, an id or _id field becomes the file name. CSV rows use the row number unless you pass --id-column.

Example

Given this CSV:
people.csv
kiwifs import --from csv --file people.csv --id-column email writes people/jane@example.com.md:
people/jane@example.com.md

Keep only some fields

Terminal
Fields you don’t list are left out of the frontmatter.

BibTeX

Import a .bib reference file. Each entry becomes a page named after its citation key.
Terminal
KiwiFS maps common BibTeX fields to frontmatter: Other fields, such as doi, url, and abstract, are copied as-is.

Markdown folders

Copy an existing folder of markdown files into the knowledge base without rewriting their content.
Terminal
--path can be a single .md file or a directory. KiwiFS walks subdirectories, keeps each file’s frontmatter and body, and copies non-markdown files such as images next to them. To also convert Obsidian syntax, use --from obsidian instead.

Upload a file over REST

POST /api/kiwi/import/upload takes a multipart upload of up to 256 MB, so the file doesn’t need to be on the server. It accepts csv, json, jsonl, bibtex, and sqlite.
Terminal
The web UI import wizard uses this endpoint for files you pick from your computer.

From the API or an agent

CSV, JSON, and JSONL also work with POST /api/kiwi/import and the kiwi_import MCP tool. Both read the file path on the machine running KiwiFS.
kiwi_import

Import overview

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

Ingest documents

Convert PDF, DOCX, and PPTX files into pages.
Last modified on October 19, 2026