Skip to main content

GarSync

CI Docs Python License

Personal fitness data pipeline that syncs Garmin Connect data to a local SQLite database and visualizes it through a modern Astro dashboard.

Explore the full documentation at: mlorentedev.github.io/garsync

The Problem

Garmin Connect provides great data, but it's locked in a proprietary cloud.

  • Data Silos: Hard to export full history for custom analysis.
  • Limited Visualization: You are stuck with the official app's charts.
  • No Local Ownership: If you lose access or the service is down, your training history is gone.

Value Proposition

Feature Garmin Connect App GarSync
Data Ownership Proprietary Cloud Local SQLite (Full Control)
Customization Fixed Dashboards Extensible Astro + Chart.js
Access Web/Mobile Only REST API + SQL + CLI
Automation Manual Export CLI sync over any date window on demand (in-process scheduler: ADR-008)

Quick Start

1. Prerequisites

  • Python 3.12+ and Poetry
  • Node.js 22+ (for the dashboard)
  • SOPS + Age (for secrets)

2. Setup

make setup

3. Configure Secrets

Edit your Garmin credentials using SOPS. The file is encrypted to garsync's dedicated age identity (see docs/runbooks/onboard-new-machine.md), and sops must be told the format, because it cannot infer it from .enc:

SOPS_AGE_KEY_FILE=~/.config/age/garsync.txt \
  sops --input-type dotenv --output-type dotenv secrets.env.enc

4. Sync & Launch

make sync DAYS=30
make dev

Visit http://localhost:4321 (Dev UI).

Architecture

Garmin Connect Cloud → GarSync CLI → SQLite DB → FastAPI → Astro Dashboard

License

MIT — see LICENSE.

Documentation

Project-bound knowledge lives in docs/ (docs-as-code): ADRs, runbooks, troubleshooting, and lessons.

Metadata

Release files for garsync 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for garsync 0.3.1
File Size Uploaded
garsync-0.3.1.tar.gz 33.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for garsync 0.3.1
File Interpreter ABI Platform
garsync-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 75.6 kB

Release files / garsync-0.3.1.tar.gz

Download URL garsync-0.3.1.tar.gz
Size 33.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ec30aaef633bbc159c38e6126ff1ffce218fc167e959a90e7e2a83b7407aebf8
BLAKE2b-256 checksum
How to use checksums
b43f414bc994d4bd7a6254269de3f4f11741bb4a062e23b0df3360d7835c0c6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / garsync-0.3.1-py3-none-any.whl

Download URL garsync-0.3.1-py3-none-any.whl
Size 42.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf973359862f9ebb987f84c571c4a930f5ca8778785df84431f9c2cc1b883d74
BLAKE2b-256 checksum
How to use checksums
9fc85d1ae73534a879c528b1c4cc74fb20c4a597d4088fb40e9a4462e0cd65f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.2

2 release files

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page