Privacy-first coding-time tracker
Tracks edit-time per project / language to a local JSONL file (no cloud, no MongoDB) and renders a SugarCharts-driven dashboard. Editor plug-ins push heartbeats via the tick push CLI subcommand; the dashboard reads them.
composer require sugarcraft/sugar-tick
// Editor plug-in / cron / git hook pushes a heartbeat:
sugar-tick push sugarcraft php src/App.php 60
// Open the dashboard:
sugar-tick
// Override the data dir:
SUGARTICK_DIR=/var/data/tick sugar-tick
{time, project, language, file, duration} — JSONL, one beat per line.YYYY-MM-DD.jsonl per day — append-only, easy to ship to cold storage.Sparkline driven by per-day minute buckets.← / → shift the 7-day window; r reloads.Stats::compute is total-input deterministic — every dashboard test runs against fixed beats.| Class | Method | Description |
|---|---|---|
| Stats | compute(heartbeats) | Compute statistics from heartbeats |
| Heartbeat | new(time, project, language, file, duration) | Create a heartbeat |
| Dashboard | new(stats) | Create dashboard view |
| App | start() | Create the app model |
VHS-recorded GIFs of every example shipped with the app. Regenerated automatically on every push that touches the source.