A minimal CLI for tracking contracted hours.
Stamp in and out like a time clock. See what's left in your contract. No accounts, no cloud — just a local JSON file.
source <(curl -fsSL https://raw.githubusercontent.com/jonathansedrez/ponto-cli/main/install.sh)The script detects your OS and architecture, downloads the correct binary from the latest release, and installs it to /usr/local/bin (or ~/.local/bin if you don't have write access).
Install from source
Requires Bun.
git clone https://github.com/jonathansedrez/ponto-cli
cd ponto-cli
bun install
bun linkThis adds ponto to your PATH via ~/.bun/bin.
ponto # stamp current time (clock in or out)
ponto 10h30 # stamp a specific time
ponto 14h # stamp at 14:00
ponto 13 # stamp at 13:00
ponto 10:30 # stamp using HH:MM format
ponto --date 2026-07-10 # stamp on a specific date
ponto --date yesterday # stamp on yesterday
ponto --left # show contract hours remaining today
ponto --watch # open the interactive TUI dashboard
ponto --remove # remove the last stamp
ponto --remove 2 # remove stamp at index 2
ponto --remove --date yesterday # remove last stamp from yesterdayStamps alternate between IN and OUT automatically. Each day's stamps are stored sorted — backfilling a past date just works.
- Stamps are saved in
~/.ponto/timesheet.json - Contract hours are configured in
~/.ponto/config.json --leftcomputes remaining hours based on today's stamps and your contract--watchopens a live TUI that refreshes every second
bun run dev # run in watch mode
bun test # run the test suitePull requests are welcome. For larger changes, open an issue first to discuss what you'd like to change.