2 releases
Uses new Rust 2024
new 0.1.1 | Apr 22, 2025 |
---|---|
0.1.0 | Apr 22, 2025 |
#721 in Command line utilities
28 downloads per month
7MB
2K
SLoC
Mcat
✨ Features
-
📄 File to Markdown/HTML
Convert structured content like CSVs, directories, and rich document formats (e.g., DOCX) into clean Markdown/HTML. -
🏞️ Markdown/HTML to Image
Render Markdown or HTML files into images. -
🖼️ Inline Image/Videos
Display images/videos inside your terminal using protocols like Kitty, iTerm, or Sixel. -
🌐 URL to Inline Image/Video
View Images/Videos from a URL in your terminal -
💃🏻 Automatic Styling for HTML
automatically inject styles into the HTML to make the image cooler!# dark theme (default is light theme) mcat somefile.md -i -theme makurai # or for short ~ mcat somefile.md -im # or you own theme ~ mcat somefile.md -i -t "somefile.css"
⬇️ Installation
cargo install mcat
or ~
git clone https://github.com/Skardyy/mcat
cd mcat
cargo install --path .
(Coming soon: prebuilt binaries for common platforms.)
🏋️ Example Usage
# View a PDF as Markdown
mcat resume.pdf
# Render Markdown to an image
mcat notes.md -i
# Show an image inline in your terminal
mcat diagram.png -i
# Save a document as image
mcat document.docx -o image > img.png
# from a url
mcat "https://giphy.com/gifs/..."
⚙️ Supported Formats
Input Type | Output Options |
---|---|
DOCX, PDF, CSV, ODT, PPTX, and more.. | Markdown, HTML, Image, Inline |
Markdown / HTML | Image, Inline Image |
Images, Videos | Inline Display |
URLs | Image/Video Fetch + Inline View |
🛐 Dependencies
Mcat tries to have as little dependencies as possible.
chromium (for rendering HTML to image):
- exists on every windows machine through msedge.
- auto installs the binaries if missing
ffmpeg (for videos)
- auto installs binaries if missing
🆘 Help
mcat --help
Usage: mcat.exe [OPTIONS] <input>
Arguments:
<input> file / dir
Options:
-o <output> the format to output [possible values: html, md, image, inline]
-t <theme> alternative css file for images, valid options: [default, makurai, <local file>] [default: default]
-s add style to html too (when html is the output)
--inline-options <inline-options> options for the --output inline
* center=<bool>
* width=<string> [only for images]
* height=<string> [only for images]
* spx=<string>
* sc=<string>
* zoom=<usize> [doesn't work yet]
* x=<int> [doesn't work yet]
* y=<int> [doesn't work yet]
* exmp: --inline-options 'center=false,width=80%,height=20c,spx=1920x1080,sc=100x20,zoom=2,x=16,y=8'
--kitty makes the inline image encoded to kitty
--iterm makes the inline image encoded to iterm
--sixel makes the inline image encoded to sixel
-r, --raw allows raw html to run (put only on your content)
-i shortcut for putting --output inline
-m shortcut for putting --theme makurai
-h, --help Print help
-V, --version Print version
🚧 Roadmap
- mcat.nvim: a neovim plugin to use mcat inside neovim
📎 License
MIT License
Dependencies
~197MB
~3M SLoC