← Back to Plugins
Tools

Coach

sctg-development By sctg-development 👁 145 views ▲ 0 votes

AI endurance coach plugin for OpenClaw, backed by garmin-cli

GitHub

Install

openclaw plugins install npm:@sctg/openclaw-coach

README

# OpenClaw Coach

An AI endurance coach plugin for [OpenClaw](https://github.com/openclaw/openclaw),
built on top of [garmin-cli](https://github.com/sctg-development/garmin-cli)
(the `gc` CLI for Garmin Connect).

It ships:

- A `coach` skill with real coaching methodology (HRV/readiness
  interpretation, training-zone recalibration, grade-adjusted pace and
  cardiac-drift analysis, trail/vertical periodization) and safety framing
  (see [`skills/coach/SKILL.md`](skills/coach/SKILL.md)).
- `coach_garmin_digest`, aggregating the handful of `gc` commands a routine
  check-in needs (recent activities, training readiness/status, HRV, body
  battery, sleep, weight trend, race predictions) into one call.
- `coach_activity_deep_dive`, a fine-grained bundle for one activity:
  elevation/grade-segmented splits, HR zones, and weather — the basis for
  grade-adjusted pace and cardiac-drift analysis.

It deliberately does **not** ship its own scheduler or a bundled athlete
profile. Proactive check-ins use OpenClaw's built-in
[Automations](https://docs.openclaw.ai/automation/cron-jobs) (`openclaw
automations create ...`), and the athlete's actual profile — bio, personal
records, goal race, injury/medical history, current constraints — lives in a
workspace `ATHLETE.md` file you maintain yourself, the same way OpenClaw
already handles `AGENTS.md`/`SOUL.md`/`USER.md`. That file is never part of
this repo: it's personal health data, and this plugin is public.

## Requirements

- An OpenClaw Gateway (2026.8.2+).
- [`gc`](https://github.com/sctg-development/garmin-cli) installed and
  authenticated (`gc login ...`) in the same environment the Gateway runs
  in. The bundled [`garmin`](https://github.com/openclaw/openclaw/tree/main/skills/garmin)
  skill already documents this.

## Install

```bash
openclaw plugins install npm:@sctg/openclaw-coach
```

Or as a git submodule alongside a local OpenClaw checkout, matching how this
was originally built — see the parent deployment's plugin loading setup for
the exact wiring.

## Publishing

`.github/workflows/publish.yml` publishes to npm when a GitHub Release is
published (or manually via workflow dispatch). It expects an `NPM_TOKEN`
repository secret with publish rights to the `@sctg` npm org:

```bash
gh secret set NPM_TOKEN --repo sctg-development/openclaw-coach
```

The workflow checks that `package.json`'s version matches the release tag
(`vX.Y.Z`) before building and publishing, so bump the version and tag
together.

## Set up

1. Confirm `gc status` succeeds in the Gateway's environment.
2. Create `ATHLETE.md` in your OpenClaw workspace from the template in
   [`skills/coach/SKILL.md`](skills/coach/SKILL.md#athletemd-template), or
   just ask the coach to create it with you.
3. Optionally, set up a proactive check-in — see
   [the skill's "Proactive check-ins" section](skills/coach/SKILL.md#proactive-check-ins)
   for the `openclaw automations create` recipe.
4. Ask the coach for a status update, a plan, or anything else — it reads
   `ATHLETE.md` and pulls Garmin data as needed.

## Configuration

| Key         | Type   | Default | Description                                     |
| ----------- | ------ | ------- | ------------------------------------------------ |
| `gcBinary`  | string | `"gc"`  | Path to the garmin-cli binary, if not on `PATH`. |

```json5
{
  plugins: {
    entries: {
      coach: {
        config: { gcBinary: "/usr/local/bin/gc" },
      },
    },
  },
}
```

## Why so little custom code?

Most of what an "AI coach" needs is already solved by OpenClaw itself: full
Garmin data access (the `garmin` skill), scheduling (Automations), and
durable per-athlete context (workspace files). This plugin's job is the one
thing those don't cover well on their own — collapsing several Garmin calls
into one coaching-shaped digest — plus the coaching methodology and safety
framing as a skill. See [`skills/coach/SKILL.md`](skills/coach/SKILL.md) for
the actual coaching logic; it lives in prose, not code, because a coach's
judgment calls (how to weigh a good VO2max trend against a still-healing
fracture, for instance) belong in reasoning, not a rigid algorithm.

## License

MIT — see [LICENSE](LICENSE).
tools

Comments

Sign in to leave a comment

Loading comments...