#markdown #obsidian #sql #cli

bin+lib krafna

Krafna is a terminal-based alternative to Obsidian's Dataview plugin, allowing you to query your Markdown files using standard SQL syntax

3 releases

new 0.1.2 Feb 2, 2025
0.1.1 Feb 2, 2025
0.1.0 Feb 1, 2025

#420 in Text processing

Download history 212/week @ 2025-01-28

212 downloads per month

MIT license

95KB
2.5K SLoC

Krafna

Release and Publish

Krafna is a terminal-based alternative to Obsidian's Dataview plugin, allowing you to query your Markdown files using standard SQL syntax.

Features

  • Query Markdown files in a directory using SQL-like syntax
  • Support for frontmatter data extraction
  • Flexible output formats (TSV and JSON)
  • Compatible with Neovim plugin Perec

Installation

cargo install krafna

Homebrew

brew tap 7sedam7/krafna
brew install krafna

Usage

Basic Query

krafna "SELECT title, tags FROM FRONTMATTER_DATA('~/.notes')"

Find Files

krafna --find ~/.notes

Output as JSON

krafna "SELECT * FROM FRONTMATTER_DATA('~/.notes')" --json

Include Specific Fields

krafna "SELECT * FROM FRONTMATTER_DATA('~/.notes')" --include-fields title,tags

Syntax Differences from Dataview

  • Uses standard SQL syntax
  • Selection of "table" to query is done with FROM FRONTMATTER_DATA("<path>") function, that makes all md files within a row (their frontmatter data). Currently no other sources and no JOINs. I plan to add them later.
  • Not all Dataview features are implemented yet

Neovim Integration

Use with the Perec Neovim plugin for seamless integration.

Author

7sedam7

Dependencies

~8–18MB
~224K SLoC