Skip to main content

unstrap

Your device data, set free. Install once (macOS, Linux):

curl -LsSf https://uvx.sh/unstrap/install.sh | sh

This installs uv if it isn't there yet, then the unstrap command (uv tool install unstrap@latest). Run the same line again to update; uv tool uninstall unstrap removes it. Already use uv? uvx unstrap works without installing.

Then plug in your Garmin device and run:

unstrap

It copies everything new off the device over USB, uploads it, and tells you when you can unplug.

Sync whenever a device is connected

unstrap listen           # keep running; sync each Garmin device when you plug it in
unstrap autostart        # run `listen` in the background at login (macOS and Linux)
unstrap autostart --off

autostart registers a LaunchAgent on macOS (logs in ~/Library/Logs/unstrap.log) or a systemd user service on Linux (logs: journalctl --user -u unstrap). After updating, run unstrap autostart again to restart it with the new version. (Run from uvx, it is pinned to that version: use uvx unstrap@latest autostart.)

Notifications

Unstrap shows a desktop notification when a sync finishes or fails (macOS, and Linux with notify-send). Turn them off with --no-notify or UNSTRAP_NOTIFY=0.

See the project README for how it works.

Metadata

Release files for unstrap 0.2.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 unstrap 0.2.1
File Size Uploaded Provenance
unstrap-0.2.1.tar.gz 106.5 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for unstrap 0.2.1
File
unstrap-0.2.1-py3-none-manylinux_2_34_x86_64.whl Python 3 none Linux glibc 2.34+ x86-64 Details
unstrap-0.2.1-py3-none-manylinux_2_34_aarch64.whl Python 3 none Linux glibc 2.34+ ARM64 Details
unstrap-0.2.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
unstrap-0.2.1-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details
unstrap-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 6.3 MB

Release files / unstrap-0.2.1.tar.gz

Download URL unstrap-0.2.1.tar.gz
Size 106.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c5c0991dda76ab9c08ae44079cdc7094fcc9a60eb6709b259f228d78d2efcdb5
BLAKE2b-256 checksum
How to use checksums
4173ab94b31a3b5a1609531e0cace30507aba5ba484ef8000577fed7b45f741d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 20, 2026.

Transparency log

Release files / unstrap-0.2.1-py3-none-manylinux_2_34_x86_64.whl

Download URL unstrap-0.2.1-py3-none-manylinux_2_34_x86_64.whl
Size 1.6 MB
Tags Linux glibc 2.34+ x86-64 Python 3
SHA-256 checksum
How to use checksums
8b04c53a46600900ef831891e95d6b09cfbe5b8a405fcfe7f1bf765ec32e7883
BLAKE2b-256 checksum
How to use checksums
85635401828f60cf7b727297391b8f4402dd9dfb19282be533f93d51e84b67b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 20, 2026.

Transparency log

Release files / unstrap-0.2.1-py3-none-manylinux_2_34_aarch64.whl

Download URL unstrap-0.2.1-py3-none-manylinux_2_34_aarch64.whl
Size 1.6 MB
Tags Linux glibc 2.34+ ARM64 Python 3
SHA-256 checksum
How to use checksums
16061d283bcfcb2287fbdb23226c0ed7b9f0c55bfa398c1e71f99ef2e0d857f8
BLAKE2b-256 checksum
How to use checksums
6d392ec3d97fe6ce525aa7e3af3843b544ccca22b91ee61cc4a4cad5bb9a76e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 20, 2026.

Transparency log

Release files / unstrap-0.2.1-py3-none-macosx_11_0_arm64.whl

Download URL unstrap-0.2.1-py3-none-macosx_11_0_arm64.whl
Size 1.5 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b595535c681f780d7888b671754257878803c60d3edb397353c13037e522d2eb
BLAKE2b-256 checksum
How to use checksums
7e49518e0f571e85afab334ececf3c4a7474213a6d15a6b96cf551aabe2218ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 20, 2026.

Transparency log

Release files / unstrap-0.2.1-py3-none-macosx_10_12_x86_64.whl

Download URL unstrap-0.2.1-py3-none-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4ea5eb1a83e34b482c0e194a253c06b8b4d5e176df0ef175a845a0d7ef69e478
BLAKE2b-256 checksum
How to use checksums
efe046377833c7fa9b45f8425e7d1e42f162b9e4ebc0ab58a830b889b7f5c929
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 20, 2026.

Transparency log

Release files / unstrap-0.2.1-py3-none-any.whl

Download URL unstrap-0.2.1-py3-none-any.whl
Size 31.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
98740ac9c1ad548a5057de4cc9c820fb7c6b1104f78db732dd0b4b172dee141f
BLAKE2b-256 checksum
How to use checksums
1d5b364cf51e76d72d734b89fb82fdcf80151c17fbab5f74482def10b649e9ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

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 20, 2026.

Transparency log

Security for unstrap 0.2.1

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.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for unstrap-0.2.1.tar.gz

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 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

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