The workshop · Edition No. 40 · 4 Oct 2026

kellyjonbrazil/jc

Converts the output of about 180 command-line tools into JSON, YAML or Python dictionaries.

← The workshopRead the whole edition →

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.

Stars8,691
LicenceMIT (read from /blob/master/LICENSE.md on the default branch, plain unmodified text, "Copyright (c) 2020 Kelly Brazil" — holder named)
Latestv1.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)
Good
  • 🥇 The gold of this edition. One pip command, 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.
Watch for
  • 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 jq as well.
  • 23 open issues and 12 open pull requests is thin coverage spread across 180 parsers. Needs Python 3.6 or newer.
Similar repositories
  • 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
Install
pip3 install jc
brew install jc
sudo apt-get install jc
sudo dnf install jc
Screenshots
kellyjonbrazil/jc: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.