8,691 stars · MIT (read from /blob/master/LICENSE.md on the default branch, plain unmodified text, "Copyright (c) 2020 Kelly Brazil" — holder named) · v1.26.0 (2026-09-19; the GitHub page shows "19 Sep" with no year and the year was settled by the PyPI project page, with 1.25.7 of 18 Jun 2026 behind it) · Track this in Scout
Converts the output of about 180 command-line tools into JSON, YAML or Python dictionaries.
▶Repo detailsthe review · specs · pros & cons · install
What it is
jc is both a command-line tool and a Python library. You pipe something into it, or call it with a parser name, and it hands back structured data instead of formatted text. It has been maintained since October 2019.
What it is good for. Anyone who writes shell scripts and has lost an afternoon to a tool that changed its spacing. It is also the quickest way to query system information from a script without learning each tool's own output format — disks, network interfaces, package lists, log files, certificates, and about 175 more.
- 🥇 The gold of this edition. One
pipcommand, no configuration, and it immediately removes a whole class of fragile code. - MIT, read from the file at
/blob/master/LICENSE.md, plain unmodified text, "Copyright (c) 2020 Kelly Brazil". The copyright holder is named. - Packaged everywhere: pip, Homebrew, apt, dnf, pacman, zypper, Nix, Gentoo and FreeBSD ports. The newest version, 1.26.0, is dated 19 September 2026. GitHub shows that date without a year; PyPI settled it.
- With about 180 parsers, the shape of what one parser returns can shift between minor versions. A script that reads a particular key can break on upgrade, and a wrong parse is silent rather than an error.
- There is no screen and nothing to click. The value only appears when the output is piped into something that queries it, which usually means learning
jqas well. - 23 open issues and 12 open pull requests is thin coverage spread across 180 parsers. Needs Python 3.6 or newer.
- jqlang/jq
The tool jc is usually piped into; it queries JSON but cannot produce it from ordinary command output, so the two are partners rather than alternatives.
Track this in Scout - mikefarah/yq
The same querying idea for YAML, XML and more, and it can also convert between those formats.
Track this in Scout - jpmens/jo
Works in the opposite direction, building JSON from values you supply on the command line rather than parsing a tool's output.
Track this in Scout
pip3 install jc brew install jc sudo apt-get install jc sudo dnf install jc
