SCRIPT

JC: The CLI Tool That Converts Command Output to JSON and More

JC simplifies the conversion of command-line tool output to JSON, YAML, or dictionaries, streamlining automation for developers and DevOps.

python cli command-line json yaml automation scripting devops
JC: The CLI Tool That Converts Command Output to JSON and More

πŸ“¦ Get JC: The CLI Tool That Converts Command Output to JSON and More

vmaster· MIT License· ⭐ 8.7K stars · Updated Sep 20, 2026

Working with command-line tools can be an exercise in frustration, especially when it comes to extracting and transforming data. If you're a developer or a DevOps engineer, you often find yourself needing to parse the output of various commands, which can be cumbersome and time-consuming. Enter JC, a powerful CLI tool and Python library that converts the output of popular command-line tools, file types, and common strings into JSON, YAML, or dictionaries.

What Is JC?

JC (JSON Convert) is designed to simplify the process of converting command-line output into structured formats that are easier to work with in scripts and automation tasks. By transforming outputs from commands like dig, ps, or even custom strings into JSON or dictionaries, JC enables seamless integration with other tools like jq for further processing.

Key Features

  • Multiple Output Formats: Convert command output to JSON, YAML, or Python dictionaries effortlessly.
  • Wide Range of Supported Commands: From dig to ps, JC supports many popular command-line tools out of the box.
  • Integration with Other Tools: Pipe the output directly into tools like jq for further processing.
  • Python Library: Use JC as a Python library to access parsed data as dictionaries or lists, enhancing script flexibility.
  • Streaming Support: Handle large outputs efficiently with lazy iterators to minimize memory usage.
  • Ansible Filter Plugin: Easily integrate JC into Ansible playbooks for streamlined automation.
  • Web Demo and REST API: Test out JC with an interactive web demo or integrate with the REST API for programmatic access.
  • Comprehensive Documentation: Get started quickly with extensive documentation and examples available online.

Installation & Setup

Installing JC is straightforward. You can easily install it via pip:

CODE
pip install jc

For users who prefer working with the latest changes, you can clone the GitHub repository:

CODE
git clone https://github.com/kellyjonbrazil/jc.git
cd jc
pip install .

Make sure you have Python 3.6 or higher installed to run JC effectively.

How to Use It

Using JC is simple. Here’s a practical example where we use dig to get DNS information and convert it to JSON:

CODE
dig example.com | jc --dig

The output will be a structured JSON object:

CODE
[{"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}]

You can also pipe the output to jq for further analysis:

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

This command will return just the IP address:

CODE
93.184.216.34

As a Python library, you can use the following code snippet:

CODE
import subprocess
import jc

cmd_output = subprocess.check_output(['dig', 'example.com'], text=True)
data = jc.parse('dig', cmd_output)

print(data[0]['answer'])

In this case, data will be a list of dictionaries that you can manipulate programmatically.

Who Should Use JC?

JC is perfect for developers, DevOps engineers, and system administrators who regularly work with command-line tools and need to parse their output for further processing. If you find yourself often writing scripts that require data extraction from commands, JC can significantly streamline your workflow, allowing you to focus on the logic rather than the intricacies of parsing output.

Final Thoughts

In a world where automation and scripting are essential, JC stands out as a versatile tool that simplifies the conversion of command-line outputs. Its ability to transform various outputs into structured formats like JSON or dictionaries not only saves time but also enhances the reliability of your scripts. Whether you’re a seasoned developer or just starting, incorporating JC into your toolkit is a wise decision that can make your command-line interactions more productive.

ScriptForge Admin

Senior developer and curator of the ScriptForge platform. Specializing in PHP, Laravel, and full-stack JavaScript development.

gh
𝕏
🌐

Related Scripts