What is NutriTrack? A Health Companion That Talks to AI
To be honest, I've tried plenty of health apps before—MyFitnessPal, Lose It, you name it—but I could never stick with them. It wasn't that they were bad; it's that manually logging every meal is just too tedious. Then I stumbled upon NutriTrack—a self-hosted platform where you can record diet, exercise, and weight just by chatting with an AI assistant. Essentially, it's a locally running service: you tell the AI, "I had oatmeal and a banana for breakfast this morning," and it automatically estimates calories and nutrients, stores them in a database, and presents trends on a beautiful dashboard. Even better, all your data stays on your own computer, so no privacy worries.
This project is open source on GitHub under the repository name BenZenTuna/Nutritrack, created by a developer with great ideas. It's specifically designed for AI agents—any LLM that supports HTTP calls can act as your nutrition assistant. You don't need to learn complex app operations; just talk normally.
What Pain Points Does It Solve?
- Input is too cumbersome: Traditional apps require you to search a database for each food item. With NutriTrack, you simply say, "I ate two fried eggs and a slice of whole wheat toast," and the AI automatically converts it.
- Data silos: Many health apps don't let you export your data easily. NutriTrack stores everything in a local SQLite database, and you can export it as CSV whenever you like.
- No personalization: It uses the Mifflin-St Jeor formula to calculate daily calorie and macronutrient targets based on your age, height, weight, and activity level—much more scientific than one-size-fits-all plans.
- No motivation system: It includes gamification—gain experience points by checking in daily, earn achievement badges for streaks, and level up to Elite status if you put in enough effort. It's genuinely addictive.
Core Features at a Glance
Here's a quick list of its highlights—see if they match your needs:
| Feature | Description |
|---|---|
| Diet Logging | AI estimates calories, protein, carbs, and fat, categorized by meal type (breakfast/lunch/dinner/snack) |
| Weight Tracking | Log daily weight, auto-calculate trends, with historical charts |
| Exercise Log | Record exercise type, duration, and intensity; auto-estimate calorie burn based on your weight, then add it back to your daily budget |
| Health Metrics | Blood pressure, blood sugar, blood oxygen, heart rate—all covered |
| AI Coach | Real-time suggestions after each meal, plus weekly health reports |
| Gamification | Experience points, streaks, badges, and elite levels |
My Hands-On Experience: Installation Is Surprisingly Simple
I chose manual deployment because I wanted to see how it actually works. If you have an AI assistant (like OpenClaw), you could just tell it, "Install this skill: [the raw skill file from the GitHub repository]" and then say "Deploy NutriTrack" and you're done. I didn't use that method; instead, I cloned it manually:
git clone [the NutriTrack repository URL]
cd Nutritrack
chmod +x deploy.sh
./deploy.sh
The script automatically checks if Docker is available; if not, it uses a Python virtual environment. My computer has Python 3.10+, so it automatically created a venv, installed dependencies, initialized the database, and finally told me to access the local server at port 8000. The whole process took about two or three minutes with zero configuration. And the deployment script is very smart—it never pops up with any questions.
After that, I set up my profile using a curl command simulation:
curl -X PUT localhost:8000/api/profile \
-H "Content-Type: application/json" \
-d '{"age":30,"gender":"male","height_cm":180,"weight_kg":85,"activity_level":"moderate","goal_weight_kg":78}'
Then I tried logging food:
curl -s -X POST localhost:8000/api/food \
-H "Content-Type: application/json" \
-d '{"name":"Oatmeal with banana","calories":350,"protein_g":12,"carbs_g":58,"fat_g":8,"meal_type":"breakfast"}'
The dashboard updated instantly, showing today's progress bar. Even cooler, I tried recording health metrics:
curl -s -X POST localhost:8000/api/health \
-H "Content-Type: application/json" \
-d '{"systolic_bp":118,"diastolic_bp":76,"blood_sugar":92,"blood_oxygen":98,"heart_rate":68}'
Usage Tips and Cautions
- Make the most of natural language: Tell the AI, "I ran 5 kilometers in about 40 minutes," and it will automatically calculate the calories burned using the MET formula.
- Set realistic goals: The Mifflin-St Jeor formula gives a good baseline, but you can adjust your activity level in your profile if needed.
- Keep your data consistent: Use the same units (kg, cm) for all inputs to avoid errors.
- Back up your database: Since everything is local, periodically copy the SQLite file to a safe location.
- Experiment with different LLMs: NutriTrack works with any HTTP-compatible language model—try different ones to see which gives the best food recognition.
- Start small: Log just one meal a day at first, then gradually add more to build the habit.