Назад към всички

wakapi-sync

// Daily Wakapi (WakaTime-compatible) summary → local CSV files. Fetch today stats and append/update CSVs for totals, top projects, and top languages.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namewakapi-sync
descriptionDaily Wakapi (WakaTime-compatible) summary → local CSV files. Fetch today stats and append/update CSVs for totals, top projects, and top languages.
metadata[object Object]

wakapi-sync

Daily Wakapi (WakaTime-compatible) summary → local CSV files.

What it does

  • Fetches today stats from Wakapi and appends/updates CSVs:
    • daily-total.csv (1 row/day)
    • daily-top-projects.csv (N rows/day)
    • daily-top-languages.csv (N rows/day)

Requirements

  • Node.js 18+

Configuration (env vars)

  • WAKAPI_URL (required)
    • Example: https://wakapi.example.com
  • WAKAPI_API_KEY (required)
    • Your Wakapi API key.
  • WAKAPI_OUT_DIR (required)
    • Output directory for CSVs.
    • Example: ~/wakapi-data

Optional:

  • WAKAPI_TOP_N_PROJECTS (default: 10)
  • WAKAPI_TOP_N_LANGUAGES (default: 10)

Auth:

  • Uses Authorization: Basic base64(<api_key>) (matches our current Wakapi setup).

Usage

Run:

node scripts/wakapi-daily-summary.mjs

Output CSV schemas

daily-total.csv

Columns:

  • date (YYYY-MM-DD)
  • total_seconds
  • total_hours
  • projects_count
  • languages_count

daily-top-projects.csv

Columns:

  • date
  • rank
  • project
  • seconds
  • hours
  • percent

daily-top-languages.csv

Columns:

  • date
  • rank
  • language
  • seconds
  • hours
  • percent