diff options
author | T <t@tjp.lol> | 2025-08-02 17:25:59 -0600 |
---|---|---|
committer | T <t@tjp.lol> | 2025-08-04 09:34:14 -0600 |
commit | 8be5f93f5b2d4b6f438ca84094937a0f7101c59b (patch) | |
tree | 3cedb6379818a28179e269477c12ae06dd57ca36 /README.md |
Initial commit of punchcard.
Contains working time tracking commands, and the stub of a command to
generate reports.
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..bf723e7 --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +# 👊 Punchcard ♣️ + +A simple time tracking CLI tool for freelancers and consultants. + +## What it does + +Punchcard helps you track your work hours and generate professional invoices and timesheets. Start and stop timers from the command line, then generate PDF reports when you're ready to bill your clients. + +## Quick Start + +```bash +# Start tracking time +punch in + +# Stop tracking time +punch out + +# Check current status +punch status + +# Generate reports +punch report invoice +punch report timesheet +``` + +## Commands + +### Time Tracking +- `punch in` - Start a timer for the current work session +- `punch out` - Stop the active timer +- `punch status` - Show current timer status and recent time entries + +### Data Management +- `punch add client <name>` - Add a new client to the database +- `punch add project <name>` - Add a new project to the database +- `punch import <file>` - Import time data from CSV files (supports Clockify CSV exports) + +### Reports +- `punch report invoice` - Generate a PDF invoice from tracked time +- `punch report timesheet` - Generate a PDF timesheet report + +## How it works + +When you run `punch in`, a timer starts recording to a local SQLite database. Run `punch out` to stop the timer. Your time data stays on your machine - nothing is sent to external servers. + +Reports are generated using Typst and compiled to PDF automatically. + +## Installation + +If you have Go installed: +```bash +go install git.tjp.lol/punchcard.git +``` + +Or build from source: +```bash +git clone git.tjp.lol/punchcard.git +cd punchcard +go build -o punch cmd/punch/main.go +``` + +## Requirements + +- Go 1.21+ (for building from source) +- Typst (for PDF generation) |