--prefix, --id-column, --columns, --limit, and --dry-run. The default --prefix is the file name without its extension.
Tabular files
- CSV
- JSON
- JSONL
- YAML
- Excel
Terminal
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, anid 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
BibTeX
Import a.bib reference file. Each entry becomes a page named after its citation key.
Terminal
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 withPOST /api/kiwi/import and the kiwi_import MCP tool. Both read the file path on the machine running KiwiFS.
kiwi_import