hevy について
hevyは、トレーニング計画をCLIでHevyのルーティンにまとめるスキルです。エクササイズの検索、JSON形式、セット種別、一般的なエラーへの対処を扱います。
主な機能
- 01種目、セット、回数、休憩の解析
- 02使用前のエクササイズID検索
- 03JSONテンプレートからルーティン作成
- 04種目種別に応じたセット項目の設定
- 05スーパーセットなどの構成への対応
- 06APIエラーや制限への対処
活用シーン
- 01文章のトレーニング計画をルーティン化
- 02トレーニングプログラムのルーティンを一括登録
- 03種目と器具のバリエーションを検索
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jakubrohleder/ agent-toolkit --skill hevyインストール後、Claude Code で/hevyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdbin/hevycommands/auth.shcache.shexercises.shfolders.shroutines.shworkouts.shlib/api.shcache.shcommon.shdate-parser.shpagination.shtemplates/routine.jsontests/auth.batscache.batserror-handling.batsexercises.batsfolders.batsglobal-flags.batsroutines.batstest_helper.bashworkouts.bats詳細
Hevy ルーティン作成ツール
クイックスタート
<skill-dir>/bin/hevy auth <key> # Authenticate (get key from hevy.com/settings)
<skill-dir>/bin/hevy exercises search "squat"
<skill-dir>/bin/hevy routines template > routine.json
# Edit routine.json
<skill-dir>/bin/hevy routines create routine.json
すべてのコマンドについては、<skill-dir>/bin/hevy --help を実行してください。
ワークフロー
- ワークアウトプランを解析する - エクササイズ、セット数、回数、重量、休憩時間を抽出します
- エクササイズ ID を検索する -
hevy exercises search <name> - ルーティン JSON を作成する -
hevy routines templateから始めます - ルーティンを作成する -
hevy routines create file.json
重要なルール
- メモでは 絶対に
@を使用しないでください(エラーが表示されないまま 400 エラーが発生します) - 必ず
{"routine": {...}}で囲んでください。オブジェクト単体は使用しないでください - 必ず セットのプロパティをエクササイズの種類に合わせてください:
weight_reps→ weight_kg、repsreps_only→ reps のみ(weight は使用しないでください!)duration→ duration_secondsdistance_duration→ distance_meters、duration_secondsshort_distance_weight→ distance_meters、weight_kg(ファーマーズウォーク、そり押し/引き)
- ID を 絶対に 推測しないでください。必ず
hevy exercises searchを使用してください
エクササイズの種類の判定
| ユーザーの説明 | エクササイズの種類 | セットのプロパティ |
|---|---|---|
| 重量+回数(「3x10 @ 135lb」) | weight_reps | weight_kg、reps |
| 回数のみ(「3x12 pull-ups」) | reps_only | reps のみ |
| 時間を保持(「60s plank」) | duration | duration_seconds |
| 距離+時間(「500m row」) | distance_duration | distance_meters、duration_seconds |
| 距離+重量(「50m farmers walk @ 80kg」) | short_distance_weight | distance_meters、weight_kg |
判断に迷った場合:hevy exercises get <id> を実行すると、エクササイズの種類を確認できます。
ワークアウトプランの解釈
スーパーセット:
- 「A1/A2」、「superset」、「paired」→ 同じ
superset_id(整数:0、1、2...) - 「Circuit」または「EMOM」→ すべてのエクササイズに同じ
superset_idを設定します - 別々のエクササイズ →
superset_id: null
休憩: スーパーセットの最後のエクササイズにのみ設定します
AMRAP/限界まで: "reps": null を使用します
スーパーセットの構造例:
{
"exercise_template_id": "79D0BB3A",
"superset_id": 0,
"rest_seconds": null,
"sets": [{"type": "normal", "weight_kg": 80, "reps": 10}]
},
{
"exercise_template_id": "1B2B1E7C",
"superset_id": 0,
"rest_seconds": 90,
"sets": [{"type": "normal", "reps": 8}]
}
よく使うエクササイズ ID
最新の ID は hevy exercises search で検索してください。以下は参考例です。
| エクササイズ | ID | 種類 |
|---|---|---|
| スクワット(バーベル) | D04AC939 | weight_reps |
| デッドリフト(バーベル) | C6272009 | weight_reps |
| ベンチプレス(バーベル) | 79D0BB3A | weight_reps |
| オーバーヘッドプレス(バーベル) | AE23FF09 | weight_reps |
| プルアップ | 1B2B1E7C | reps_only |
| プッシュアップ | 392887AA | reps_only |
| ローイングマシン | 0222DB42 | distance_duration |
| ストレッチ | 527DA061 | duration |
| ファーマーズウォーク | 49742539 | short_distance_weight |
カスタムエクササイズを作成する前に
- 部分一致する名前で検索します(「cable row」ではなく「row」)
- 器具のバリエーションを確認します(バーベル、ダンベル、ケーブル、マシン)
- 別名を試します(「Skull Crushers」=「Lying Tricep Extension」)
単位の換算
ユーザーが lbs で指定した場合は kg に換算します:weight_kg = lbs / 2.205
実際に扱いやすいよう、最も近い 0.5 kg に丸めます。
検索結果への対応
| 状況 | 対応 |
|---|---|
| 完全一致 | その ID を使用します |
| 類似する候補が複数ある(例:「Squat」でバーベル、ダンベル、スミスが返される) | ユーザーの説明に合った器具のバリエーションを選びます |
| 結果なし | より短い語句で検索します(「tricep pushdown cable」ではなく「tricep」) |
| それでも見つからない | 最終手段としてのみカスタムエクササイズを作成します |
一括インポートの方法
10 件以上のルーティンを含むプログラムの場合:
- すべての JSON ファイルを先に作成します
- ルーティンを 1 つ作成し、アプリに正しく表示されることを確認します
- 呼び出しの間隔を 2 秒空けて、残りを作成します
- 429 エラーが発生した場合:60 秒待ってから、失敗したルーティンから再開します
トラブルシューティング
| 問題 | 原因 | 解決方法 |
|---|---|---|
| HTML の応答 | メモに @ が含まれている | 「at」に置き換えます |
| エクササイズが見つからない | 入力ミス | 部分一致する名前で検索します |
| 401 Unauthorized | API キーが無効 | hevy auth test |
| 429 Rate limit | リクエストが多すぎる | 60 秒待ってから再試行します |
| 400 Bad Request | エクササイズの種類に合わないセットのプロパティ | hevy exercises get <id> でエクササイズの種類を確認します |
| フィールドが許可されていない | 更新時に読み取り専用フィールドが含まれている | id、created_at、updated_at フィールドを削除します |
| セットが拒否される | reps_only のエクササイズに weight_kg を指定している | 重量を削除し、reps のみを使用します |
CLI とこのファイルの使い分け
| 必要な情報 | 使用するもの |
|---|---|
| 正確なコマンド構文とすべてのフラグ | hevy <command> --help |
| ワークフロー、注意点、解釈ルール | このファイル |
| すべての機能の確認 | hevy --help |
コメント
Markdown 対応