A coach that knows your numbers.

Send photos, weigh-ins, workouts, and questions, skcal logs everything and answers from your real numbers.

Photo in, macros out

Snap a picture of any meal and get itemized calories and protein back in seconds. Scale readouts, treadmill consoles, and tape measures work the same way.

Everything logs itself

"158.2 this morning" logs a weigh-in. "Ran 5k then 3x10 pullups" logs a workout with real fields. Voice notes work too, talk instead of typing.

It remembers you

Tell it once that you hate yogurt or that you're cutting to 167, and every future answer respects it.

Advice from your actual day

"What should I eat tonight?" gets an answer computed from the calories and protein you have left, not generic tips.

Bulks and cuts that check themselves

Start a bulk, cut, or maintenance phase at a weekly rate. Calories come from your own logged intake and weigh-ins, and Today flags it when you're gaining or losing faster or slower than planned.

The skcal Agent on iPhone answering what to eat for dinner, with options sized to the protein and calories left today

Mesocycles that program themselves.

Hypertrophy blocks in the Renaissance Periodization style: pick a split, lift, rate how it felt, and next week is written for you.

The skcal Train view on iPhone, week 2 day 2 of a mesocycle with logged squat sets, rest times, and a live rest timer

Start from a split, or build your own

Full Body, Upper/Lower, Upper Body, or Push/Pull/Legs at 3 or 6 days. Blocks run 3 to 8 weeks and end with a deload. Swap any exercise or add your own.

Volume follows your recovery

Each muscle starts at its minimum effective volume. After a session you rate soreness, pump, joint pain, and workload, and next week adds sets, holds, or cuts them, never past what you can recover from.

Weights and reps progress on their own

Hit your reps and next week's target is about 2.5% heavier. Fall short and you keep the weight and chase one more rep.

Effort ramps on schedule

Reps in reserve drop from 3 to 0 across the block, then the deload halves your sets and reps so you start the next one fresh.

Log it like you'd say it

Type a weight once and it fills every set below. Tap through with a live rest timer, or tell the agent "squats 3x8 at 225" and it fills them in. It can plan a whole block for you too.

Fully programmable underneath.

Every surface is an API. The agent and the web app are just clients.

A real CLI

Log, list, and check status from your shell. Install from npm or grab a standalone binary.

Scoped API keys

Mint keys limited to exactly what a script needs. Hashed at rest, revoke anytime.

weight:read nutrition:write targets:write agent:write

Typed HTTP API

OpenAPI 3.1 with a lint-perfect spec: every endpoint documented, every schema exact. Pipe /openapi.json straight into your codegen.

OAuth 2.1 everywhere

One sign-in guards the app, API, CLI, and MCP: PKCE, dynamic client registration, refresh tokens. No shared secrets.

Photo → macros

Snap, paste, or describe a meal; Claude estimates calories + protein per item and logs it. Correct it in one sentence.

Scale ingest

Point your smart scale's webhook at one token-authed endpoint. Weigh-ins land in your trend without opening anything.

Your data, in the open

Weights in kg, measurements in cm, meals as line items: all pullable over the API. It's your database row, not our moat.

Five ways in, one account

Web app Dashboard, trends, food log, and the agent chat. app.skcal.fit
Agent Chat with tools that read and edit your log, grounded in your numbers. app.skcal.fit/agent
MCP server 21 tools for food, weight, phases, and training, in Claude, ChatGPT, Claude Code, or any MCP client. skcal.fit/docs
CLI npm package and standalone binaries; browser or API-key sign-in. @skeptrune/skcal
HTTP API Typed OpenAPI 3.1 surface behind every other client on this list. /openapi.json

Start tracking today

Connect your agent or install the CLI in under a minute. Sign in with your phone number; OAuth handles the rest.

mcp https://app.skcal.fit/mcp
$ npm i -g @skeptrune/skcal
Get started