lf sniff
Capture raw LF field ADC samples (125kHz, 8µs/sample)
--timeout MS capture duration in ms (default: 2000)
--out FILE save raw bytes to file
--hex print hex dump after capture

data hexsamples
Dump last capture as hex with signal level indicators
-n N number of bytes to show (default: 512)
level key: _ gap . ringing - low + mid o carrier O high # clipped

data plot
Graphical waveform plot (pyqtgraph > matplotlib > ASCII fallback)
--start N start sample (default: 0)
--len N number of samples (default: all)
--ascii force terminal ASCII output
plot colours: cyan=field amber-dash=mean red-dot=gap threshold red-shade=gap region

data manrawdecode
Manchester decode the last capture
--clock N clock divisor in Tc (default: 64 = RF/64)
--invert invert logic levels

data modulation
Detect clock rate and modulation type from last capture
reports: half-period, nearest RF divisor, Manchester/ASK/FSK, RTF gap count

typical workflow:
lf sniff --timeout 2000
data modulation <- check signal type and gap presence
data plot <- visual inspection
data hexsamples -n 256 <- detailed byte view
data manrawdecode <- decode bits