Table of Contents

Machine-readable output

hashcat supports displaying information in machine-readable output for a number of modes.

Some machine-readable output includes a commented-out header that includes information like the hashcat version.

benchmark

One line per device, six colon-separated fields:

[device-id]:[hash-mode]:[core-clock in MHz]:[memory-clock in MHz]:[exec-runtime in milliseconds]:[hashes per second]

The lines beginning with # in front of them are a header, one per option the run turned on, plus the version.

$ hashcat -b -m 0 --machine-readable

# version: v7.1.2
# option: --backend-devices-virthost=1
# option: --optimized-kernel-enable
1:0:2817:1258:90.42:47932721276
2:0:600:3000:85.51:1468731093
Started: Sat Sep 26 09:03:11 2026
Stopped: Sat Sep 26 09:03:18 2026

Reading the first line: device 1, hash-mode 0, running at 2817 MHz core and 1258 MHz memory, a kernel that took 90.42 ms, and 47.9 GH/s.

When the work goes through an assimilation bridge rather than a backend device, hashcat prints a single line instead of one per device, with the device id, the core clock and the memory clock all reported as 0.

status display

The code that implements runtime machine-readable output is in terminal.c

Some fields are variable in width depending on the number of devices used.

Example of a run in progress:

STATUS  3       SPEED   11620683163     1000    EXEC_RUNTIME    452.773035      CURKU   0       PROGRESS        26190392852480  630249409724609375      RECHASH01       RECSALT 0       1       TEMP    64      REJECTED        0

Example of a completed run that was very fast and only engaged one GPU out of six:

STATUS  5       SPEED   186419656       1000    0       1000    0       1000    0       1000    0       1000    0      1000     EXEC_RUNTIME    0.094336        0.000000        0.000000        0.000000        0.000000        0.000000       CURKU    0       PROGRESS        857375  857375  RECHASH 0       1       RECSALT 0       1       TEMP    64      66     67       61      68      64      REJECTED        0

Example of an attack that was terminated by selecting 'q' to quit:

STATUS  8       SPEED   11674779143     1000    EXEC_RUNTIME    455.360562      CURKU   5242880 PROGRESS        41447409582080  630249409724609375      RECHASH 0       1       RECSALT 0       1       TEMP    63      REJECTED        0

The fields are as follows:

To get regular machine-readable progress, use --status-timer [seconds].

For most machine-readable output, you will also want to use --quiet.

speed-only

[device-id]:[hashes per second]

$ hashcat -m 0 -a 3 target.hashlist -d 1 --quiet --speed-only --machine-readable ?a?a?a?a?a?a?a?a
1:3273837251