freshcrate

mq

A jq-like Markdown query language for command-line processing

Description

A jq-like Markdown query language for command-line processing

README

mq

ci audit crates.io codecov codspeed badgemq 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.

demo

Important

This project is under active development.

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
  • LLM Input Generation: Generate structured Markdown content optimized for LLM consumption, since Markdown serves as the primary input format for most language models
  • Documentation Management: Extract, transform, and organize content across multiple documentation files
  • Content Analysis: Quickly extract specific sections or patterns from Markdown documents
  • Batch Processing: Apply consistent transformations across multiple Markdown files

Since LLM inputs are primarily in Markdown format, mq provides efficient tools for generating and processing the structured Markdown content that LLMs require.

Features

  • 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: Includes an experimental debugger (mq-dbg) for inspecting and stepping through mq queries interactively.
  • External Subcommands: Extend mq with custom subcommands by placing executable files starting with mq- in ~/.local/bin/.

Installation

Quick Install

curl -sSL https://mqlang.org/install.sh | bash

The installer will:

  • Download the latest mq binary for your platform
  • Install it to ~/.local/bin/
  • Update your shell profile to add mq to your PATH

Cargo

# Install from crates.io
cargo install mq-run
# Install from Github
cargo install --git https://github.com/harehare/mq.git mq-run --tag v0.5.26
# Latest Development Version
cargo install --git https://github.com/harehare/mq.git mq-run --bin mq
# Install the debugger
cargo install --git https://github.com/harehare/mq.git mq-run --bin mq-dbg --features="debugger"
# Install using binstall
cargo binstall mq-run@0.5.26

Binaries

You can download pre-built binaries from the GitHub releases page:

# macOS (Apple Silicon)
curl -L https://github.com/harehare/mq/releases/download/v0.5.26/mq-aarch64-apple-darwin -o /usr/local/bin/mq && chmod +x /usr/local/bin/mq
# Linux x86_64
curl -L https://github.com/harehare/mq/releases/download/v0.5.26/mq-x86_64-unknown-linux-gnu -o /usr/local/bin/mq && chmod +x /usr/local/bin/mq
# Linux arm64
curl -L https://github.com/harehare/mq/releases/download/v0.5.26/mq-aarch64-unknown-linux-gnu -o /usr/local/bin/mq && chmod +x /usr/local/bin/mq
# Windows (PowerShell)
Invoke-WebRequest -Uri https://github.com/harehare/mq/releases/download/v0.5.26/mq-x86_64-pc-windows-msvc.exe -OutFile "$env:USERPROFILE\bin\mq.exe"

Homebrew

# Using Homebrew (macOS and Linux)
brew install mq

Docker

$ docker run --rm ghcr.io/harehare/mq:0.5.26

Visual Studio Code Extension

You can install the VSCode extension from the Visual Studio Marketplace.

For VS Code compatible editors, it is also available on the Open VSX Registry.

Neovim

You can install the Neovim plugin by following the instructions in the mq.nvim README.

Zed

You can install the Zed extension by following the instructions in the zed-mq README.

GitHub Actions

You can use mq in your GitHub Actions workflows with the Setup mq action:

steps:
  - uses: actions/checkout@v6
  - uses: harehare/setup-mq@v1
  - run: mq '.code' README.md

Web

Playground

The Playground lets you run mq queries in the browser with no install.

Web API

You can try mq without installing anything via the hosted REST API at https://api.mqlang.org.

The interactive API documentation is available at Swagger UI.

mq-web (npm)

mq-web is the official WebAssembly build for browser.

Language Bindings

Language bindings are available for Elixir, Python, Ruby, Java, and Go. See the Language Bindings documentation for details.

Usage

For more detailed usage and examples, refer to the documentation.

For a comprehensive collection of practical examples, see the Example Guide.

Basic usage

Complete list of options (click to show)
Usage: mq [OPTIONS] [QUERY OR FILE] [FILES]... [COMMAND]

Commands:
  repl  Start a REPL session for interactive query execution
  fmt   Format mq files based on specified formatting options
  help  Print this message or the help of the given subcommand(s)

Arguments:
  [QUERY OR FILE]
  [FILES]...

Options:
  -A, --aggregate
          Aggregate all input files/content into a single array
  -f, --from-file
          load filter from the file
  -I, --input-format <INPUT_FORMAT>
          Set input format [possible values: markdown, mdx, html, text, null, raw]
  -L, --directory <MODULE_DIRECTORIES>
          Search modules from the directory
  -M, --module-names <MODULE_NAMES>
          Load additional modules from specified files
  -m, --import-module-names <IMPORT_MODULE_NAMES>
          Import modules by name, making them available as `name::fn()` in queries
      --args <NAME> <VALUE>
          Sets string that can be referenced at runtime
      --rawfile <NAME> <FILE>
          Sets file contents that can be referenced at runtime
      --stream
          Enable streaming mode for processing large files line by line
  -F, --output-format <OUTPUT_FORMAT>
          Set output format [default: markdown] [possible values: markdown, html, text, json, none]
  -U, --update
          Update the input markdown (aliases: -i, --in-place, --inplace)
      --unbuffered
          Unbuffered output
      --list-style <LIST_STYLE>
          Set the list style for markdown output [default: dash] [possible values: dash, plus, star]
      --link-title-style <LINK_TITLE_STYLE>
          Set the link title surround style for markdown output [default: double] [possible values: double, single, paren]
      --link-url-style <LINK_URL_STYLE>
          Set the link URL surround style for markdown links [default: none] [possible values: none, angle]
  -S, --separator <QUERY>
          Specify a query to insert between files as a separator
  -o, --output <FILE>
          Output to the specified file
  -C, --color-output
          Colorize markdown output
      --list
          List all available subcommands (built-in and external)
  -P <PARALLEL_THRESHOLD>
          Number of files to process before switching to parallel processing [default: 10]
  -h, --help
          Print help
  -V, --version
          Print version

# Examples:

## To filter markdown nodes:
mq 'query' file.md

## To read query from file:
mq -f 'file' file.md

## To start a REPL session:
mq repl

## To format mq file:
mq fmt --check file.mq

Here's a basic example of how to use mq:

# Extract all headings from a document
mq '.h' README.md

# Extract code blocks containing "name"
mq '.code | select(contains("name"))' example.md

# Extract code values from code blocks
mq -A 'pluck(.code.value)' example.md

# Extract language names from code blocks
mq '.code.lang' documentation.md

# Extract URLs from all links
mq '.link.url' README.md

# Filter table cells containing "name"
mq '.[][] | select(contains("name"))' data.md

# Select lists or headers containing "name"
mq 'select(.[] || .h) | select(contains("name"))' docs.md

# Exclude JavaScript code blocks
mq '.code | select(.code.lang != "js")' examples.md

# Convert CSV to markdown table
mq 'include "csv" | csv_parse(true) | csv_to_markdown_table()' example.csv

# Extract a section by title
mq -A 'section::section("Installation")' README.md

# Filter sections by heading level (scalar or range)
mq -A 'section::sections() | section::by_level(2)' README.md
mq -A 'section::sections() | section::by_level(1..2)' README.md

Composing Workflows with Subcommands

mq subcommands are designed to work together via Unix pipes.

# Convert Excel report to Markdown, then extract all headings
mq conv report.xlsx | mq '.h'

# Convert a Word document and extract a specific section
mq conv document.docx | mq -A 'section::section("Summary")'

# Convert and view Markdown directly in the terminal
mq conv slides.pdf | mq view

Run mq --list to see all available subcommands (built-in and external).

External Subcommands

You can extend mq with custom subcommands by placing executable files starting with mq- in ~/.local/bin/ or anywhere in your PATH. This makes it easy to add your own tools and workflows to mq without modifying the core binary.

See the External Subcommands documentation for the full list and details.

Support

License

This project is licensed under the MIT License. See the LICENSE file for details.

Release History

VersionChangesUrgencyDate
v0.5.26## ✨ Features * ✨ feat(builtin): add from_html builtin function by @harehare in https://github.com/harehare/mq/pull/1556 * ✨ feat(yaml): add to_front_matter function and update YAML tests by @harehare in https://github.com/harehare/mq/pull/1561 * ✨ feat(mq-lang): add _diff builtin and enhance assert_eq with colored diff output by @harehare in https://github.com/harehare/mq/pull/1567 * ✨ feat(mq-test): add standalone test runner binary by @harehare in https://github.com/harehare/mq/pull/157Medium4/14/2026
v0.5.25## What's Changed ### ✨ New Features * ✨ feat(toml): replace mq-based TOML parser with native Rust implementation by @harehare in https://github.com/harehare/mq/pull/1524 * ✨ feat(playground): add settings dialog with vim mode and theme support by @harehare in https://github.com/harehare/mq/pull/1528 * ✨ feat(playground): add babel plugin for React compiler support by @harehare in https://github.com/harehare/mq/pull/1529 * ✨ feat(mq-lang): Add task selector by @harehare in https://githuMedium4/6/2026
v0.5.24## What's Changed * ⚡ perf(web-api): offload CPU-bound handlers to blocking thread pool by @harehare in https://github.com/harehare/mq/pull/1495 * ✨ feat(lang): support negative index for get on array, string, and markdown by @harehare in https://github.com/harehare/mq/pull/1496 * ✨ feat(vscode): add GitHub Releases binary download as install option by @harehare in https://github.com/harehare/mq/pull/1508 * ✨ feat(web-api): add API versioning and health check endpoint by @harehare in httpMedium3/28/2026
v0.5.23## What's Changed * ✨ feat(mq-lang): replace custom YAML parser with yaml-rust2 native implementation by @harehare in https://github.com/harehare/mq/pull/1486 * ✨ feat(mq-lang): support bracket slice on QualifiedAccess and [:N] syntax by @harehare in https://github.com/harehare/mq/pull/1487 * ✨ feat(section): improve section module with bodies, by_level, and auto-expand by @harehare in https://github.com/harehare/mq/pull/1488 * ✨ feat(cli): auto-expand table dicts to markdown nodes in CLI Medium3/24/2026
v0.5.21## What's Changed * ✨ feat(mq-check): add dead code detection and improve type inference by @harehare in https://github.com/harehare/mq/pull/1481 * ✨ feat(crawler): add headless_wait option for Chromium mode by @harehare in https://github.com/harehare/mq/pull/1473 * ✨ feat(mq-check): add slugify and percentile functions to builtin registry by @harehare in https://github.com/harehare/mq/pull/1474 * ✨ feat(lang): convert array to newline-separated string for markdown output by @harehare inLow3/22/2026
v0.5.20## What's Changed ### ✨ Features * **feat(playground):** add type checking and inlay hints support by @harehare in https://github.com/harehare/mq/pull/1398 * **feat(lsp):** filter type errors to only those originating from the current source by @harehare in https://github.com/harehare/mq/pull/1445 * **feat:** add TOON module support and implement stringify/parse functions by @harehare in https://github.com/harehare/mq/pull/1408 * **feat:** improve type error reporting with full ranges aLow3/18/2026
v0.5.19## What's Changed * ✨ feat(mq-web): add inlayHints API support by @harehare in https://github.com/harehare/mq/pull/1432 * 🐛 fix: bracket-based selector syntax (.[n], .[n][m]) by @harehare in https://github.com/harehare/mq/pull/1430 * 🐛 fix(markdown): filter empty values in Fragment render, join with newline by @harehare in https://github.com/harehare/mq/pull/1431 * 🐛 fix(scripts): add mq-check version bump in bump_version.mq by @harehare in https://github.com/harehare/mq/pull/1433 Low3/12/2026
v0.5.18## What's Changed ### Features & Improvements * feat(typechecker): support row polymorphism for dicts via Record type by @harehare in https://github.com/harehare/mq/pull/1364 * ✨ feat: add type predicate-based narrowing for union types in if/elif branches by @harehare in https://github.com/harehare/mq/pull/1367 * ✨ feat(strict-array): implement strict array mode to enforce homogeneous arrays and add related tests by @harehare in https://github.com/harehare/mq/pull/1368 * ✨ Implement tupLow3/11/2026
v0.5.17## What's Changed * ✨ feat: add slugify function by @harehare in https://github.com/harehare/mq/pull/1357 * ✨ feat: add typechecker crate by @harehare in https://github.com/harehare/mq/pull/850 * ✨ feat(mq-lang): add =~ regex match operator and is_regex_match builtin by @harehare in https://github.com/harehare/mq/pull/1305 * ✨ feat(lang): add left shift and right shift token kinds and operations by @harehare in https://github.com/harehare/mq/pull/1315 * ✨ feat(lang): support array operandLow2/28/2026
v0.5.16## What's Changed * ✨ feat(mq-lang): add ltrim and rtrim builtins for string/markdown whitespace trimming by @harehare in https://github.com/harehare/mq/pull/1281 * ✨ feat(section): Add section operations and examples by @harehare in https://github.com/harehare/mq/pull/1283 * ✨ feat(playground): show execution time in footer by @harehare in https://github.com/harehare/mq/pull/1284 * ✨ feat(table): add set_align and test for table alignment by @harehare in https://github.com/harehare/mq/pulLow2/19/2026
v0.5.15## What's Changed ### Features * ✨ feat: extract mq-check and mq-docs into standalone crates by @harehare in https://github.com/harehare/mq/pull/1262 * ✨ feat(cli): Add executable file check for mq-* subcommands by @harehare in https://github.com/harehare/mq/pull/1265 * ✨ feat(mq-lang): add capture builtin function for regex named group extraction by @harehare in https://github.com/harehare/mq/pull/1272 ### Refactoring * ♻️ refactor(vscode): migrate linter from ESLint to oxlint by Low2/14/2026
v0.5.14### Features - feat(lsp): add file-io feature to mq-lang dependency by @harehare in https://github.com/harehare/mq/pull/1205 - feat: support variadic function arguments and enhance error handling by @harehare in https://github.com/harehare/mq/pull/1214 - feat: add Zed editor extension by @harehare in https://github.com/harehare/mq/pull/1217 - feat(lsp): improve goto definition to navigate to correct source files by @harehare in https://github.com/harehare/mq/pull/1221 - feat(lang): add taLow2/10/2026
v0.5.13## What's Changed ### ✨Features * ✨ feat(editors): add compound assignment operators to syntax highlighting by @harehare in https://github.com/harehare/mq/pull/1199 * Add DEPRECATED semantic token modifier for strikethrough support by @Copilot in https://github.com/harehare/mq/pull/1152 * ✨ feat(mq-lang): add lpad and rpad string padding functions by @harehare in https://github.com/harehare/mq/pull/1153 * ✨ feat(playground): add include keyword to syntax highlighting by @harehare in httLow2/2/2026
v0.5.12## What's Changed ### ✨ Features - Add value support to `break` statement ([#1104](https://github.com/harehare/mq/pull/1104)) - Implement `sections` function to split markdown nodes into sections ([#1109](https://github.com/harehare/mq/pull/1109)) - Add compound assignment operators ([#1122](https://github.com/harehare/mq/pull/1122)) - Add update operator for Markdown node ([#1127](https://github.com/harehare/mq/pull/1127)) - Add assignment operators section to documentation ([#1129](hLow1/25/2026
v0.5.11## ✨ Features - feat(macro): add AST argument extraction for macro improvements [#1047](https://github.com/harehare/mq/pull/1047) - feat: add inspect function for value inspection and string representation [#1075](https://github.com/harehare/mq/pull/1075) ## 🐛 Bug Fixes - 🐛 fix(mq-lang): fix is_mutable check for scoped variables [#1074](https://github.com/harehare/mq/pull/1074) - 💚 Fix the workflow for release [#1097](https://github.com/harehare/mq/pull/1097) ## ♻️ Refactoring Low1/16/2026
v0.5.10## What's Changed ### ✨ Features * ✨ feat(lang): add 8 useful utility functions and macros by @harehare in https://github.com/harehare/mq/pull/1043 * ✨ feat(repl): add /edit command to open external editor by @harehare in https://github.com/harehare/mq/pull/1044 * ✨ feat(lang): add do...end block syntax for while, foreach, and match by @harehare in https://github.com/harehare/mq/pull/1045 * ✨ feat(lang): add support for default parameter values in functions by @harehare in https://githuLow1/9/2026
v0.5.9## ✨ Features * feat: add macro support to mq-lang by @harehare in https://github.com/harehare/mq/pull/995 * feat(formatter): improve macro formatting and convert breakpoint to macro by @harehare in https://github.com/harehare/mq/pull/1022 * feat(formatter): unify MacroCall and Call formatting handling by @harehare in https://github.com/harehare/mq/pull/1023 * feat(cli): add format option to docs command for flexible output by @harehare in https://github.com/harehare/mq/pull/1024 * feat(mLow12/30/2025
v0.5.8## What's Changed * build(deps): bump tracing from 0.1.43 to 0.1.44 by @dependabot[bot] in https://github.com/harehare/mq/pull/1001 * build(deps-dev): bump oxlint from 1.33.0 to 1.34.0 in /packages/mq-playground by @dependabot[bot] in https://github.com/harehare/mq/pull/1003 * build(deps-dev): bump oxlint from 1.33.0 to 1.34.0 in /packages/mq-web by @dependabot[bot] in https://github.com/harehare/mq/pull/1002 * 📝 Update docs by @harehare in https://github.com/harehare/mq/pull/1004 * 🐛 FiLow12/20/2025
v0.5.7## What's Changed ### 🚀 Features * ✨ feat(wasm): Implement toHtml function for converting Markdown to HTML by @harehare in https://github.com/harehare/mq/pull/977 * ✨ feat(web-api): Add HTTP request/response latency logging by @harehare in https://github.com/harehare/mq/pull/993 ### 🐛 Bug Fixes * 🐛 fix(formatter): Add missing Assign node handling in formatter by @harehare in https://github.com/harehare/mq/pull/973 * 🐛 fix(lang): Implement native short-circuit evaluation for logLow12/18/2025
v0.5.6## 🚀 Features * ✨ feat(lexer): add support for escaped braces in interpolated strings by @harehare in https://github.com/harehare/mq/pull/929 * ✨ feat(lang): modernize syntax and add MDX support by @harehare in https://github.com/harehare/mq/pull/931 * ✨ feat(lang): Add section module for Markdown section manipulation by @harehare in https://github.com/harehare/mq/pull/918 * ✨ feat(web): add HTML to Markdown conversion API by @harehare in https://github.com/harehare/mq/pull/932 * ✨ feat(Low12/13/2025
v0.5.5## What's Changed * 📝 docs: Add documentation for new built-in functions and cleanup formatting by @harehare in https://github.com/harehare/mq/pull/914 * ✅ test(parser): Fix test expectation for call with selector attribute by @harehare in https://github.com/harehare/mq/pull/915 * build(deps-dev): bump esbuild from 0.27.0 to 0.27.1 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/917 * ✨ feat(repl): Add clipboard feature flag with platform-specific support by Low12/5/2025
v0.5.4## What's Changed ### ✨ feat https://github.com/harehare/mq/pull/879 - ✨ feat(lang): support full expressions in interpolated strings by @harehare in https://github.com/harehare/mq/pull/884 - ✨ feat(builtin): add set_variable and get_variable built-in functions with tests by @harehare in https://github.com/harehare/mq/pull/889 - ✨ feat(editors): add Neovim plugin for mq by @harehare in https://github.com/harehare/mq/pull/881 - ✨ feat(mq-lang, mq-markdown): Add table header selector supLow12/3/2025
v0.5.3## What's Changed * 📝 docs: update crate-level documentation by @harehare in https://github.com/harehare/mq/pull/870 * ♻️ refactor: rename mq-cli crate to mq-run by @harehare in https://github.com/harehare/mq/pull/871 * ✨ feat(mq-run): add check command for syntax validation by @harehare in https://github.com/harehare/mq/pull/873 * ♻️ refactor: move fuzz directory and improve range safety by @harehare in https://github.com/harehare/mq/pull/872 * 📝 docs(install): improve cargo installationLow11/24/2025
v0.5.2## What's Changed * ✨ feat(cli): add aliases for --update flag by @harehare in https://github.com/harehare/mq/pull/835 * ♻️ refactor(wasm): improve OPFS error handling with graceful fallback by @harehare in https://github.com/harehare/mq/pull/836 * 🐛 Fix handling of leading trivia in formatter to preserve indentation after newlines by @harehare in https://github.com/harehare/mq/pull/837 * 🐛 Fix handling of lending trivia in formatter by @harehare in https://github.com/harehare/mq/pull/838 Low11/22/2025
v0.5.1## What's Changed * build(deps): bump rmcp from 0.8.3 to 0.8.4 by @dependabot[bot] in https://github.com/harehare/mq/pull/810 * build(deps-dev): bump eslint from 9.39.0 to 9.39.1 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/811 * 🐛 fix(parser): Allow expressions in foreach iterable position by @harehare in https://github.com/harehare/mq/pull/813 * ♻️ refactor(lang): Simplify Break and Continue error variants by removing token parameters by @harehare in httpsLow11/11/2025
v0.5.0## What's Changed * 🐛 fix(formatter): Fix comment indentation logic to check output newlines by @harehare in https://github.com/harehare/mq/pull/793 * 🐛 fix(formatter): Fix backslash escaping in interpolated strings by @harehare in https://github.com/harehare/mq/pull/794 * build(deps): bump proptest from 1.8.0 to 1.9.0 by @dependabot[bot] in https://github.com/harehare/mq/pull/796 * build(deps): bump wasm-bindgen-test from 0.3.54 to 0.3.55 by @dependabot[bot] in https://github.com/harehareLow11/4/2025
v0.4.3## What's Changed * 🐛 fix(formatter,parser): improve dict entry formatting consistency by @harehare in https://github.com/harehare/mq/pull/764 * build(deps): bump pyo3 from 0.26.0 to 0.27.0 by @dependabot[bot] in https://github.com/harehare/mq/pull/765 * build(deps-dev): bump @types/node from 24.8.1 to 24.9.0 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/766 * build(deps): bump syn from 2.0.106 to 2.0.107 by @dependabot[bot] in https://github.com/harehare/mq/Low10/25/2025
v0.4.2## What's Changed * ⚡ perf(parser): optimize token arena allocation by @harehare in https://github.com/harehare/mq/pull/760 * ✨ feat(debugger): improve error handling by @harehare in https://github.com/harehare/mq/pull/761 * ♻️ refactor: remove mq-tui crate from project by @harehare in https://github.com/harehare/mq/pull/762 * ✨ feat(build): upgrade to Rust 1.90 and adopt let-chaining syntax by @harehare in https://github.com/harehare/mq/pull/763 **Full Changelog**: https://github.com/Low10/20/2025
v0.4.1## What's Changed * build(deps-dev): bump esbuild from 0.25.10 to 0.25.11 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/744 * build(deps): bump tokio from 1.47.2 to 1.48.0 by @dependabot[bot] in https://github.com/harehare/mq/pull/745 * ✨ feat(parser): add dedicated dict key validation method by @harehare in https://github.com/harehare/mq/pull/746 * build(deps-dev): bump @types/node from 24.7.2 to 24.8.0 in /editors/vscode by @dependabot[bot] in https://githubLow10/18/2025
v0.4.0## What's Changed * ✨ feat(cli): add aggregate option to combine input files into array by @harehare in https://github.com/harehare/mq/pull/700 * 🐛 fix(formatter): improve block indentation handling by @harehare in https://github.com/harehare/mq/pull/702 * 🐛 fix(lsp): handle empty text input in on_change method by @harehare in https://github.com/harehare/mq/pull/703 * ✨ feat(lang): add optional error handling with ? operator by @harehare in https://github.com/harehare/mq/pull/701 * 🐛 fixLow10/15/2025
v0.3.0## What's Changed * build(deps): bump tempfile from 3.20.0 to 3.23.0 by @dependabot[bot] in https://github.com/harehare/mq/pull/658 * build(deps): bump libc from 0.2.175 to 0.2.176 by @dependabot[bot] in https://github.com/harehare/mq/pull/657 * 📝 docs: standardize parameter order in fuzzy function documentation by @harehare in https://github.com/harehare/mq/pull/659 * ✅ test: improve DAP test coverage and refactor test configuration by @harehare in https://github.com/harehare/mq/pull/660 Low10/4/2025
v0.2.23## What's Changed * ♻️ refactor(test): reorganize test modules to crates/mq-lang/modules by @harehare in https://github.com/harehare/mq/pull/622 * build(deps-dev): bump @types/node from 24.3.1 to 24.3.2 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/623 * ♻️ refactor: migrate from CompactString to SmolStr for better performance by @harehare in https://github.com/harehare/mq/pull/624 * 🐛 fix(formatter): add proper spacing before end keyword by @harehare in httpLow9/23/2025
v0.2.22## What's Changed * build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.40.0 to 8.42.0 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/596 * build(deps): bump clap from 4.5.46 to 4.5.47 by @dependabot[bot] in https://github.com/harehare/mq/pull/595 * build(deps): bump log from 0.4.27 to 0.4.28 by @dependabot[bot] in https://github.com/harehare/mq/pull/598 * ✨ feat(cli): add streaming mode for processing large files line by line by @harehare in https://Low9/12/2025
v0.2.21## What's Changed * 📦 build: integrate cargo-nextest for improved test execution by @harehare in https://github.com/harehare/mq/pull/584 * build(deps): bump pyo3 from 0.25.1 to 0.26.0 by @dependabot[bot] in https://github.com/harehare/mq/pull/587 * build(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 by @dependabot[bot] in https://github.com/harehare/mq/pull/586 * ⚡ perf(optimizer): add function inlining optimization by @harehare in https://github.com/harehare/mq/pull/583 * ✨ feat(toLow9/3/2025
v0.2.20- 🐛 fix: return the correct runtime value in the Evaluator for Let expressions **Full Changelog**: https://github.com/harehare/mq/compare/v0.2.19...v0.2.20Low8/28/2025
v0.2.19## What's Changed * ✅ test(integration): improve test case naming and cleanup by @harehare in https://github.com/harehare/mq/pull/548 * build(deps): bump syn from 2.0.105 to 2.0.106 by @dependabot[bot] in https://github.com/harehare/mq/pull/553 * build(deps): bump thiserror from 2.0.14 to 2.0.15 by @dependabot[bot] in https://github.com/harehare/mq/pull/552 * build(deps): bump rustyline from 17.0.0 to 17.0.1 by @dependabot[bot] in https://github.com/harehare/mq/pull/551 * build(deps-dev): bLow8/27/2025
v0.2.18## What's Changed * build(deps-dev): bump esbuild from 0.25.8 to 0.25.9 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/534 * build(deps): bump syn from 2.0.104 to 2.0.105 by @dependabot[bot] in https://github.com/harehare/mq/pull/532 * build(deps): bump rayon from 1.10.0 to 1.11.0 by @dependabot[bot] in https://github.com/harehare/mq/pull/533 * ✨ feat(test): add mq script testing to justfile by @harehare in https://github.com/harehare/mq/pull/535 * ✨ feat(langLow8/17/2025
v0.2.17## What's Changed * Feat/add to array builtin function by @harehare in https://github.com/harehare/mq/pull/506 * build(deps): bump rmcp from 0.4.0 to 0.4.1 by @dependabot[bot] in https://github.com/harehare/mq/pull/507 * build(deps-dev): bump eslint from 9.32.0 to 9.33.0 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/511 * build(deps-dev): bump @types/node from 24.2.0 to 24.2.1 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/510 *Low8/13/2025
v0.2.16## What's Changed * 🐛 fix(playground): improve multiline string escape handling in Monaco syntax highlighting by @harehare in https://github.com/harehare/mq/pull/480 * build(deps): bump rmcp from 0.3.1 to 0.3.2 by @dependabot[bot] in https://github.com/harehare/mq/pull/482 * build(deps-dev): bump typescript from 5.8.3 to 5.9.2 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/481 * ✨ feat(eval): add support for environment variable interpolation in strings by @haLow8/7/2025
v0.2.15## What's Changed * ♻️ refactor(lang): Remove nth function and integrate functionality into get by @harehare in https://github.com/harehare/mq/pull/459 * Refactor/remove unnecessary functions by @harehare in https://github.com/harehare/mq/pull/460 * ✨ feat(lang): Add regex escape sequence support in string literals by @harehare in https://github.com/harehare/mq/pull/461 * Fix literal parsing order in lexer by @harehare in https://github.com/harehare/mq/pull/462 * Feat/improve formatter condLow7/31/2025
v0.2.14## What's Changed * build(deps-dev): bump @typescript-eslint/eslint-plugin from 8.37.0 to 8.38.0 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/441 * build(deps-dev): bump esbuild from 0.25.6 to 0.25.8 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/442 * build(deps-dev): bump @types/node from 24.0.14 to 24.1.0 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/443 * build(deps): bump strum from 0.27.1 toLow7/26/2025
v0.2.13## What's Changed * ✨ feat(lang): enhance end keyword support with formatting and tooling by @harehare in https://github.com/harehare/mq/pull/439 * feat(vscode): add CodeLens to run mq queries from the editor by @harehare in https://github.com/harehare/mq/pull/440 **Full Changelog**: https://github.com/harehare/mq/compare/v0.2.12...v0.2.13Low7/22/2025
v0.2.12## What's Changed * ♻️ refactor(mq-lang): remove unused Rule110 benchmark function by @harehare in https://github.com/harehare/mq/pull/432 * ✨ feat(lexer): add hex escape sequence support for string literals by @harehare in https://github.com/harehare/mq/pull/431 * ♻️ refactor(cli): use Cargo environment variables for author and version by @harehare in https://github.com/harehare/mq/pull/433 * ♻️ refactor(formatter): improve string escape handling with hex format support by @harehare in httpLow7/21/2025
v0.2.11## What's Changed * build(deps-dev): bump @types/node from 24.0.12 to 24.0.14 in /editors/vscode by @dependabot[bot] in https://github.com/harehare/mq/pull/417 * ♻️ Rename is_true method to is_truthy by @harehare in https://github.com/harehare/mq/pull/418 * 🐛 fix(parser): improve binary operation parsing to handle multiple consecutive operators by @harehare in https://github.com/harehare/mq/pull/419 * ♻️ Refactor token validation logic by @harehare in https://github.com/harehare/mq/pull/421Low7/19/2025
v0.2.10## What's Changed * ✨ feat(parser): improve error messages for missing delimiters by @harehare in https://github.com/harehare/mq/pull/403 * feat: Add support for parentheses to prioritize evaluation by @harehare in https://github.com/harehare/mq/pull/404 * Feat/add minus operator by @harehare in https://github.com/harehare/mq/pull/405 * 📝 docs(mq-mcp): Update README to reflect current implementation by @harehare in https://github.com/harehare/mq/pull/406 * ✨ feat(lang): Add support for mulLow7/15/2025
v0.2.9## What's Changed ### 🚀 Features * feat: Add format conversion options to mq-crawler by @harehare in https://github.com/harehare/mq/pull/378 * ⚡ perf: Improve web crawler performance by @harehare in https://github.com/harehare/mq/pull/379 * ✨ feat(web): Add AST viewer and export functionality by @harehare in https://github.com/harehare/mq/pull/381 * ✨ feat(mq-markdown): Add text attribute alias for node value access by @harehare in https://github.com/harehare/mq/pull/382 * ✨ ImplementLow7/12/2025
v0.2.8## What's Changed ### 🚀 Features * 📝 docs: Add commit-changes command documentation by @harehare in https://github.com/harehare/mq/pull/354 * ✨ Add support for executing queries on JSON-formatted AST input by @harehare in https://github.com/harehare/mq/pull/355 * Add attr and set_attr functions by @harehare in https://github.com/harehare/mq/pull/365 * ✨ Introduce HttpClient abstraction and refactor crawler to use it for HTTP requests by @harehare in https://github.com/harehare/mq/pullLow7/5/2025
v0.2.7## What's Changed ### 🚀 Features * 📝 Add claude code custom command for comprehensive code review by @harehare in https://github.com/harehare/mq/pull/339 * ✨ Update command syntax from ':' to '/' for consistency in Command and REPL by @harehare in https://github.com/harehare/mq/pull/340 * ✨ Improve code safety and add comprehensive documentation by @harehare in https://github.com/harehare/mq/pull/341 * Bump @types/node from 24.0.4 to 24.0.6 in /editors/vscode by @dependabot in https:/Low6/29/2025
v0.2.6## What's Changed ### 🚀 Features * Feat/update lsp by @harehare in https://github.com/harehare/mq/pull/321 * Add range operator by @harehare in https://github.com/harehare/mq/pull/322 * 📚 Update documentation by @harehare in https://github.com/harehare/mq/pull/323 * ♻️ Update error handling to use SourceSpan for diagnostics and refine error struct by @harehare in https://github.com/harehare/mq/pull/329 * Add builtin functions by @harehare in https://github.com/harehare/mq/pull/330 *Low6/26/2025
v0.2.5## What's Changed ### 🚀 Features * feat: Implement initial web crawler crate by @harehare in https://github.com/harehare/mq/pull/318 * Add AGENTS.md documenting project components by @harehare in https://github.com/harehare/mq/pull/320 * ⚡️ perf: builtin_functions by @harehare in https://github.com/harehare/mq/pull/319 ### 🤖 Dependencies * Bump syn from 2.0.101 to 2.0.103 by @dependabot in https://github.com/harehare/mq/pull/317 * Bump worker from 0.5.0 to 0.6.0 by @dependabot iLow6/21/2025

Dependencies & License Audit

Loading dependencies...

Similar Packages

clausidianClaude Code's Obsidian integration — AI agent toolkit for vault management, journal, notes, search, index sync, and more3.7.0
formanatorSubmit and manage Forma (https://joinforma.com) claims from the command line and Model Context Protocol (MCP) clientsv3.0.0
sofos-codeAI coding agent for your terminal, implemented in pure Rustv0.2.2
edgecrabEdgeCrab 🦀 A Super Powerful Personal Assistant inspired by NousHermes and OpenClaw — Rust-native, blazing-fast terminal UI, ReAct tool loop, multi-provider LLM support, ACP protocol, gateway adaptersv0.8.0
turbovaultMarkdown and OFM SDK w/ MCP server that transforms your Obsidian vault into an intelligent knowledge systemv1.4.1