CLOSED-LOOP BODY COMPOSITION · v0.1 · BENGALURU

Set a goal. Log your weight. Everything else runs on autopilot.

It reads your training, adapts your macros, and stocks your fridge via Swiggy Instamart for Indian lifters who are tired of tracking apps that stop at tracking.

closed beta · 47 lifters · bengaluru, mumbai, hyderabad first

THE GAP

Every fitness app stops one step short.

You can track lifts, log calories, or order groceries. No tool closes the loop between them, and bodyctl is built to do exactly that.

Comparison of bodyctl against existing fitness and nutrition tools.
ToolWhat it doesWhat it misses
MacroFactorAdaptive TDEE, clean loggerWestern food DB, no grocery, ignores your training
HealthifyMeCalorie chat, human coachesShallow engine, wild restaurant macros, upsell loop
CronometerMost accurate loggerPure log. No controller. No automation.
MyFitnessPalMassive crowd-sourced DBStale UI, ads, no Indian depth
HevyBest lift tracker on the marketTraining only. Nutrition is your problem.
bodyctlGoal → macros → cart, training-aware, Indian-firstv1 is COD-only. Restaurant macros are envelopes, not logs.

SYSTEM ARCHITECTURE

Boring layer first. Then automation.

The macro engine is a pure function: weight history in, daily targets out. No network calls, no UI state, no ORM. We tested it against 200 synthetic lifters before a real user touched it.

Everything else is plumbing. Swiggy MCP for Instamart. Hevy MCP for training data. IFCT 2017 + Docling OCR for nutrition. Postgres for state, pgvector for SKU matching. The agent orchestrates. It does not invent.

weight logdailyhevy mcptrainingbodyctl agentgoal enginePImeal plannerILPgrocery aggregatorpostgrespgvectorifct 2017docling OCRswiggy mcpinstamart

CORE COMPONENTS

Five small things, wired together.

goal engine

Mifflin-St Jeor for seed. PI controller adapts TDEE from weight trend. Hard-clamped for first 4 weeks because signal is noise until then.

±5% macro accuracy after week 4

meal planner

ILP solver picks from 50–100 Indian meal blocks calibrated to portion sizes. Solves for macros, budget, and prep time. No balanced bowls nonsense.

roti, dal, paneer, whey, eggs, curd, oats

grocery aggregator

Maps week's meals to pin's live Instamart SKUs. Builds cart. You triple-confirm. Order placed COD.

COD ONLY · v1

hevy power-up

Reads volume and session RPE from Hevy. Adds carbs on heavy lower-body days. Pulls back on full rest days. Optional. Macros work without it.

requires hevy pro

restaurant fallback

Dineout integration logs restaurant meals as macro envelopes, not point estimates. Honest ±300 kcal error on Indian curries. Better than guessing zero.

±300 KCAL ENVELOPE

HONEST CONSTRAINTS

Things this product cannot do, and why we say so upfront.

Every fitness app over-promises. We won't.

SWIGGY

Orders are COD-only and irrevocable in v1. We triple-confirm before any place-order call. UPI checkout lands when Swiggy ships it.

INSTAMART

Catalogue churns per pin per week. SKUs are cached aggressively, never hardcoded. Your cart on Monday may not exist Sunday.

IFCT 2017

542 raw food entries. Authoritative for dal, atta, paneer, eggs. Branded packaged foods like whey and protein bars need OCR via Docling.

PORTIONS

One roti is 25–50g atta depending on whose hand rolled it. Onboarding calibrates portion sizes once. We do not pretend everyone eats same gram.

TDEE

Controller whips wildly in first 4 weeks of user data. Early estimates are hard-clamped and shown with confidence band.

DPDP

Weight, food, and training data are health data under DPDP 2023. Data minimization by default. No third-party analytics on user records.

BUILD STATUS · UPDATED WEEKLY

Where this is right now.

IFCT 2017 ingestion · 542 foods
shipped
Synthetic test harness · 200 lifters
shipped
Macro engine · PI controller
shipped
Postgres + pgvector schema
shipped
Meal planner · ILP solver
in progress
Hevy MCP integration
in progress
Onboarding · portion calibration
pending
Swiggy MCP · Instamart cart
Web app · Next.js 15
pending
Dineout · restaurant fallback
pending
iOS shortcut · weight log
pending

Swiggy Builders Club approval pending. Track at github.com/akl773/bodyctl.

commit: github.com/akl773/bodyctl@dcf28cc

Closed beta. 47 lifters in. Bengaluru, Mumbai, Hyderabad first.

We onboard manually. We read every reply. No drip campaign.

or email akhil@bodyctl.inwith your weight in kg, goal, and screenshot of last week's hevy. that's the application.