コマンドラインで JSON データを扱う際、よくある問題は出力が長すぎて読みにくいこと、または jq で複雑なクエリを書かないと必要な情報を抽出できないことです。jless はこの問題を解決するために生まれたターミナル向け JSON ビューアーです。

プロジェクト概要

属性内容
GitHubPaulJuliusMartinez/jless
Stars5.4k
言語Rust
特徴インタラクティブブラウジング、Vim キーバインド、リアルタイム検索
最終更新2日前

解決する問題

数 MB の JSON ファイルに直面したとき、従来の方法は cat で直接出力すると画面がスクロールしまくるか、jq '.' で整形出力しても、関心のあるフィールドに素早く到達できません。jless は JSON をインタラクティブに閲覧できる構造化ドキュメントに変えます。テキストファイルに対する less コマンドと同じような役割を、JSON 専用に最適化して提供します。

核心機能

インタラクティブなツリー表示

jless は JSON を折りたたみ可能なツリー構造で表示し、方向キーでノードの展開や折りたたみができ、データの階層関係を直感的に理解できます。

Vim 風キーバインド

Vim に慣れている人には馴染み深いキーバインドです:j/k で上下移動、h/l で展開/折りたたみ、gg で先頭に戻る、G で末尾にジャンプ。学習コストはほぼゼロです。

強力な検索機能

/ で検索モードに入り、正規表現にも対応。さらに便利なのは、検索結果がハイライト表示され、マッチする内容を含むノードが自動的に展開される点です。手動で階層を展開する必要がありません。

データパス表示

画面下部には、カーソル位置の JSONPath(例:.users[3].name)がリアルタイムで表示されます。これは jq クエリやコードを書く際にフィールドを特定するのに非常に役立ちます。

行番号モード

行番号表示に切り替え可能で、grep -n などの他のツールとの連携が容易になります。

クイックスタート

# macOS
brew install jless

# Arch Linux
yay -S jless

# ソースからインストール
cargo install jless

基本的な使い方:

# ファイルを表示
jless data.json

# パイプと組み合わせる
curl -s https://api.example.com/data | jless

# 特定のパスを表示
echo '{"users": [{"name": "Alice"}]}' | jless

よく使うショートカット:

  • j/k または ↓/↑:上下移動
  • h/l または ←/→:折りたたみ/展開
  • /:検索
  • n/N:次/前のマッチ
  • q:終了
  • y:現在のパスをクリップボードにコピー

類似ツールとの比較

ツールStars特徴
fx20.4kJavaScript スクリプト対応、機能が豊富
jq30k+データ処理能力が高いが非インタラクティブ
jless5.4k純粋な閲覧体験、学習コストゼロ

JSON データの表示と探索だけが必要な場合、jless の特化性が最も効率的な選択となります。fx は複雑なデータ変換が必要な場面に適しており、jq は JSON 処理のスイスアーミーナイフです。

使用シーン

  • API デバッグ:インターフェースが返す JSON 構造を確認し、フィールドを素早く特定
  • ログ分析:構造化ログファイルを閲覧し、時間やレベルでフィルタリング
  • 設定ファイル確認:複雑な JSON 設定を確認し、その構造を理解
  • データ探索:初めて触れる JSON データセットに素早く理解を深める

制限事項

  • 読み取り専用ツールで、JSON 内容の編集は不可
  • YAML や他の形式には非対応(他ツールで変換が必要)
  • 超大容量ファイル(数百 MB)ではパフォーマンスが低下

まとめ

jless は”集中”を極限まで追求したツールです。万能な JSON プロセッサーを目指すのではなく、“表示”という単一のシーンを最高レベルに仕上げています。ターミナルで頻繁に JSON データを扱うなら、常備ツールとしての価値は十分です。


属性内容
リポジトリhttps://github.com/PaulJuliusMartinez/jless
ライセンスMIT
言語Rust
メンテナ@PaulJuliusMartinez
公式サイトhttps://jless.io