LinuxCommandLibrary

fx

Inspect JSON data in the terminal

TLDR

View a JSON file interactively

$ fx [path/to/file.json]
copy

Pretty-print and colorize JSON from stdin
$ cat [path/to/file.json] | fx
copy

Open JSON data from a URL
$ curl [url] | fx
copy

Filter JSON using JavaScript-like expressions
$ fx [path/to/file.json] [.name]
copy

Parse a TOML input file into JSON
$ fx --toml [path/to/file.toml]
copy

Parse a YAML input file into JSON
$ fx --yaml [path/to/file.yaml]
copy

SYNOPSIS

fx [OPTIONS] [FILE|-] [JQ_FILTER]

PARAMETERS

-h, --help
    Print help information

-V, --version
    Print version information

--theme-dark
    Use dark color theme

--theme-light
    Use light color theme

--width <WIDTH>
    Set terminal width (default: auto)

--height <HEIGHT>
    Set terminal height (default: auto)

--silent
    Hide welcome screen and status bar

--spreadsheet
    Display JSON as spreadsheet table

--monospace-escape
    Escape unicode as \uXXXX codes

--ansi
    Force ANSI output for colors

--sequential
    Process JSON Lines sequentially

DESCRIPTION

fx is a powerful command-line tool designed for exploring, manipulating, and exporting JSON data interactively through a full-screen terminal user interface (TUI). Written in Go, it offers a jq-like syntax for filtering while providing an intuitive, vim-inspired navigation experience. Users can zoom into objects, search with regex, copy paths or values, and apply transformations on the fly.

Key features include mouse support, multiple themes (dark/light), spreadsheet mode for tabular data, and seamless piping from stdin or files. It supports JSON Lines (ndjson) via --sequential and outputs formatted JSON, ANSI-colored text, or raw values. Ideal for developers debugging APIs, analyzing logs, or processing large datasets without leaving the terminal.

Unlike traditional tools like jq, fx emphasizes visual exploration: arrow keys or h/j/k/l for navigation, / for search, c to copy, e for jq expressions, and Tab to toggle raw/pretty views. Export options include clipboard integration and file writes. Its lightweight binary makes it portable across Linux, macOS, and Windows.

CAVEATS

Third-party tool, not in standard repositories; requires installation via Go, Cargo, or packages. Interactive TUI needs a capable terminal (e.g., supports mouse/UTF-8). Large files may consume memory.

INSTALLATION

Via Go: go install github.com/antonmedv/fx@latest
Arch: pacman -S fx
Nix: nix-env -iA nixpkgs.fx

BASIC USAGE

fx file.json for TUI.
fx '.users[0]' api.json for jq filter.
cat data.json | fx from stdin.

HISTORY

Created by Antonio Lopardo (antonmedv) in 2019 as a user-friendly jq alternative. First release on GitHub; gained popularity via Hacker News. Actively maintained with Go rewrite for performance. Widely adopted in devops and data workflows.

SEE ALSO

jq(1), jless(1), bat(1)

Copied to clipboard