mq-tui is a Text-based User Interface for the mq Markdown processor. It provides an interactive terminal experience for querying, filtering, and exploring Markdown documents using the mq query language.
- π Interactive Query Mode - Real-time Markdown querying with instant results
- π³ Tree View - Visual exploration of Markdown document structure
- β‘ Vim-style Navigation - Efficient keyboard shortcuts (j/k, hjkl)
- π Clipboard Integration - Copy results directly to clipboard
- π¨ Syntax Highlighting - Color-coded display of different Markdown elements
- π Detail View - Inspect individual elements in depth
- π Query History - Navigate through previous queries
- π― fx-inspired UX - Familiar interface for JSON query tool users
curl -fsSL https://raw.githubusercontent.com/harehare/mq-tui/main/bin/install.sh | bash
# Install from crates.io
cargo install mq-tui
# Install using binstall
cargo binstall [email protected]The installer will:
- Download the latest release for your platform
- Verify the binary with SHA256 checksum
- Install to
~/.mq-tui/bin/ - Update your shell profile (bash, zsh, or fish)
After installation, restart your terminal or run:
source ~/.bashrc # or ~/.zshrc, or ~/.config/fish/config.fishgit clone https://github.com/harehare/mq-tui.git
cd mq-tui
cargo build --release
# Binary will be at target/release/mq-tui- Linux: x86_64, aarch64
- macOS: x86_64 (Intel), aarch64 (Apple Silicon)
- Windows: x86_64
# Open a Markdown file
mq-tui README.mdOnce in the TUI, press : to enter query mode and try these queries:
# Select all headings
.h
# Select level 2 headings
.h | select(.depth == 2)
# Select all links
.link
# Select code blocks with specific language
.code | select(.lang == "rust")
# Select list items
.list
# Complex filtering
.h | select(.depth >= 2 and .depth <= 3)
| Key | Action |
|---|---|
q / Esc |
Quit the application |
: |
Enter query mode |
? / F1 |
Show help screen |
t |
Toggle tree view mode |
d |
Toggle detail view for selected item |
y |
Copy results to clipboard |
Ctrl+L |
Clear current query |
| Key | Action |
|---|---|
β / k |
Move up |
β / j |
Move down |
PageUp |
Page up (10 items) |
PageDown |
Page down (10 items) |
Home |
Jump to first item |
End |
Jump to last item |
| Key | Action |
|---|---|
Enter |
Execute query and return to normal mode |
Esc |
Exit query mode without executing |
β / β |
Navigate query history |
β / β |
Move cursor in query string |
Home / End |
Jump to start/end of query |
Backspace / Delete |
Edit query text |
| Key | Action |
|---|---|
β / k |
Move up in tree |
β / j |
Move down in tree |
Enter / Space |
Expand/collapse node |
Esc / t |
Exit tree view |
? / F1 |
Show help |
Default mode for navigating and viewing query results. Use arrow keys or Vim-style navigation to browse through results.
Activated by pressing :. Type your mq query and press Enter to execute. The query is evaluated in real-time as you type.
Activated by pressing t. Displays the Markdown document structure as an expandable tree, showing the hierarchy of headings, lists, and other elements.
Activated by pressing ? or F1. Displays all available keyboard shortcuts and commands.
Queries are executed as you type, providing immediate feedback and results.
Press d to toggle between list view and split view. In split view, the left pane shows the result list while the right pane displays detailed information about the selected item.
All executed queries are saved in history. Use β and β in query mode to navigate through previous queries.
Press y to copy the current query results to your system clipboard in Markdown format.
The tree view mode provides a visual representation of your Markdown document's structure, with color-coded elements:
- π΅ Blue: Headings
- π’ Green: Lists
- π΄ Red: Math expressions
- π£ Magenta: Links
- π‘ Yellow: Images
- π΅ Cyan: Code blocks
mq-tui works out of the box with sensible defaults. The UI adapts to your terminal's color scheme and size.
- mq - The underlying Markdown query processor
- mq-view - Markdown viewer with syntax highlighting
- mqlang.org - Documentation and language reference
Contributions are welcome! Please feel free to submit issues or pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
