👊 punch

A simple time-tracking CLI tool written in Rust. Punch in, punch out, and pretty-print records to the terminal in different time granularity.

How-To

in, out, show - that's all you need:

Each punch in must be followed by a punch out. You can't punch in if you haven't punch outd the previous record. The tool performs some validation on each punch and reports invalid state.

If you punched by mistake, you can manually edit the punch card at any time in ~/.punch/main.csv. Each record is CSV-encoded by index,start,[end],[note], where [] denotes optional fields.

Example

Running punch show day based on some test data:

terminal output

Future improvements