Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
J

jc

> 开发工具
Open source

CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows p

8.7K stars0 likes0 views
WebsiteGitHub

About

CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows p

Check out the jc Python package documentation for developers

Try the jc web demo and REST API

jc is available as an Ansible filter plugin in the community.general collection. See this blog post for an example.

JC

JSON Convert

jc JSONifies the output of many CLI tools, file-types, and common strings for easier parsing in scripts. See the Parsers section for supported commands, file-types, and strings.

dig example.com | jc --dig
[{"id":38052,"opcode":"QUERY","status":"NOERROR","flags":["qr","rd","ra"],
"query_num":1,"answer_num":1,"authority_num":0,"additional_num":1,
"opt_pseudosection":{"edns":{"version":0,"flags":[],"udp":4096}},"question":
{"name":"example.com.","class":"IN","type":"A"},"answer":[{"name":
"example.com.","class":"IN","type":"A","ttl":39049,"data":"93.184.216.34"}],
"query_time":49,"server":"2600:1700:bab0:d40::1#53(2600:1700:bab0:d40::1)",
"when":"Fri Apr 16 16:09:00 PDT 2021","rcvd":56,"when_epoch":1618614540,
"when_epoch_utc":null}]

This allows further command-line processing of output with tools like jq or jello by piping commands:

$ dig example.com | jc --dig | jq -r '.[].answer[].data'
93.184.216.34

or using the alternative "magic" syntax:

$ jc dig example.com | jq -r '.[].answer[].data'
93.184.216.34

jc can also be used as a python library. In this case the returned value will be a python dictionary, a list of dictionaries, or even a lazy iterable of dictionaries instead of JSON:

>>> import subprocess
>>> import jc
>>>
>>> cmd_output = subprocess.check_output(['dig', 'example.com'], text=True)
>>> data = jc.parse('dig', cmd_output)
>>>
>>> data[0]['answer']
[{'name': 'example.com.', 'class': 'IN', 'type': 'A', 'ttl': 29658, 'data':
'93.184.216.34'}]

For jc Python package documentation, use help('jc'), help('jc.lib'), or see the online documentation.

Two representations of the data are available. The default representation uses a strict schema per parser and converts known numbers to int/float JSON values. Certain known values of None are converted to JSON null, known boolean values are converted, and, in some cases, additional semantic context fields are added.

To access the raw, pre-processed JSON, use the -r cli option or the raw=True function parameter in parse() when using jc as a python library.

Schemas for each parser can be found at the documentation link beside each Parser below.

Release notes can be found in the Releases section on Github.

Why Would Anyone Do This!?

For more information on the motivations for this project, please see my blog post on Bringing the Unix Philosophy to the 21st Century and my interview with Console.

See also:

  • libxo on FreeBSD
  • powershell
  • blog: linux apps should have a json flag
  • Hacker News discussion
  • Reddit discussion

Use Cases:

  • Bash scripting
  • Ansible command output parsing
  • Saltstack command output parsing
  • Nornir command output parsing
  • FortiSOAR command output parsing

Installation

There are several ways to get jc. You can install via pip, OS package repositories, or by downloading the correct binary for your architecture and running it anywhere on your filesystem.

Pip (macOS, linux, unix, Windows)

pip3 install jc

OS Package Repositories

OS Command Debian/Ubuntu linux apt-get install jc Fedora linux dnf install jc openSUSE linux zypper install jc Arch linux pacman -S jc NixOS linux nix-env -iA nixpkgs.jc or nix-env -iA nixos.jc Guix System linux guix install jc Gentoo Linux emerge dev-python/jc Photon linux tdnf install jc macOS brew install jc FreeBSD portsnap fetch update && cd /usr/ports/textproc/py-jc && make install clean Ansible filter plugin ansible-galaxy collection install community.general FortiSOAR connector Install from FortiSOAR Connector Marketplace

For more OS Packages, see https://repology.org/project/jc/versions.

Binaries

For precompiled binaries, see Releases on Github.

Usage

jc accepts piped input from STDIN and outputs a JSON representation of the previous command's output to STDOUT.

COMMAND | jc [SLICE] [OPTIONS] PARSER
cat FILE | jc [SLICE] [OPTIONS] PARSER
echo STRING | jc [SLICE] [OPTIONS] PARSER

Alternatively, the "magic" syntax can be used by prepending jc to the command to be converted or in front of the absolute path for Proc files. Options can be passed to jc immediately before the command or Proc file path is given. (Note: command aliases and shell builtins are not supported)

jc [SLICE] [OPTIONS] COMMAND
jc [SLICE] [OPTIONS] /proc/<path-to-procfile>

The JSON output can be compact (default) or pretty formatted with the -p option.

Parsers

Argument Command or Filetype Documentation --acpi acpi command parser details --airport airport -I command parser details --airport-s airport -s command parser details --amixer amixer command parser details --apt-cache-show apt-cache show command parser details --apt-get-sqq apt-get -sqq command parser details --arp arp command parser details --asciitable ASCII and Unicode table parser details --asciitable-m multi-line ASCII and Unicode table parser details --blkid blkid command parser details --bluetoothctl bluetoothctl command parser details --cbt cbt (Google Bigtable) command parser details --cef CEF string parser details --cef-s CEF string streaming parser details --certbot certbot command parser details --chage chage --list command parser details --cksum cksum and sum command parser details --clf Common and Combined Log Format file parser details --clf-s Common and Combined Log Format file streaming parser details --crontab crontab command and file parser details --crontab-u crontab file parser with user support details --csv CSV file parser details --csv-ih CSV implicit header file parser details --csv-s CSV file streaming parser details --csv-ih-s CSV implicit header file streaming parser details --curl-head curl --head command parser [details](https://kellyjonbrazil.github.io/jc/docs/parse

GitHub Issues· 0 open

View all on GitHub

No open issues yet, or sync has not completed.

Highlights

  • •libxo on FreeBSD
  • •powershell
  • •blog: linux apps should have a json flag
  • •Hacker News discussion
  • •Reddit discussion
  • •Bash scripting
  • •Ansible command output parsing
  • •Saltstack command output parsing
  • •Nornir command output parsing
  • •FortiSOAR command output parsing

> Tags

Pythonbashbash-scriptingclicommand-line

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category开发工具
PricingOpen source

> Related tools

V
VS Code
流行的开源代码编辑器
G
Git
分布式版本控制系统
V
Vite
下一代前端构建工具