Skip to content

Releases: quantcli/crono-export-cli

v1.0.0

19 May 04:37

Choose a tag to compare

First stable release.

Highlights

  • MIT-clean. Zero transitive GPL dependencies — the Cronometer wire client (internal/cronoapi) is a clean-room rewrite, replacing the GPL-2.0 gocronometer package end to end.
  • Session caching. After your first login, the session lives at $XDG_CACHE_HOME/crono-export/session.json (mode 0600). Consecutive commands reuse it — no more tripping Cronometer's rate limit after five back-to-back calls. CRONOMETER_NO_CACHE=1 opts out; crono-export auth logout clears it.
  • Typed JSON across the board. nutrition and notes now emit typed values (numeric → number, true/false → bool, empty → null), matching the existing typed output of servings, biometrics, and exercises. No more jq tonumber per cell.
  • Contract-compliant exit codes & streams. Empty results keep stdout clean (note goes to stderr), inverted date ranges exit 0 with empty output + a stderr warning, --until alone now defaults --since to a 7-day window ending at --until.
  • Fail-fast validation. Bad --format or stray positional args are rejected before the network login, so typos don't burn against Cronometer's rate limit.
  • Vitamin D markdown fix. Was rendering as VitaminDIU: 123 with no unit; now correctly splits to VitaminD: 123 IU.
  • E2E test coverage for the full client + CLI binary against a faked Cronometer server (internal/cronotest).

Install

brew install --cask quantcli/tap/crono-export

Or grab a binary from the assets below.

Breaking changes (vs. 0.1.x)

  • nutrition and notes JSON values are now typed numbers/bools/nulls instead of strings. Pipelines that did jq '.[].Calories | tonumber' should drop the tonumber.