npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

endurance-coach

v1.3.0

Published

Endurance Coach allows you to use Claude (or any AI assistant) to create custom-tailored training programs for triathlons, marathons, and other endurance activities. Using a data-driven approach and principles from top training plans, the AI will create a

Downloads

674

Readme

Endurance Coach

Endurance Coach allows you to use Claude (or any AI assistant) to create custom-tailored training programs for triathlons, marathons, and other endurance activities. Using a data-driven approach and principles from top training plans, the AI will create a training plan that's uniquely fit for you, your personal fitness, and the constraints you have in the next couple of weeks. Maybe you're recovering from an injury, maybe you're traveling and don't have access to a pool or track in a certain week - tell the AI about it and it'll create a plan that works for you.

The output is a beautiful training plan app that allows you to add, edit, or move workouts, mark them as complete, and update key training data like heart rate zones, LTHR, threshold paces, FTP, and others. Your data is kept locally in your browser.

Workouts can be exported as simple calendar events (.ics), Zwift (.zwo), Garmin (.fit), or TrainerRoad/ERG (.mrc) workouts.

Examples

See example training plans at shiv19.github.io/endurance-coach-skill.

Installation & Creating a training plan

This skill works with any AI assistant that supports Skills (Claude.ai, Claude Code, and others). To use this tool, you need access to an AI assistant with network access for Skills. Depending on user/admin settings, Skills may have full, partial, or no network access.

Syncing all your Strava activities and creating a tailored training plan takes ca. 15 minutes.

Installing the Skill

Install the skill using the following command:

npx skills add shiv19/endurance-coach-skill

This command works with any AI assistant that supports skills (Claude.ai, Claude Code, and others).

Additional Setup for Claude.ai:

If you're using Claude.ai, you'll also need to:

  1. Open Claude.ai Settings
  2. Enable "Code execution and file creation"
  3. In the allowed domains list, add *.strava.com

Creating a plan

Use the most capable model available to you. Prompt your AI assistant with something like this:

Help me create a training plan for the Ironman 70.3 Oceanside on March 29th 2026 using the "endurance-coach" skill.

Your AI assistant will ask how you'd like to provide your fitness data. You have two options: You can either tell the AI about your fitness history manually - or you can give it access to your Strava activities. I recommend the later - data doesn't lie and more data allows the AI to make a training plan that really fits you.

Option 1: Connect to Strava (Recommended)

The easiest way to get a personalized plan is to let your AI assistant analyze your Strava training history. This gives the AI real data about your current fitness, training patterns, and progress.

The AI needs a Client ID and Client Secret to access your Strava activities. You're only giving the AI access to your data - nobody else gets to see it.

  1. Go to strava.com/settings/api and log in with your Strava account
  2. You'll see a form titled "My API Application" - fill it out:
    • Application Name: Enter anything you like (e.g., "Endurance Coach")
    • Category: Select "Data Importer"
    • Club: Leave this blank
    • Website: Enter any URL (e.g., https://claude.ai)
    • Application Description: Enter anything (e.g., "Training plan generation")
    • Authorization Callback Domain: Enter localhost
  3. Check the box to agree to Strava's API Agreement and click Create
  4. Copy your Client ID and Client Secret and give them to the AI when prompted

Option 2: Manual Entry

Don't use Strava, or prefer not to connect it? No problem. You can tell the AI about your fitness directly. Be prepared to share:

Current Training (recent 4-8 weeks):

  • Weekly training hours by sport (swim/bike/run)
  • Typical long session distances (longest ride, longest run, etc.)
  • Training consistency (how many weeks have you been training regularly?)

Performance Benchmarks (any you know):

  • Bike FTP (Functional Threshold Power) in watts
  • Run threshold pace or recent race times (5K, 10K, half marathon, etc.)
  • Swim CSS (Critical Swim Speed) or recent time trial (e.g., 1000m time)
  • Max heart rate and/or lactate threshold heart rate

Telling the AI about your event & constraints

In the next step, the AI will ask you about yourself, the event you're training for, and any constraints it should keep in mind. Examples of information you'd tell any coach:

  • Years in the sport
  • Previous races completed (distances and approximate times)
  • Any recent breaks from training
  • Injuries or health issues
  • Schedule limitations (work travel, family, etc.)
  • Equipment access (pool availability, trainer, etc.)

The AI will use this information to create a plan tailored to your current fitness level. The more detail you provide, the better your plan will be.

Contributing

We welcome contributions from the community! Whether you want to add workout templates, improve the UI, fix bugs, or enhance documentation, your help is appreciated.

Please see our CONTRIBUTING.md for:

  • Development setup instructions
  • Coding standards and guidelines
  • How to submit pull requests
  • Areas where we need help

About

Lineage & Architectural Evolution

This project originated as a fork of Claude Coach by Felix Rieseberg, but it is no longer a fork in any meaningful architectural or behavioral sense.

The original project relied on large language models generating full, deeply nested workout plans as verbose JSON based solely on plain-text instructions. This approach had no formal schema contract, no validation loop, and no way for an AI agent to detect or correct structural errors before downstream rendering. Failures were late, brittle, and required human intervention.

This project deliberately replaces that architecture.

Key changes that make this an independent system:

Contract-first design The system now exposes explicit machine-consumable schemas (via validation tooling) rather than relying on prose instructions. AI agents can validate outputs and receive structured error feedback before proceeding.

Representation shift Workout plans are no longer generated as large raw JSON objects. Instead, the system defines a constrained domain-specific language composed of reusable workout templates. Plans are authored as concise YAML compositions of these templates, drastically reducing output size, entropy, and failure modes.

Template-based composition The AI agent does not invent workout structure freely. It selects from a predefined, inspectable set of workout building blocks supplied by the tool, turning generation into constrained composition rather than unconstrained construction.

Agent-first execution model The primary consumer is an AI agent, not a human. All commands are deterministic, side-effect explicit, and validation-first. Outputs are designed to support self-correction loops by the agent.

Independent surface and identity The project has a new name, a new installation path, and a different public contract. It is no longer Claude-specific and is designed to be consumed by any AI agent or orchestration framework.

Because the core abstraction, data representation, validation model, target consumer, and public interface have all changed, this project should be treated as an independently evolved system that acknowledges its lineage but does not share the original architecture or assumptions.

Disclaimer

Endurance Coach is an independent, open-source project. It is not made by, endorsed by, or affiliated with Anthropic, PBC. "Claude" is a trademark of Anthropic. This skill works with Claude and other AI assistants but is developed and maintained independently.

Maintainer

Maintained by Shiva Prasad · @multishiv19

License

MIT License. Original work Copyright © 2025 Felix Rieseberg. Modifications and independent development Copyright © 2025-2026 Shiva Prasad.