Skip to the content.



jc - JSON Convert history command output parser

This parser will output a list of dictionaries each containing line and command keys. If you would like a simple dictionary output, then use the -r command-line option or the raw=True argument in the parse() function.

The "Magic" syntax is not supported since the history command is a shell builtin.

Usage (cli):

$ history | jc --history

Usage (module):

import jc
result = jc.parse('history', history_command_output)


    "line":     integer,
    "command":  string


$ history | jc --history -p
    "line": 118,
    "command": "sleep 100"
    "line": 119,
    "command": "ls /bin"
    "line": 120,
    "command": "echo \"hello\""
    "line": 121,
    "command": "docker images"

$ history | jc --history -p -r
  "118": "sleep 100",
  "119": "ls /bin",
  "120": "echo \"hello\"",
  "121": "docker images",


def parse(data, raw=False, quiet=False)

Main text parsing function


data:        (string)  text data to parse
raw:         (boolean) unprocessed output if True
quiet:       (boolean) suppress warning messages if True


Dictionary of raw structured data or
List of Dictionaries of processed structured data

Parser Information

Compatibility: linux, darwin, cygwin, aix, freebsd

Source: jc/parsers/

Version 1.7 by Kelly Brazil (