paicer
AI-powered training plan manager for Claude Code. Provide your race goals, schedule, and fitness level to create a plan, with structured workouts that sync to your Garmin watch. After each training week, review your Garmin activity data against the plan and adjust targets based on how your body is responding — all through conversation.
Disclaimer: This tool is not a substitute for professional coaching or medical advice. Always listen to your body and consult a qualified professional for health or injury concerns.
Get Started
Install the Claude Code plugin:
/plugin marketplace add cvitan/paicer
/plugin install paicer@paicer
Then run /paicer:create-plan to create a training plan through a guided conversation. It handles CLI setup, configuration, and walks you through the process.
After each week of training, run /paicer:review-progress to review your plan progress and make any tweaks if needed. The review will also be appended to your plan for future reference.
Plan output options
- Markdown
- HTML — set up to print 1 wk/page
- Garmin — sync scheduled structured workouts
Strava Enrichment (optional)
Auto-label your Strava activities with your plan. When Garmin syncs a workout to Strava, a small Cloudflare Worker matches it to your plan by date and sport, renames it, and adds a planned-vs-actual description — turning "Afternoon Run" into "Tempo 2x15 min" with the week's targets and your actual stats.
See strava-enricher/ for setup.
CLI Commands
If you prefer to run paicer directly rather than through the Claude plugin:
paicer render --plan my-plan.yaml # Generate Markdown
paicer render --html --plan my-plan.yaml # Generate HTML
paicer sync w7 --plan my-plan.yaml # Sync week 7 to Garmin
paicer sync w7d2 --plan my-plan.yaml # Sync specific workout
paicer sync p2 --plan my-plan.yaml # Sync entire phase
paicer exercises --search bench # Look up Garmin strength exercise names
Supported Sports
Running, cycling, swimming (pool and open water), track sessions, strength training, and multisport/brick workouts (bike + run with transition tracking). Requires a Garmin watch — multisport needs a compatible model (Fenix, Forerunner 570/970, Enduro).
Strength training
Strength sessions sync as structured Garmin workouts with the exercise, set and rep count, and rest timer on each step, so the watch guides you through the session and logs what you actually lifted. Plans can be strength-only or mix lifting with endurance work.
Exercise names come from Garmin's own catalog (51 categories, 1,846 exercises), vendored so it works offline. Paicer validates every exercise before upload — a wrong name would otherwise upload without complaint and show as a generic exercise on the watch. Look names up with paicer exercises --search bench.
Plans that include lifting get coaching guidance on splits, set and rep schemes, equipment substitutions, and — the part general lifting advice misses — how to place strength work so it doesn't compromise key runs or rides.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file paicer-0.2.0.tar.gz.
File metadata
- Download URL: paicer-0.2.0.tar.gz
- Upload date:
- Size: 210.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
155ec14c7579e273ac32d3500e1c1511151646a7febde2ba106f22357ec2ae28
|
|
| MD5 |
790d5566af328be672bde72dbe863451
|
|
| BLAKE2b-256 |
4e3948439ded9babc6852ce0f04f90ae90e1044f139c34a06385ace7d37a5b9f
|
Provenance
The following attestation bundles were made for paicer-0.2.0.tar.gz:
Publisher:
publish.yml on cvitan/paicer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paicer-0.2.0.tar.gz -
Subject digest:
155ec14c7579e273ac32d3500e1c1511151646a7febde2ba106f22357ec2ae28 - Sigstore transparency entry: 2515822932
- Sigstore integration time:
-
Permalink:
cvitan/paicer@9cd9003abd7aa35bec00e1894cee4bb4711399d4 -
Branch / Tag:
refs/tags/0.2.0 - Owner: https://github.com/cvitan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9cd9003abd7aa35bec00e1894cee4bb4711399d4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file paicer-0.2.0-py3-none-any.whl.
File metadata
- Download URL: paicer-0.2.0-py3-none-any.whl
- Upload date:
- Size: 40.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af3d4277ef02e2f2e685b564584bd56d476377e1f2392af6bd3b17a900d588b2
|
|
| MD5 |
c66299c3f9ffcaf1ab57d7880e1cdbce
|
|
| BLAKE2b-256 |
d011d00654e853dba107e5631eef67a7a8867cad9596cd708c5eb20144049ea9
|
Provenance
The following attestation bundles were made for paicer-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on cvitan/paicer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
paicer-0.2.0-py3-none-any.whl -
Subject digest:
af3d4277ef02e2f2e685b564584bd56d476377e1f2392af6bd3b17a900d588b2 - Sigstore transparency entry: 2515822963
- Sigstore integration time:
-
Permalink:
cvitan/paicer@9cd9003abd7aa35bec00e1894cee4bb4711399d4 -
Branch / Tag:
refs/tags/0.2.0 - Owner: https://github.com/cvitan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9cd9003abd7aa35bec00e1894cee4bb4711399d4 -
Trigger Event:
release
-
Statement type: