Generate random daily step counts and push them to your Google Fit account for a single date or a range. Lean, fast, configurable.
- 🎲 Random steps via global min/max or per‑day overrides (
--ranges) - 📅 Single day (
--date) or range (--start-date ... --end-date) - 🧩 Mixed overrides:
YYYY-MM-DD:min-maxlist - 💤 Dry‑run preview (
--dry-run) — no writes - 🛠️ Auto‑creates a dedicated raw data source if missing
- 🌍 Custom timezone (
--timezone)
Week range:
python fit_steps.py --start-date 2025-11-01 --end-date 2025-11-07 --min 6000 --max 12000Single day:
python fit_steps.py --date 2025-11-05 --min 8000 --max 10000Overrides:
python fit_steps.py --start-date 2025-11-01 --end-date 2025-11-05 --min 6000 --max 9000 \
--ranges 2025-11-02:3000-5000,2025-11-05:10000-15000Dry run:
python fit_steps.py --date 2025-11-05 --min 8000 --max 10000 --dry-runVerbose:
python fit_steps.py --start-date 2025-11-01 --end-date 2025-11-03 --min 5000 --max 7000 -vInstall:
uv sync- Enable Google Fitness API in a Google Cloud project.
- Create Desktop OAuth client; save JSON as client_secrets.json in this directory.
- Run the script; authenticate via browser on first run.
ID: raw:com.google.step_count.delta:<Project Number>:Synthetic Steps
Note: The Project Number is auto-detected from your credentials to comply with API requirements. The script creates this automatically.
https://www.googleapis.com/auth/fitness.activity.write
https://www.googleapis.com/auth/fitness.activity.read
- Local system default; override with
--timezone UTC(etc.). - Common IANA names: UTC, America/Los_Angeles, Europe/London, Asia/Seoul, Australia/Sydney, America/New_York.
- Avoid Windows legacy names like Pacific Standard Time; prefer IANA forms above.
For testing / personal shaping only. Don’t misrepresent medical/official health data.
- Daily totals only (no intra‑day granularity)
- No de‑duplication — avoid overlapping uploads