jless - Befehlszeilen-JSON-Viewer Spickzettel
jless ist ein schneller, schreibgeschützter Viewer für JSON (und YAML) Daten im Terminal. Anstatt rohe Ausgabe durch less oder jq zu pipen und durch Mauern von Klammern zu scrollen, bekommst du einen Syntax-hervorgehobenen, zusammenklappbaren Baum, den du mit Vim-ähnlichen Tasten navigieren kannst, tief verschachtelte Strukturen falten und suchen kannst. Es ist speziell zum schnellen Erkunden von API-Responses, Config-Dateien und großen JSON-Dokumenten gebaut.
Installation
| Plattform | Befehl |
|---|
| Cargo (alle Plattformen) | cargo install jless |
| macOS (Homebrew) | brew install jless |
| Arch Linux | sudo pacman -S jless |
| Nix | nix-env -iA nixpkgs.jless |
| Binary | von der GitHub Releases Seite herunterladen |
| Überprüfung | jless --version |
Daten öffnen
| Befehl | Beschreibung |
|---|
jless data.json | Eine JSON-Datei öffnen |
| `cat data.json | jless` |
| `curl -s URL | jless` |
jless --yaml config.yaml | Eine YAML-Datei öffnen |
jless --mode line data.json | Im Line-Modus starten (roher-ish Ansicht) |
jless --help | Vollständige Optionsliste |
Bewegung
| Taste | Aktion |
|---|
j / k | Unten / Oben |
h / l | Zusammenklappen / Ausklappen (oder zum Parent/Child bewegen) |
g / G | Zu Top / Bottom springen |
Ctrl+f / Ctrl+b | Seite runter / rauf |
Ctrl+d / Ctrl+u | Halbe Seite runter / rauf |
J / K | Zum nächsten/vorherigen Sibling bewegen |
Enter | Aktuellen Node zusammenklappen/ausklappen umschalten |
Falten & Ansichten
| Taste | Aktion |
|---|
Space | Aktuellen Node zusammen-/ausklappen |
c | Alle Geschwister zusammenklappen |
e | Alle Kinder rekursiv ausklappen |
E | Alles ausklappen |
C | Tiefe-Zusammenklappen |
Tab (Modus) | Zwischen Daten-Modus und Line-Modus wechseln |
% | Zur übereinstimmenden Klammer springen |
Suche
| Taste | Aktion |
|---|
/pattern | Vorwärts suchen |
?pattern | Rückwärts suchen |
n / N | Nächste / vorherige Übereinstimmung |
* | Nach dem aktuellen Key suchen |
| Suche ist Regex | Muster unterstützen reguläre Ausdrücke |
Arbeiten mit Pfaden & Werten
| Taste | Aktion |
|---|
y dann y | Den Wert unter dem Cursor yanken (kopieren) |
y dann p | Den Pfad zum aktuellen Node yanken (z.B. .users[0].name) |
y dann v | Den Wert yanken |
y dann k | Den aktuellen Key yanken |
. | Den vollständigen Pfad des aktuellen Nodes zeigen |
Das Yanken des Pfads ist besonders nützlich: navigiere zu einem Feld visuell, dann füge seinen jq-Style Pfad in ein Skript ein.
Häufige Workflows
# Eine große API-Response ohne in Klammern zu ertrinken erkunden
curl -s https://api.example.com/data | jless
# Eine Config inspizieren und den exakten Pfad zu einer Einstellung kopieren
jless config.json # navigiere, dann yy/yp um Wert oder Pfad zu greifen
# YAML genauso wie JSON durchsuchen
jless --yaml docker-compose.yaml
# Mit jq koppeln: zuerst filtern, dann das Ergebnis interaktiv erkunden
jq '.items' big.json | jless
| Aspekt | jless | jq | fx |
|---|
| Modus | Interaktiver Viewer | Query/Transform | Interaktiv + JS |
| Editing/Transform | Nein (schreibgeschützt) | Ja | Ja |
| Faltender Baum UI | Ja | Nein | Ja |
| Pfad Yanken | Ja | N/A | Ja |
| Am besten für | Erkunden/Inspizieren | Scripting Transforms | Erkunden + Transform |
jless ist absichtlich schreibgeschützt — zum Filtern und Transformieren, pipe zuerst durch jq, dann erkunde das Ergebnis in jless.
Ressourcen