Tracking My Fitness with a Telegram Agent
I set a goal this year: 198 pounds down to 180. Eighteen pounds isn't dramatic, but I wanted to actually see the numbers move, not guess. Every fitness app I tried either did too much or didn't fit how I actually eat, work, and move through a day.
So I built my own.
The Problem
Logging food and activity has to be close to zero friction, or I stop doing it. Opening an app, tapping through food categories, and entering grams of protein while I'm cooking dinner or walking out of the garage after a ski is the exact friction that kills every streak I've ever started.
I didn't need more features. I needed a place to put the data and a way to put it there without breaking my stride.
The Solution
Two pieces.
The first is a dashboard at pauleident.com/fitness. Current weight, total lost, progress toward the goal, daily calorie deficit, protein, streak, and a projected finish date based on my actual pace. Recent entries drill down into the day's meals and activity so I can see exactly what a good day looks like and what a bad one cost me.
The second is how I feed it: an always-on OpenClaw agent I talk to over Telegram. "Turkey sandwich, about 550 calories, 40g protein." "60 minutes of XC ski, felt hard." "Weighed in at 194.2 this morning." The agent parses the message, updates today's entry, and texts back a confirmation.
How It Works
The site is Next.js 16 on Vercel, same stack from when I rebuilt pauleident.com. Fitness entries live in a structured store on the backend. The dashboard reads from it, charts weight and calories over time, and computes the streak as consecutive days at or under my calorie target — so the streak rewards compliance, not just showing up.
The Telegram side is where it gets fun. Messages route to my OpenClaw agent, which is just an LLM harness I keep running. It interprets whatever I send in plain English, figures out whether it's a meal, an activity, or a weigh-in, and calls the fitness API to either add today's entry or patch what's already there. Meals, activity, and weight all land in the same place the dashboard reads from. No forms. No categories. No tapping through a picker to find "whole wheat bread."
It's the same pattern I wrote about with my Gmail-to-Reminders service — Apple's tools (and everyone else's) are powerful, but only if you're willing to glue them together into something that fits your life.
The Result
I log while I'm living my day, not after. The dashboard is honest because the data is honest. And the streak keeps me accountable without a gamified app pinging me every four hours.
The best fitness tool is the one that meets you where you already are. For me, that's a text thread.