Skip to content

mdfu

Search, rank, and browse your Markdown notes from the terminal.

mdfu is a fast, single static Go binary for fuzzy-finding Markdown notes — by body free text, frontmatter values as free text, and attribute qualifiers. It understands OKF v0.1/v0.2 and Portent/Tolaria frontmatter through one unified normalized model.

Why mdfu?

  • One box: bare words fuzzy-match, key:value hard-filters, AND-combined.
  • Two modes: interactive TUI picker by default, pipeable filter mode (mdfu <query>, fzf-compatible).
  • No daemon, no persistent index, no cgo by default.
scan → parse → query → search → output/tui

Requires Go 1.25+.

Terminal window
go install github.com/elicore/mdfu/cmd/mdfu@latest
# or
git clone https://github.com/elicore/mdfu && cd mdfu && go build -o mdfu ./cmd/mdfu

Run it inside your notes folder — the root defaults to .:

Terminal window
cd testdata
mdfu
mdfu "type:Task"
mdfu "status:Draft"

Three filter examples to try first:

Terminal window
mdfu "type:Task" # → portent-task.md
mdfu "tag:launch" # → portent-task.md
mdfu "author:bob" # → generic.md (custom frontmatter)

Query Syntax

Single-box language: bare words, key:value filters, dates. Start with Query Syntax.

Frontmatter Model

The unified Document contract and normalization rules. See Frontmatter Model.

Search & Ranking

How hard-filter + fuzzy scoring + title boost work. See Search & Ranking.

CLI Reference

Flags, formats, exit codes, examples. See CLI.

Roadmap

Active perf tasks T1–T8. See Roadmap.