正確さ・速度・シンプルさを重視したRust製jqクローン。jq互換CLIとしてもライブラリとしても使えます。
harehare/mq
Markdownファイルの切り出し、フィルタリング、変換を行う、jq風のCLIツール兼クエリ言語。
- スター
- 1,065
- フォーク
- 24
- 未解決の Issue
- 11
- 最終コミット
- 3 時間前
これは何?
mqを使うと、jqでJSONを扱うようにMarkdownをクエリして変換できます。短い式で見出し、コードブロック、リンク、表、セクションなどの部分を選択し、CLIからフィルタリング、マッピング、書き換えを行えます。Rustで書かれており、REPL、エディター向けのlanguage server、デバッガーが付属します。
Markdown以外にも、HTML、CSV、JSON、YAML、TOML、XMLなど複数の入力形式を読み込み、Markdownの表などに変換できます。クエリはモジュールとして再利用でき、mq-*という名前の外部サブコマンドをCLIに追加できます。サンドボックスのフラグで、クエリによるファイルの読み書き、ネットワークリクエスト、コマンド実行を許可するか制御できます。
Node.js、WebAssembly、Cなど複数の言語向けバインディングに加え、VS Code、Neovim、Zed、JetBrains IDE向けのエディター拡張機能も提供しています。
主な機能
- 01jq風の式を使って、見出し、コードブロック、リンク、表、セクションを選択できます。
- 02組み込み関数やセレクターを使い、Markdownの内容をフィルタリングしたりマッピングしたりできます。
- 03HTML、CSV、JSON、YAML、TOML、XMLを入力として読み込み、複数の形式で出力できます。
- 04対話型REPL、language server、実験的なデバッガーが付属します。
- 05オプトイン方式のサンドボックス権限のもとで、ファイル、ネットワーク、コマンドへのアクセスを制御してクエリを実行できます。
ユースケース
- 大量のドキュメントから特定のセクションやコードスニペットを抽出する。
- LLMのワークフローで使うプロンプトや出力のMarkdownを整えたり、不要な内容を取り除いたりする。
- リポジトリ内の多数のMarkdownファイルに同じ編集をまとめて適用する。
- スクリプトやCIジョブからCSVなどのデータファイルをMarkdownの表に変換する。
クイックスタート
- 1
Homebrewでインストール(macOS/Linux)
brew install mq - 2
Markdownファイルにクエリを実行してコードブロックを抽出
mq '.code' README.md
使う前に知っておきたいこと
- プロジェクトは活発に開発中のため、変更される可能性があります。
トピック
よくある質問
- mq とは?
- Markdownファイルの切り出し、フィルタリング、変換を行う、jq風のCLIツール兼クエリ言語。 mqを使うと、jqでJSONを扱うようにMarkdownをクエリして変換できます。短い式で見出し、コードブロック、リンク、表、セクションなどの部分を選択し、CLIからフィルタリング、マッピング、書き換えを行えます。Rustで書かれており、REPL、エディター向けのlanguage server、デバッガーが付属します。
- mq は無料で使えますか?ライセンスは?
- mq は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- mq は今もメンテナンスされていますか?
- 活発にメンテナンス中。mq の最終コミットは 2026年10月22日 です。
- mq は何に使えますか?
- 大量のドキュメントから特定のセクションやコードスニペットを抽出する。 LLMのワークフローで使うプロンプトや出力のMarkdownを整えたり、不要な内容を取り除いたりする。 リポジトリ内の多数のMarkdownファイルに同じ編集をまとめて適用する。 スクリプトやCIジョブからCSVなどのデータファイルをMarkdownの表に変換する。
- mq のインストール方法は?
- Homebrewでインストール(macOS/Linux): brew install mq Markdownファイルにクエリを実行してコードブロックを抽出: mq '.code' README.md
- mq はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/harehare/mq
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
エディター向けLSPとCLI、AIエージェントが同じノートを読み書きできるMCPサーバーを備えたMarkdownナレッジグラフ。
バイトデータの文字エンコーディングを検出し、言語やMIMEタイプの判定にも対応するPythonライブラリとchardetect CLI。
TypeScript 7コンパイラ(tsc)の実験的なRust移植版。CLI、言語サーバー、APIをそのまま提供し、Effectの診断機能も組み込まれています。
TypeScript 7のコンパイラーと言語サーバーをRustに移植した、型チェックとコード出力のドロップイン置き換えです。
Webサイトをクロールし、HTMLから本文、メタデータ、コメントを抽出するPythonパッケージ兼CLI。