hevy
SKILL.md
Hevy CLI
CLI for the Hevy workout tracking API. Query workouts, routines, exercises, and track progress.
Setup
Requires Hevy Pro subscription for API access.
- Get API key from https://hevy.com/settings?developer
- Set environment variable:
export HEVY_API_KEY="your-key"
Commands
Status
# Check configuration and connection
hevy status
Workouts
# List recent workouts (default 5)
hevy workouts
hevy workouts --limit 10
# Fetch all workouts
hevy workouts --all
# Show detailed workout
hevy workout <workout-id>
# JSON output
hevy workouts --json
hevy workout <id> --json
# Show weights in kg (default is lbs)
hevy workouts --kg
Routines
# List all routines
hevy routines
# Show detailed routine
hevy routine <routine-id>
# JSON output
hevy routines --json
Exercises
# List all exercise templates
hevy exercises
# Search by name
hevy exercises --search "bench press"
# Filter by muscle group
hevy exercises --muscle chest
# Show only custom exercises
hevy exercises --custom
# JSON output
hevy exercises --json
Exercise History
# Show history for specific exercise
hevy history <exercise-template-id>
hevy history <exercise-template-id> --limit 50
# JSON output
hevy history <exercise-template-id> --json
Creating Routines
# Create routine from JSON (stdin)
echo '{"routine": {...}}' | hevy create-routine
# Create routine from file
hevy create-routine --file routine.json
# Create a routine folder
hevy create-folder "Push Pull Legs"
# Update existing routine
echo '{"routine": {...}}' | hevy update-routine <routine-id>
# Create custom exercise (checks for duplicates first!)
hevy create-exercise --title "My Exercise" --muscle chest --type weight_reps
# Force create even if duplicate exists
hevy create-exercise --title "My Exercise" --muscle chest --force
⚠️ Duplicate Prevention: create-exercise checks if an exercise with the same name already exists and will error if found. Use --force to create anyway (not recommended).
Routine JSON format:
{
"routine": {
"title": "Push Day 💪",
"folder_id": null,
"notes": "Chest, shoulders, triceps",
"exercises": [
{
"exercise_template_id": "79D0BB3A",
"notes": "Focus on form",
"rest_seconds": 90,
"sets": [
{ "type": "warmup", "weight_kg": 20, "reps": 15 },
{ "type": "normal", "weight_kg": 60, "reps": 8 }
]
}
]
}
}
Other
# Total workout count
hevy count
# List routine folders
hevy folders
Usage Examples
User asks "What did I do at the gym?"
hevy workouts
User asks "Show me my last chest workout"
hevy workouts --limit 10 # Find relevant workout ID
hevy workout <id> # Get details
User asks "How am I progressing on bench press?"
hevy exercises --search "bench press" # Get exercise template ID
hevy history <exercise-id> # View progression
User asks "What routines do I have?"
hevy routines
hevy routine <id> # For details
User asks "Find leg exercises"
hevy exercises --muscle quadriceps
hevy exercises --muscle hamstrings
hevy exercises --muscle glutes
User asks "Create a push day routine"
# 1. Find exercise IDs
hevy exercises --search "bench press"
hevy exercises --search "shoulder press"
# 2. Create routine JSON with those IDs and pipe to create-routine
Notes
- Duplicate Prevention:
create-exercisechecks for existing exercises with the same name before creating. Use--forceto override (not recommended). - API Limitations: Hevy API does NOT support deleting or editing exercise templates - only creating. Delete exercises manually in the app.
- API Rate Limits: Be mindful when fetching all data (--all flag)
- Weights: Defaults to lbs, use --kg for kilograms
- Pagination: Most commands auto-paginate, but limit flags help reduce API calls
- IDs: Workout/routine/exercise IDs are UUIDs, shown in detailed views
API Reference
Full API docs: https://api.hevyapp.com/docs/
Available Endpoints
GET /v1/workouts- List workouts (paginated)GET /v1/workouts/{id}- Get single workoutGET /v1/workouts/count- Total workout countGET /v1/routines- List routinesGET /v1/routines/{id}- Get single routineGET /v1/exercise_templates- List exercisesGET /v1/exercise_templates/{id}- Get single exerciseGET /v1/exercise_history/{id}- Exercise historyGET /v1/routine_folders- List folders
Write Operations (supported but use carefully)
POST /v1/workouts- Create workoutPUT /v1/workouts/{id}- Update workoutPOST /v1/routines- Create routinePUT /v1/routines/{id}- Update routinePOST /v1/exercise_templates- Create custom exercisePOST /v1/routine_folders- Create folder
The CLI focuses on read operations. Write operations are available via the API client for programmatic use.
Weekly Installs
4
Repository
clawdbot/skillsInstalled on
opencode3
windsurf2
clawdbot2
trae2
codex2
claude-code2