Strava

by home-screensVerified·Health & Fitness·v1.4.0·Updated Jul 28, 2026

Show your Strava life on the wall: recent activities, weekly and yearly stat tiles, goal rings, a 52-week training heatmap, a map of everywhere you go, gear mileage, segment PRs, your Eddington number, and more. Strava Subscription Required: Strava only lets subscribers create the free API app this plugin connects through, so you need an active Strava subscription to set it up.

Strava plugin, Route map view
Route map
Strava plugin, Latest activity view
Latest activity
Strava plugin, Recent activities view
Recent activities
Strava plugin, Training volume view
Training volume
Strava plugin, Year so far view
Year so far
Strava plugin, Goal progress view
Goal progress

About

Show your Strava activities on your Home Screens display: recent activities, weekly and yearly stat tiles, goal progress rings, a 52-week training heatmap, a map of everywhere you go, gear mileage, segment PRs, your Eddington number, and more.

Latest activity: stats, kudos, the route map and its photo

Read-only, one athlete, refreshed every 10 minutes.

Before you start

You'll need three things:

  1. Home Screens 1.8.0 or newer on your hub.
  2. A Strava account with an active Strava subscription. Strava requires a subscription to create the free API application this plugin connects through. Without a subscription, the connection cannot be set up — this is Strava's rule, not ours.
  3. Your own Strava API application (free to create, takes two minutes — see below).

Setup

1. Create your Strava API application

  1. Go to strava.com/settings/api and fill in the form.
  2. For Authorization Callback Domain, enter the address you use to open the Home Screens editor in your browser — just the name, no http:// and no port. For example: homescreens.local, or 192.168.1.50.
    • Strava allows exactly one callback domain. Always open the editor at that same address when connecting. If you sometimes use the name and sometimes the IP address, pick one and stick with it here.
  3. After saving you'll see your Client ID and Client Secret. Keep the page open — you'll paste both in a moment.

2. Install and connect

  1. Install the Strava plugin in Home Screens (Settings → Plugins).
  2. In the editor, add a Strava module to a screen.
  3. In the module's settings, paste your Client ID and Client Secret.
  4. Press Connect. A Strava window opens — sign in and press Authorize.
    • Leave "View data about your private activities" ticked. If you untick it, private activities won't appear and your totals will look smaller than expected.
  5. That's it. Pick a view and style it like any other module.

Your Strava sign-in happens on strava.com — this plugin never sees your password. The access tokens are stored only on your hub, in data/plugin-tokens/strava.json.

Views

ViewShows
DashboardYour latest activity, this week's day-by-day bars, and your first goal ring (or week-over-week deltas)
Stats tilesDistance, time, and activity count for this week and this year
Recent activitiesYour latest 1–10 activities with distance and pace or speed — races get a badge
Route galleryYour recent outdoor routes drawn as line art
Route mapEvery route from the last year overlaid on one canvas — the places you actually go
Training volumeA 12-week bar chart of distance or time with the 4-week average
Goal progressProgress rings for weekly or yearly distance, time, or climbing goals, with an "On track" check
HeatmapA 52-week grid of your training, like Strava's training log
Month calendarThis month as a calendar, colored by training intensity
Year so farA poster of the year: distance, time, climbing, active days, kudos, longest streak
This year vs lastCumulative distance lines for this year and last, with the to-date difference
Fitness trendFitness and fatigue lines from your daily training load, with your current form
RecordsYour bests: longest ride and run, biggest climb, fastest run, top speed — plus Strava's all-time longest ride and biggest climb
Eddington numberYour Eddington number (E activities of at least E km or miles) and progress to the next one
Training timesWhen you train: activity counts by weekday and by time of day
Segment PRsYour starred Strava segments with your best time on each
GearYour bikes and shoes with lifetime mileage bars
Planned routesRoutes you saved on Strava, drawn as line art with distance and estimated time
PhotosA wall of photos from your recent activities
MilestonesLifetime distance per sport with progress to the next round number
Latest activityYour newest activity, big: stats, calories, kudos, PRs, the route map, and its photo
Athlete cardYour profile photo, name, followers, and all-time plus this-year ride/run/swim totals

Screenshots

Route mapRecent activities
Every route from the last year on one canvasRecent activities with distance and pace
Twelve weeks of distance with the four-week averageThe year as a poster: distance, time, climbing, active days
Progress rings toward weekly and yearly goals

Options

OptionWhat it does
ViewWhich of the twenty-two views to show
UnitsKilometers or miles; "Match display settings" follows your display's units
Activity typeShow everything, or only runs, rides, swims, walks, hikes, skiing, or rowing. Picking "Runs" also includes trail runs and virtual runs.
Skip commutesLeave out activities you marked as a commute on Strava
Activities shownHow many rows the Recent activities view lists (1–10)
GoalsFor the Goal progress view: each goal has a measure (distance, time, or climbing), a period (this week or this year), and a target. Targets use natural units: distance in km or miles, time in hours, climbing in meters or feet.
Color squares byWhat drives the heatmap colors: activity count, distance, or time
Show route mapShow or hide the route drawing on the Latest activity view (indoor activities never have one)

Shared state

The plugin publishes five keys other modules can show or hide themselves based on: plugin:strava:last_activity_type, plugin:strava:last_activity_date, plugin:strava:current_streak, plugin:strava:days_since_last_activity, and plugin:strava:eddington_number. A key starts publishing as soon as any condition or rule references it — you don't need to add a Strava module to the screen, and it keeps publishing even while your Strava module is rotated off-screen. Goal progress and gear mileage aren't published; they depend on settings configured per module instance, which the shared-state bus doesn't have a way to read.

Disconnecting

Press Disconnect in the module settings to remove the saved connection from your hub. To also withdraw the app's access on Strava's side, visit strava.com/settings/apps and revoke it there.

Troubleshooting

"Connect" opens Strava but comes back with an error. The address in your browser doesn't match the Authorization Callback Domain of your Strava API app. Open the editor at the exact address you registered (name vs IP address matters), or update the domain at strava.com/settings/api.

Private activities are missing, or totals look too small. The "View data about your private activities" permission was unticked when you connected. Disconnect, press Connect again, and leave all the boxes ticked.

Everything worked and then stopped. If you regenerated your Client Secret on Strava, update it in the module settings and reconnect. Otherwise, check that your hub can reach strava.com.

For developers

npm install
npm test          # vitest unit tests
npm run build     # produces dist/bundle.js
npm run dev       # rebuild on change + serve on http://localhost:5173 for dev-mode loading

Load it into a running Home Screens editor via the Developer section of the plugin settings, pointing at http://localhost:5173.

Notes:

  • Data flows through the Home Screens plugin proxy, which injects and refreshes the OAuth token server-side; this bundle contains no auth code and never sees the client secret.
  • Strava is migrating its API host to www.api-v3.strava.com (mandatory June 1, 2027). Both hosts are already allowlisted in the manifest; the switch is the single API_BASE constant in src/api.ts.
  • Activity data covers the last ~366 days (up to 600 activities), which is what the heatmap and yearly stats need. The "This year vs last" view fetches two years (up to 1,200) so last year's full line can be drawn.

License

MIT

Versions

1.4.0
Jul 28, 2026
Border, shadow, padding, and opacity from the Style panel now apply, and colors are resolved once and reused so the module redraws less often
Needs Home Screens 1.8.0 or newer
1.3.0
Jul 27, 2026
The module now follows your Text color, plus the Border, Shadow, and Font settings that were previously ignored
Needs Home Screens 1.8.0 or newer
1.2.0
Jul 25, 2026
Publishes shared state (last activity type/date, current streak, days since last activity, Eddington number) so other plugins and rules can react to your Strava activity
Needs Home Screens 1.8.0 or newer
1.2.0-beta.2beta
Jul 20, 2026
Fixes StateProvider being silently missing from the built bundle, so shared-state keys actually publish
Needs Home Screens 1.8.0 or newer