近年のターミナル環境は非常に高機能化していますが、ファイルを閲覧する際には依然としてcat
コマンドが頻繁に使用されています。しかし、従来のcat
コマンドはテキストファイルの表示に特化しており、画像やPDFなどのメディアファイルを表示するには別のアプリケーションを起動する必要がありますね。
今回紹介する「mcat」は、様々な形式のファイルをターミナル上で直接表示できる拡張版catコマンドです。Rustで開発されたこのツールを使えば、ドキュメント、画像、動画などをターミナルから離れることなく閲覧できます。
mcatとは?
mcatは、GitHub上のSkardyy/mcatリポジトリで公開されている「cat command for documents / images / videos and more!」をコンセプトに開発された、多機能なファイル閲覧ツールです。リポジトリの README.md に記載されている特徴は以下の通りです:
- ファイルをMarkdown/HTMLに変換: CSV、ディレクトリ、リッチドキュメント形式(DOCX など)などの構造化されたコンテンツをMarkdownまたはHTMLに変換
- Markdown/HTMLを画像に変換: MarkdownまたはHTMLファイルを画像としてレンダリング
- インライン画像/動画表示: Kitty、iTerm、Sixelなどのプロトコルを使用して、画像/動画をターミナル内に表示
- URLからインライン画像/動画: URLから画像/動画をターミナル内で表示
- 画像と動画の連結: 同じ形式の動画を連結(時間連結)したり、画像を水平または垂直(デフォルト)に積み重ねて連結
インストール方法
公式リポジトリでは、以下のインストール方法が紹介されています:
# Cargoを使ったインストール
cargo install mcat
# または、リポジトリをクローンしてインストール
git clone https://github.com/Skardyy/mcat
cd mcat
cargo install --path .
GitHubのリリースページから、ビルド済みのバイナリをダウンロードすることもできます。
基本的な使い方
基本的な使用例を紹介します。
テキストドキュメントの表示
# PDFをMarkdownとして表示
mcat resume.pdf
# DOCXをMarkdownとして表示
mcat document.docx
画像・動画の表示
# 画像をインライン表示
mcat diagram.png -i
# ドキュメントを画像として保存
mcat document.docx -o image > img.png
Markdown/HTMLのレンダリング
# Markdownを画像としてレンダリング
mcat readme.md -i
# ダークテーマでレンダリング
mcat readme.md -im
URLからのメディア表示
# URLからGIFを表示
mcat "https://giphy.com/gifs/..."
複数ファイルの連結
# 画像を縦に連結(デフォルト)
mcat SomeImage.png AnotherImage.bmp
# 画像を横に連結して保存
mcat someimage.png anotherimage.bmp --hori -o image > save.png
# 動画を連結(同じ形式である必要あり)
mcat part1.mp4 anothervideo.mp4 -o video > save.mp4
サポートされる形式
以下の形式がサポートされています:
入力タイプ | 出力オプション |
---|---|
DOCX, PDF, CSV, ODT, PPTX, など | Markdown, HTML, 画像, インライン表示 |
Markdown / HTML | 画像, インライン画像 |
画像, 動画 | インライン表示 |
URL | 画像/動画の取得 + インライン表示 |
依存関係
mcatは以下に依存しています:
- chromium: HTMLを画像にレンダリングするために使用
- ffmpeg: 動画処理用
コマンドラインオプション
mcatには様々なコマンドラインオプションがあります。以下は主要なオプションです:
mcat [OPTIONS] <input>...
オプション:
-o <o> 出力形式 [html, md, image, video, inline]
-t <theme> 画像用の代替CSSファイル [default, makurai, <ローカルファイル>]
-s HTMLにもスタイルを追加
--kitty インライン画像をKittyエンコード
--iterm インライン画像をiTermエンコード
--sixel インライン画像をSIXELエンコード
-r, --raw 生のHTMLの実行を許可
-i --output inline のショートカット
-m --theme makurai のショートカット
--hori 画像を垂直ではなく水平に連結
--inline-options <opts> インライン表示のオプション
-h, --help ヘルプを表示
-V, --version バージョンを表示
まとめ
mcatは、様々なファイル形式をターミナル上で直接閲覧できるとても便利なツールです。
テキストファイルから画像、動画、さらにはPDFやDOCXなどのリッチドキュメントまで、多様なファイル形式をターミナル内で直接表示できるので、コマンドラインでの作業がより効率的になること間違いなし!