Skip to main content

Runspector — AI running coach and Garmin MCP server

A local-first AI running coach for your Garmin data. Runspector syncs your Garmin Connect data into a SQLite file on your own machine, decides today's training (GO / EASY / REST) with a deterministic readiness engine, and lets Claude explain that decision and plan the week with you: in a small web app, or as an MCP server for Claude Code and Claude Desktop. Nothing reaches your watch without your yes.

Formerly runcoach-ai. Source, full documentation and the design decisions: github.com/edxleon/runspector.

Today: readiness verdict, decision, week plan, signals Coach: a card written by Claude from the tools' data Runs: intensity bands and detected interval structure

Quick start

uv tool install runspector    # needs uv: https://docs.astral.sh/uv/
# without uv:                 pipx install runspector
runspector serve --demo       # look around without any account
runspector serve              # the real thing: opens http://127.0.0.1:8765, sign in to Garmin there

Coach cards run on Claude Code on your machine, with your own Claude sign-in: install it and run claude auth login once. It needs a paid Claude plan (Pro, Max, Team or Enterprise) or an Anthropic API account; no API key is needed on a plan. Without Claude Code, coach in the Claude Desktop chat instead (below). Everything except the coach works without Claude. Step by step: Connecting Claude.

In Claude Code or Claude Desktop

claude mcp add runspector -- runspector mcp
# then ask: "should I train today?"

Or, without installing it first, in an MCP client's JSON configuration:

{ "mcpServers": { "runspector": { "command": "uvx", "args": ["runspector", "mcp"] } } }

Sign in to Garmin once before that: runspector login (or uvx runspector login).

Good to know

  • Your Garmin password goes to Garmin once, to sign in; only the session token is kept, in a folder only your user account can read.
  • Not affiliated with Garmin. It uses the unofficial python-garminconnect library against your own account.
  • A training tool, not medical advice.

MIT licensed. Issues: github.com/edxleon/runspector/issues.

Metadata

Release files for runspector 0.7.0

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

Source distribution (sdist)

Source distribution for runspector 0.7.0
File Size Uploaded Provenance Actions
runspector-0.7.0.tar.gz 9.8 MB With provenance Details for runspector-0.7.0.tar.gz

Built distribution (wheel)

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

Total release size: 10.2 MB

Release files / runspector-0.7.0.tar.gz

Download URL runspector-0.7.0.tar.gz
Size 9.8 MB
Tags Source
SHA-256 checksum
How to use checksums
3c05f02d972db1a73a4ab3fac3cc2478b1d05abc41db8f2f4afa901739b61438
BLAKE2b-256 checksum
How to use checksums
eb02820e757fa8035144f526c00ca1ffdf5dea6ceb9741f83611206b30b902c6
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 Nov 1, 2026.

Transparency log

Release files / runspector-0.7.0-py3-none-any.whl

Download URL runspector-0.7.0-py3-none-any.whl
Size 331.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
19fc876cdf99232d3046389cca1c2b1127fad5f9439f33cd55f7e0cdfd807ee9
BLAKE2b-256 checksum
How to use checksums
c97649b713fba273903a2b9e0691e717b76ca8e2fc4f3b663f3de939298ef2ec
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 Nov 1, 2026.

Transparency log

Security for runspector 0.7.0

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 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for runspector-0.7.0.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 Nov 1, 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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