jc
JSONifies the output of CLI tools and file-types for easier parsing.
Basic Usage
command | jc --parser # Pipe output
jc command # Magic syntax
jc --help # List all parsers
jc --help --parser # Parser docs
Examples
dig example.com | jc --dig | jq '.answer[].data'
ps aux | jc --ps
ifconfig | jc --ifconfig
Parsers
| Category | Parsers |
| -------- | -------------------------------------------------------- |
| System | ps, top, free, df, du, ls, stat, uptime |
| Network | dig, ping, traceroute, netstat, ss, ifconfig |
| Files | ls, find, stat, file, mount, fstab |
| Packages | dpkg -l, rpm -qi, pacman, brew |
| Logs | syslog, clf (Common Log Format) |
| Dev | git log, docker ps, kubectl |
Options
| Flag | Description |
| ---- | --------------------------- |
| -p | Pretty format JSON |
| -r | Raw output (less processed) |
| -u | Unbuffered output |
| -q | Quiet (suppress warnings) |
| -d | Debug mode |
| -y | YAML output |
| -M | Add metadata |
| -s | Slurp multi-line input |
Slicing
Skip lines: START:STOP syntax
cat file.txt | jc 1:-1 --parser # Skip first/last lines
Slurp Mode
For multi-line parsers: --slurp outputs array
cat ips.txt | jc --slurp --ip-address
Python Library
import jc
# Parse command output
data = jc.parse('dig', output_string)
# Or parse directly
data = jc.parsers.dig.parse(output_string)
Tips
- Magic syntax:
jc commandauto-detects parser - Use
jqfor processing:jc cmd | jq '.field' --slurpfor multiple items per file- Streaming parsers for large outputs
- Python lib returns dict/list, not JSON
Related Skills
- nu-shell: Alternative structured data processing
- toon: Compact JSON representation