Goal-centered strength and conditioning

Pick the number. Pick the date. Zero in.

Zeroing a sight means adjusting it until the shot lands where you aim. Zeroed does that for your training. Your goals are the aim. Every session is a shot. The coach reads where they land and adjusts the plan, and you approve each move on your phone.

Runs in the browser and installs to your home screen. Plans with Claude through the Zeroed connector. iPhone app in progress.

BENCHPRESSBROADSPRINTHIP IR
  • 1 Zeroed
  • 2 On course
  • 1 Off course
  • 1 Needs a test

Example goals. Each goal owns a sector, and its points close on the center as it nears the target. Color says where it stands.

Aim, shoot, adjust

  1. 01 Aim

    A goal is a number and a date: Strict press 130 lb by Nov 27. Everything else answers to it.

  2. 02 Shoot

    Every session is a shot. Log a set that matches a goal and the goal moves on its own.

  3. 03 Adjust

    Claude reads where the shots land and proposes a move, with its reason. You accept it on your phone.

The aim

Every goal says where it stands.

Not a progress bar to squint at. Zeroed takes your last three real measurements, projects them to the due date, and compares that with the target. There are four answers, and only one of them asks you to act.

Zeroed
You hit the number. The brackets close and the goal turns confirmed green.
On course
The forecast reaches the target by the date. Plain text, no color. Most goals, most days.
Off course
The forecast misses, however far away the date is. Signal yellow, because it's the one to act on.
Needs a test
No recent real measurement, so the number is unproven. Amber and dashed until you test it.

Each state has its own shape as well: a closed square, a dot, a diamond, a dashed ring. None of them depends on telling colors apart.

The Goals tab for block 2, week 3 of 6, under the athlete's north star: jump higher for basketball without giving up the big lifts. A small goal reticle sits beside the summary: 1 zeroed, 2 on course, 1 off course, 1 test due. Below, targets are grouped by lane. Lifting: bench press e1RM 275 of 285 pounds, on course; strict press 120 of 130, off course. Conditioning: broad jump 101 of 100 inches, zeroed; alactic sprints 10 of 12 rounds, on course. Mobility: hip internal rotation 30 and 34 degrees toward 35, needs a test.

The goal page

Tap a goal. See the goal.

Every goal has a page of its own. It answers the question first, will you make it, and then shows its working.

  • History and a forecast. Your real measurements, then a cone out to the due date. Off course means the cone misses the target.
  • What feeds it. The lane that trains it, that lane's rule, and the sessions this week that move it.
  • The coach's moves, with reasons. Every change that touched this goal, why it was made, and whether Claude or the engine made it.
  • A test when it needs one. Logging a measurement is a button on the page, and the main button only when the goal needs a test.
The goal page for strict press 130, in the Lifting lane, measured by top set. Current 120 pounds, off course, target 130 by November 27. A chart shows measurements from 112 on September 30 rising to 120 by October 14, then flat for three weeks, with a forecast cone that ends at 120 on the due date, below the target band. The forecast line says it needs about 3 pounds a week from here and the last three weeks were plus 0. What feeds it: the Lifting lane's RPE autoregulation rule, Wednesday's Jump + Press session, and no press exposure on Friday. Coach moves: on October 28, Claude held the strict press at 120 because set 4 landed at RPE 7.5.

Lanes

Color is status. Shape is lane.

Lanes are how goals get trained. Each lane has its own progression rule and serves the goals bound to it, and one session can run several. Lanes are told apart by glyph and name, which leaves color free to mean one thing: where a goal stands.

  • Lifting

    tm_wave · rpe_autoreg

    Bench rides a training-max wave. Press adds 5 lb only when every set lands at or under the target RPE; otherwise it holds.

  • Conditioning

    time_interval · contacts

    Alactic rounds build 8, 10, 12. Jump contacts stay inside 40 to 80 a week.

  • Mobility

    measurement

    Range you can measure, like hip internal rotation, tested on both sides every two weeks.

  • Hypertrophy

    double_progression

    Load goes up once every set reaches the top of the rep range.

  • Your sport

    manual

    Basketball, a run club, a mat class. The coach sets its values. The sport itself stays yours.

Today's session on the Train tab, before it starts. Four movements from three lanes, and the three goals they move.

Sessions and sets

Every set is evidence.

Each goal names the metric that moves it. When a logged set matches, the goal moves on its own. You never retype a number into a goals screen.

Beat your best mid-session and the goal on that exercise ticks up. Reach the target and it turns green. The big moment waits for the finish line, where Goals moved shows what the session changed.

Goal source what moves it

top_set:Strict Press
Heaviest completed set
e1rm:Bench Press
Best estimated 1RM in a session
distance:Broad Jump
Best rep
rounds:Alactic Bike
Completed rounds
test:Hip IR
Measured by hand, on a cadence
Mid-session on the broad jump. Set 3 landed at 101 inches, a PR, and the goal chip on the exercise reads Target hit, 101 of 100 inches, in green with closed brackets. The note says the target locks in when the session is finished.
The finish screen's Goals moved list. Broad jump went from 97 to 101 of 100 inches and is stamped zeroed; a retest on November 24 confirms it. Alactic sprints went from 9 to 10 of 12 rounds. Strict press held at 120 of 130 pounds because set 4 landed at RPE 7.5.

The Claude connector

Claude adjusts the sight. You approve on your phone.

Connect Zeroed to Claude and plan in conversation. Claude reads where you stand against each goal, the lanes and sessions that feed it, and what you've logged. It proposes a move with its reason. The move shows up in the app on the goal it serves, and you accept it or ask why.

  • Goals in your own words. Tell Claude what you're after and it sets the goal: a number, a date, and the metric that moves it.
  • Every move keeps its reason. It sits on the goal and in Coach, so a press that held comes with the why.
  • Claude proposes. The engine writes. Accepting runs the same engine the app uses, so Claude and your phone never disagree on a number. Nothing changes until you say yes.
Coach, on the Moves view. A move proposed by Claude for the strict press 130 goal: add a Friday push press and cap set 4 at RPE 7, because press has held at 120 for three weeks with set 4 landing at RPE 7.5. A week diff shows the new Friday exposure, push press 3 by 3 at 105, and the set 4 cap going from RPE 8 to RPE 7. Accept and Ask why buttons sit under it. Earlier moves are listed with their reasons and whether Claude or the engine made them.

Connect Claude

claude.ai and Claude Desktop, on Pro or Max. About two minutes.

Claude's Request headers option isn't on every account yet. On Team or Enterprise plans, an Owner adds the connector under Organization settings → Connectors.

Already connected? Zeroed's server has a new address. Edit the Zeroed connector in Claude and set its URL to https://zeroed.madeforgreatnesslabs.com/functions/v1/mcp. Your token keeps working.

  1. In Zeroed, open You → Claude connector. Name a token (say, “Claude”), tap Create, then Copy URL + token. It's shown once; Zeroed only keeps a hash.
  2. In Claude: Customize → Connectors → + Add → Add custom connector.
  3. Name it Zeroed, paste the server URL you copied from the app, and hit Continue.
  4. Authentication: No sign in.
  5. Under Request headers, add header name authorization with value Bearer YOUR_ZEROED_TOKEN, then Add.
  6. Enable Zeroed in a chat and ask: “Where do I stand on my goals?”
Alternative: Claude Desktop config file

Needs Node.js. In Claude Desktop open Settings → Developer → Edit Config and add the server below. Then fully quit Claude Desktop and reopen it.

{
  "mcpServers": {
    "zeroed": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://zeroed.madeforgreatnesslabs.com/functions/v1/mcp",
        "--header", "Authorization: Bearer YOUR_ZEROED_TOKEN"
      ]
    }
  }
}

Revoke a token any time from the same screen. Tokens are rate-limited per key. Never paste a real token anywhere public.

Under every goal

The engine does the math. Every number shows it.

Goals sit on top of the same training engine as before. It's built for the gym floor: fast with a chalked thumb, fine with no signal.

  • Today's number, with its working

    Every load carries its reason line, like 235 = 94% of TM 250. The training max comes off the RPE chart, not a guess. Tap Why for the rest.

  • Back-offs follow the top set

    A point heavy takes 5% off the back-offs. A point light adds 2.5% for upper body, 5% for lower.

  • A check-in that moves numbers

    Sleep, readiness, both knees. Optional and one line long, and it changes today's loads instead of just being filed.

  • Intervals on a clock you can read

    Tabata, EMOM, or 6 × 30s on / 90s off, run full screen. The phase owns the color, with a sound cue on every change.

  • One tap repeats a set

    The check carries your last numbers into the empty fields, and the dimmed placeholder shows exactly what it will log.

  • Logs with no signal

    A finished session saves on your phone first, counts on your week at once, and syncs when you're back.

Set the aim.

Tell Zeroed what you're training for, in your own words. Your first read takes about 30 seconds, then your first session. No password: a code lands in your inbox.

Open Zeroed

Works in any modern browser; add it to your home screen. iPhone app in progress.