Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "performance-agent",
"description": "PerformanceAgent — the evidence-based performance coach as a one-command Claude Code plugin (MCP server + coaching skills).",
"owner": {
"name": "Clément Rieux",
"url": "https://github.com/clementrx"
},
"plugins": [
{
"name": "performance-agent",
"source": "./",
"description": "Evidence-based performance coach: the MCP server (100+ tools) plus the coaching skills that drive it — needs analysis, periodization, nutrition, recovery, Garmin/Strava connection, pre-competition."
}
]
}
15 changes: 15 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "performance-agent",
"displayName": "PerformanceAgent",
"version": "0.11.0",
"description": "Evidence-based performance coach: the MCP server plus the coaching skills that drive it.",
"author": {
"name": "Clément Rieux",
"url": "https://github.com/clementrx"
},
"homepage": "https://github.com/clementrx/Performance-agent",
"repository": "https://github.com/clementrx/Performance-agent",
"license": "Apache-2.0",
"keywords": ["coaching", "training", "performance", "sports-science", "garmin", "strava"],
"mcpServers": "./.mcp.json"
}
8 changes: 8 additions & 0 deletions .mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"mcpServers": {
"performance-agent": {
"command": "uvx",
"args": ["performance-agent"]
}
}
}
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

All notable changes to PerformanceAgent. Versions follow the git tags.

## 0.11.0 — Claude Code Plugin

### Added

- **Claude Code plugin** — one-command setup that installs the MCP server **and**
all 16 coaching skills together, replacing the manual `claude mcp add` + skills
copy. From inside Claude Code:
`/plugin marketplace add clementrx/Performance-agent` then
`/plugin install performance-agent@performance-agent`. The repo is its own
marketplace (`.claude-plugin/marketplace.json`, `.claude-plugin/plugin.json`,
and a root `.mcp.json` running `uvx performance-agent`); Claude Code keeps it
updated via `/plugin marketplace update performance-agent`. Non-Claude-Code
clients keep the manual per-host setup in [docs/installing.md](docs/installing.md).

## 0.10.0 — Garmin/Strava Connection & Recovery Analyst

### Added
Expand Down
35 changes: 17 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ several athletes is just several folders — `cd` into the right one and the coa
up where you left off. Then you talk to it in plain language; no config files, no
commands to memorize.

### One-time setup (5 minutes, 3 steps)
### One-time setup (Claude Code — 2 commands)

**Never used Claude Code before?** Install it first:

Expand All @@ -99,28 +99,21 @@ curl -fsSL https://claude.ai/install.sh | bash
You'll also need [`uv`](https://docs.astral.sh/uv/getting-started/installation/) — it
fetches the right Python version by itself, nothing else to install.

**Step 1 — plug in the coach.** Run this once, from any terminal:
**Install the plugin.** From inside Claude Code, run these two commands once:

```bash
claude mcp add performance-agent -s user -- uvx performance-agent
```
/plugin marketplace add clementrx/Performance-agent
/plugin install performance-agent@performance-agent
```

This registers the coach's "brain" (the engine, the science library, your future
athlete profile) as a tool Claude Code can call. `-s user` makes it available from
One install gives you both halves of the coach: the *tools* (the engine, the science
library, your future athlete profile) as an MCP server, **and** the *coaching protocols*
— the 16 skills that tell Claude when to ask what, when to be honest about a goal, how
to build a program. The MCP server registers at user scope, so it's available from
every folder you later launch `claude` in — which is what makes one-folder-per-athlete
work.
work. Claude Code keeps the plugin up to date (`/plugin marketplace update performance-agent`).

**Step 2 — teach it how to coach.** Step 1 gave Claude the *tools* (the math, the
data). This step gives it the *coaching protocols* — when to ask what, when to be
honest about a goal, how to build a program:

```bash
git clone --depth 1 https://github.com/clementrx/Performance-agent
mkdir -p ~/.claude/skills
cp -R Performance-agent/skills/* ~/.claude/skills/
```

**Step 3 — fully quit and restart Claude Code.** New tools load only when a `claude`
**Fully quit and restart Claude Code.** New tools and skills load only when a `claude`
session *starts*: close any open session completely and run `claude` again.

**Check it worked** — open an athlete folder and ask:
Expand All @@ -131,6 +124,12 @@ session *starts*: close any open session completely and run `claude` again.

You should see 103 tools. If so, you're done — make a folder and start coaching.

> **Not on Claude Code?** Cursor, Claude Desktop and other MCP hosts have no plugin
> format. Register the server manually with `claude mcp add performance-agent -s user --
> uvx performance-agent` (or the equivalent JSON in your host's MCP config), then copy
> the coaching skills into your host's instructions. Full per-client steps:
> [docs/installing.md](docs/installing.md).

> **On a host that can't pick the launch folder?** Claude Desktop and a few other MCP
> hosts always start from the same place. There, set `PERFORMANCE_AGENT_HOME` to the
> athlete's folder in the server config instead of `cd`-ing into it.
Expand Down
4 changes: 3 additions & 1 deletion RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,9 @@ local agent session. The repo is release-ready when this checklist completes.

## Every release

1. Update the version in `pyproject.toml`; commit via PR.
1. Update the version in `pyproject.toml` **and** `.claude-plugin/plugin.json`
(keep them equal — the plugin `version` is what Claude Code shows in `/plugin list`);
commit via PR.
2. Tag and push:
```bash
git tag v0.1.0 && git push origin v0.1.0
Expand Down
20 changes: 20 additions & 0 deletions docs/installing.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,21 @@ published on PyPI as [`performance-agent`](https://pypi.org/project/performance-

## Claude Code

**Recommended — the plugin.** One install ships both the MCP server *and* the 16
coaching skills, and Claude Code keeps them updated. From inside Claude Code:

```
/plugin marketplace add clementrx/Performance-agent
/plugin install performance-agent@performance-agent
```

The MCP server registers at user scope (available in every folder) and every coaching
skill loads with it — so with the plugin you can skip the "Installing the coaching
skills" section below. Update later with `/plugin marketplace update performance-agent`.

**Manual — MCP server only.** To register just the server (and handle skills
separately, below):

```bash
claude mcp add performance-agent -s user -- uvx performance-agent
```
Expand Down Expand Up @@ -146,6 +161,11 @@ honest about a goal, how to periodize. Claude Code has native support for them;
other client needs the same content pasted into its own instructions mechanism, since
none of them read `SKILL.md` files directly.

> **On Claude Code, the plugin already did this.** `/plugin install
> performance-agent@performance-agent` (above) bundles all 16 skills — skip straight to
> "Connecting Garmin or Strava". The manual copy below is only for a skills-dir install
> without the plugin.

**Claude Code** — copy (or symlink) them into your personal skills directory:

```bash
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "performance-agent"
version = "0.10.0"
version = "0.11.0"
description = "Evidence-based AI physical preparation platform — backend"
readme = "README.md"
requires-python = ">=3.13"
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.