++

The hackable workout tracker
for incrementing yourself++

Today's session shows exactly what changed since last time — +5 lb here, +2 reps there. History is append-only. Your data is versioned JSON in a repo you own, with a CLI and an MCP server when you want to script it.

iOS 26+ · watchOS companion · TestFlight beta

WHY ANOTHER TRACKER

Today is a diff

Your staged workout shows exactly how it differs from last time — +5 lb here, +2 reps there, 1 new. The number that matters is the delta.

History is append-only

Finished sessions are the record. No delete button, no editing the past. Deloads render neutral — the app celebrates up and never shames down.

Zero-keyboard logging

Steppers and wheels tuned to real gym math — 2.5 lb microplates, rep ranges like 15–20 that shift as a unit, supersets that rotate themselves. Nothing to type at the squat rack.

Your data is a repo

Training data lives as versioned, deterministic JSON — export it, sync it to a GitHub repo you own, diff it, script it. No server. The format is the API.

Built for developers (and their agents)

A Swift CLI (plusplus lint · stats · import · export), an MCP server for agents, and Actions recipes for your workouts repo. Your training program can have CI.

THE SHAPE OF IT

$ plusplus stats --json workouts/
{
  "sessions": 47,
  "streak_weeks": 9,
  "net_weight_moved_up": "+120 lb"
}

$ git log --oneline history/2026/
9f3ab21 Log: Push Day — 18 sets, 42 min
4c81e02 Log: Pull Day — 15 sets, 38 min

every session is a commit · your program is a pull request away

STATUS

Beta. PlusPlus is in active development and on TestFlight. The interchange format is versioned (schema v1) and the repo layout is stable. The app is open source — AGPL-3.0, with the interchange format, Kit, and CLI under MIT. Public beta and App Store release are on the way.