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.2

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.2
File Size Uploaded
garsync-0.3.2.tar.gz 33.2 kB Details

Built distribution (wheel)

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

Total release size: 75.6 kB

Release files / garsync-0.3.2.tar.gz

Download URL garsync-0.3.2.tar.gz
Size 33.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5fd6fb2b011c89d6396579439ae17a30c4d4a10fa1bdb89739cc9c47344e6fe4
BLAKE2b-256 checksum
How to use checksums
c219dc2aa606794c59e278f72c83a080d5d115302edbbdcb8e9b17a53b888cc1
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.2-py3-none-any.whl

Download URL garsync-0.3.2-py3-none-any.whl
Size 42.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fe0b8dcc95c1f1d0f520ab8b9f5d4da547b14cfe9462b13e763471844ad8c3ff
BLAKE2b-256 checksum
How to use checksums
c3d835641327b05411fe207570f42acd49244b9f0cf4bce45e61ff34846f9a52
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

This release

0.3.2 This release

2 release files

0.3.1

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