A terminal UI for browsing, searching, and previewing qmd document collections. Built with Bun and @opentui/core.
- Bun runtime
- qmd CLI installed and configured with at least one collection
- A Chromium-based browser for live preview, detected automatically in this order:
google-chrome,google-chrome-stable,chromium,chromium-browser,brave,brave-browser
The qmd MCP server must be running before starting lazyqmd:
qmd mcp --httpBy default lazyqmd connects to port 8181. This can be changed in the configuration.
Global install (no source checkout needed):
bun install -g github:alexzeitler/lazyqmdThen run:
lazyqmdgit clone https://github.com/alexzeitler/lazyqmd.git
cd lazyqmd
bun install
bun src/index.ts| Key | Action |
|---|---|
j/k or arrows |
Navigate collections |
Enter |
Open collection |
Tab |
Switch focus between sidebar and main panel |
/ or s |
Open search |
a |
Add collection |
d |
Delete collection |
r |
Rename collection |
e |
Create embeddings |
u |
Re-index all collections (qmd update) |
q |
Quit |
| Key | Action |
|---|---|
Enter |
Execute search / Open document |
Tab |
Toggle focus between input and results |
Ctrl+T |
Cycle search mode (Search / Vector / Query) |
Esc |
Back to collections |
Search scope follows the sidebar selection — select "All" to search across all collections, or select a specific collection to scope the search.
| Key | Action |
|---|---|
j/k |
Scroll |
e |
Open in $EDITOR |
p |
Open live preview in Chrome |
Esc |
Back |
Pressing p in document view opens a rendered HTML preview in Chrome. The preview:
- Renders Markdown with frontmatter metadata
- Displays images and assets from the source directory
- Auto-reloads when the source file is saved
Config file: ~/.config/lazyqmd/options.json
{
"mcpPort": 8181
}

