| name | hevy |
| description | Query workout data from Hevy including workouts, routines, exercises, and history. Use when user asks about their workouts, gym sessions, exercise progress, or fitness routines. |
| homepage | https://hevy.com |
| metadata | {"clawdbot":{"emoji":"🏋️","requires":{"bins":["hevy"],"env":["HEVY_API_KEY"]}}} |
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
hevy status
Workouts
hevy workouts
hevy workouts --limit 10
hevy workouts --all
hevy workout <workout-id>
hevy workouts --json
hevy workout <id> --json
hevy workouts --kg
Routines
hevy routines
hevy routine <routine-id>
hevy routines --json
Exercises
hevy exercises
hevy exercises --search "bench press"
hevy exercises --muscle chest
hevy exercises --custom
hevy exercises --json
Exercise History
hevy history <exercise-template-id>
hevy history <exercise-template-id> --limit 50
hevy history <exercise-template-id> --json
Creating Routines
echo '{"routine": {...}}' | hevy create-routine
hevy create-routine --file routine.json
hevy create-folder "Push Pull Legs"
echo '{"routine": {...}}' | hevy update-routine <routine-id>
hevy create-exercise --title "My Exercise" --muscle chest --type weight_reps
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
Other
hevy count
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
hevy workout <id>
User asks "How am I progressing on bench press?"
hevy exercises --search "bench press"
hevy history <exercise-id>
User asks "What routines do I have?"
hevy routines
hevy routine <id>
User asks "Find leg exercises"
hevy exercises --muscle quadriceps
hevy exercises --muscle hamstrings
hevy exercises --muscle glutes
User asks "Create a push day routine"
hevy exercises --search "bench press"
hevy exercises --search "shoulder press"
Notes
- Duplicate Prevention:
create-exercise checks for existing exercises with the same name before creating. Use --force to 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 workout
GET /v1/workouts/count - Total workout count
GET /v1/routines - List routines
GET /v1/routines/{id} - Get single routine
GET /v1/exercise_templates - List exercises
GET /v1/exercise_templates/{id} - Get single exercise
GET /v1/exercise_history/{id} - Exercise history
GET /v1/routine_folders - List folders
Write Operations (supported but use carefully)
POST /v1/workouts - Create workout
PUT /v1/workouts/{id} - Update workout
POST /v1/routines - Create routine
PUT /v1/routines/{id} - Update routine
POST /v1/exercise_templates - Create custom exercise
POST /v1/routine_folders - Create folder
The CLI focuses on read operations. Write operations are available via the API client for programmatic use.