OpenConnectCompanion is a fast, open-source, self-hostable tool for synchronizing, analyzing, and visualizing data from Garmin smartwatches and cycling computers — all written in Python.
It aims to provide a feature set identical to Garmin Connect™, while staying lightweight, fully open-source, and free from unnecessary bloat. Even if Garmin’s services were ever discontinued, OpenConnectCompanion is designed to remain fully functional for its users, as it does not depend on any Garmin services.
- Docker:
docker run -p 5000:5000 -d janmarkusdev/openconnectcompanion Debian/Ubuntu: Enable testing, runsudo apt-get install openconnectcompanionfrom AUR (git): runyay -S openconnectcompanion-git(or other AUR helper)from AUR (bin): runyay -S openconnectcompanion(or other AUR helper)Alpine: Enable testing repo,apk add openconnectcompanion- From source: Clone repo, satisfy
requirements.txt, runapp.py. - Other: Clone repo, run
install.shas root.
- Run
openconnectcompanion
Use this to import activities from your Device.
- Install MTP + GVFS packages
- Ubuntu/Debian:
sudo apt install gvfs gvfs-backends gvfs-fuse libmtp9 mtp-tools - Fedora:
sudo dnf install gvfs-mtp gvfs-fuse libmtp - Arch/Manjaro:
sudo pacman -S gvfs-mtp gvfs gvfs-gphoto2
- Connect and mount your Device
- Plug in via USB (original cable recommended).
- If your device has a USB mode setting, choose “MTP” or “File Transfer”.
- In your file manager (Nautilus/Dolphin/etc.), click the Garmin under “Devices”.
- Verify the mount
ls -la /run/user/$(id -u)/gvfs/
find /run/user/$(id -u)/gvfs -maxdepth 4 -type d -name Activities- Click “Sync Device” in the app (top-right)
- You’ll see a status message with files found and imported.
- Linux only. For reliable syncing, run the app natively (not in Docker), as GVFS/FUSE mounts are often not accessible from containers.
- Device not found: ensure it’s mounted in your file manager and try another cable/port.
- Still stuck: run
DEBUG_MODE=1 python app.pyand try again to see a more detailed status in logs.
Docker, Alpine Linux, Python, Flask, Werkzeug, pytz, tzlocal, python-dotenv, folium, leaflet, TailwindCSS, fitparse
- Support all workouts
- First beta containers release
OpenConnectCompanion is an independent open-source project and is not affiliated with or endorsed by Garmin Ltd. or its subsidiaries.