1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# jx
[](https://crates.io/crates/jx)
```sh
jx examples/reference.json # open a JSON file directly
curl example.com/some-json-endpoint | jx # ...or pipe it in
```
<img width="2238" height="1198" alt="image" src="https://github.com/user-attachments/assets/74e95f1b-a125-4e37-b108-9df909cb8512" />
## Installation
### Homebrew
```sh
brew install sqwxl/tap/jx
```
### Linux / macOS
```sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/sqwxl/jx/releases/latest/download/jx-installer.sh | sh
```
### Install from source
```sh
cargo install --path .
```
## Usage
| Key | Action |
| -------------------------------------------------------- | --------------------------------- |
| <kbd>?</kbd> | Show help |
| <kbd>q</kbd> <kbd>Ctrl+c</kbd> | Quit |
| <kbd>j</kbd><kbd>Down</kbd>/<kbd>k</kbd><kbd>Up</kbd> | Next/Previous node |
| <kbd>h</kbd><kbd>Left</kbd>/<kbd>l</kbd><kbd>Right</kbd> | In/Out node |
| <kbd>Ctrl+y</kbd> <kbd>Ctrl+e</kbd> | Scroll line up/down |
| <kbd>u</kbd> <kbd>d</kbd> | Scroll half page up/down |
| <kbd>b</kbd> <kbd>f</kbd> | Scroll full page up/down |
| <kbd>g</kbd> | Go to top |
| <kbd>G</kbd> | Go to bottom |
| <kbd><</kbd> | Scroll left |
| <kbd>></kbd> | Scroll right |
| <kbd>Space</kbd> | Toggle a fold |
| <kbd>z</kbd> | Toggle all folds |
| <kbd>/</kbd> | Search |
| <kbd>n</kbd> | Repeat previous search |
| <kbd>N</kbd> | Repeat previous search in reverse |
| <kbd>Esc</kbd> | Clear search |
| <kbd>y</kbd> | Copy the selection (pretty) |
| <kbd>r</kbd> | Copy the selection (raw) |
| <kbd>Y</kbd> | Copy the value (pretty) |
| <kbd>R</kbd> | Copy the value (raw) |
| <kbd>Enter</kbd> | Output the selection (pretty) |
| <kbd>o</kbd> | Output the selection (raw) |
| <kbd>Shift+Enter</kbd> | Output the value (pretty) |
| <kbd>O</kbd> | Output the value (raw) |
| <kbd>w</kbd> | Toggle line wrapping |
| <kbd>#</kbd> | Toggle line numbering |
## Features
- [x] Navigation.
- [x] Copy selection or value to clipboard.
- [x] Output selection or value to console.
- [x] Pretty-printing.
- [x] Searching.
- [x] Scrolling.
- [x] Horizontal scrolling.
- [x] Folding.
- [x] Syntax highlighting.
- [x] Line wrapping.
- [x] Line numbers.
- [ ] Filtering.
- [ ] Sorting.