Query. Filter.
Transform
Markdown.
Slice and Filter
Map and Transform
Command-line Interface
What is mq?
mq is a command-line tool that processes Markdown using a syntax similar to jq. It's written in Rust, allowing you to easily slice, filter, map, and transform structured data.
Why mq?
mq makes working with Markdown files as easy as jq makes working with JSON. It's especially useful for:
LLM Workflows
Efficiently manipulate and process Markdown used in LLM prompts and outputs.
Documentation Management
Extract, transform, and organize content across multiple documentation files.
Batch Processing
Apply consistent transformations across multiple Markdown files with sub-millisecond execution.
LLM Input Generation
Generate structured Markdown content optimized for LLM consumption, since Markdown serves as the primary input format for most language models.
Content Analysis
Quickly extract specific sections or patterns from Markdown documents with precise node selection.
Since LLM inputs are primarily in Markdown format, mq provides efficient tools for generating and processing the structured Markdown content that LLMs require.
Features
A comprehensive set of primitives designed for deep structural manipulation of the web's most popular document format.
Slice and Filter
Extract specific parts of your Markdown documents with ease.
Map and Transform
Apply transformations to your Markdown content.
Command-line Interface
Simple and intuitive CLI for quick operations.
Extensibility
Easily extendable with custom functions.
Built-in Support
Filter and transform content with many built-in functions and selectors.
REPL Support
Interactive command-line REPL for testing and experimenting.
IDE Support
VSCode Extension and Language Server Protocol (LSP) support for custom function development.
Debugger
Experimental debugger (mq-dbg)
for inspecting and stepping through mq queries interactively.
External Subcommands
Extend mq with custom subcommands by placing executables
starting with mq- in
~/.mq/bin/.
Subcommands
mq can be extended with a variety of specialized subcommands to handle different workflows and data formats.
mq-conv
A powerful tool for converting various file formats (PDF, DOCX, XLSX, etc.) into clean, structured Markdown.
mq-crawler
A web crawler that extracts structured content from websites and outputs it directly in Markdown format.
mq-tui
A terminal-based Markdown viewer that renders content with syntax highlighting and proper formatting.
mq-check
A syntax and semantic checker for mq files to ensure your queries are correct and efficient.
mq-lsp
Language Server Protocol (LSP) implementation providing IDE features like completion and hover for mq queries.
mq-task
A terminal-based Markdown and code editor with real-time WYSIWYG rendering and integrated LSP support.
Custom Subcommands
You can easily extend mq by creating your own subcommands. Any
executable named
mq-<name> in your
~/.mq/bin/ or
PATH becomes accessible as
mq <name>.
Try it Live
Run mq queries directly in your browser.