Nutrition Tracking Skill - Self-hosted Family Health Assistant for Diet Logging and Analysis

0 0 Updated: 2026-07-28 18:01:10

A nutrition tracking skill designed for the Wellness Advisor persona in StewardOS. It enables manual or voice-based meal logging, auto-calculates calories, macros, and micronutrients, tracks progress against personal goals, generates visual reports, and integrates with MCP servers and systemd runtime for a complete self-hosted health data pipeline.

Install
npx skills add https://github.com/hvkshetry/StewardOS --skill nutrition-tracking
Skill Details readonly

Still using a mobile app to track your diet? Try this self-hosted nutrition tracking skill instead

To be honest, I used to use those popular diet tracking apps too—MyFitnessPal, Lifesum, you name it. But every time I saw them asking me to subscribe to see detailed analysis, or worried about my diet data being secretly sold to advertisers, I got really annoyed. Especially when you have elderly and children at home, and you want to manage health as a whole family, data privacy becomes even more important.

Then I discovered the open-source project StewardOS, which positions itself as a "self-hosted home office operating system." It has many "roles" like "Health Advisor," and under each role, there are various skills. One of them, called nutrition-tracking, exactly solved my pain point of recording meals. Today, let's dive into this skill, see how to use it, and whether it's worth the hassle.

What exactly does this skill do?

Simply put, it runs a little diet recording assistant on your own server. You need to install StewardOS first, right? Once installed, you add this skill with a single command. Then, you can input what you ate through a chat interface (or maybe a voice interface in the future), and it will automatically calculate calories, protein, fat, carbohydrates, compare them against your goals, and generate charts.

The most important part: all data stays on your own machine—no one can peek, and no one forces you to buy a subscription. Plus, it integrates with other skills in StewardOS (like weight tracking, activity tracking), forming a complete health data loop.

How easy is the installation?

I'm not exaggerating—just two steps.

  • Make sure you have Node.js (version 16 or higher) and npx installed.
  • Open a terminal and paste this command:
npx skills add https://github.com/hvkshetry/StewardOS --skill nutrition-tracking

Then wait for it to download and install dependencies—about half a minute to a minute—and it's done. When I installed it, I even had time to brew a cup of tea, and by the time I came back, it was already activated. By the way, the author of this skill is hvkshetry; he developed the entire StewardOS, quite impressive.

How to use it for the first time?

After installation, go to the StewardOS admin interface, find the "Skills" panel, and you should see nutrition-tracking showing as "Activated." Then open the Health Advisor chat window and say "Record lunch" or directly "I ate two eggs, a bowl of rice, and half a steak." It will automatically match the food database, return nutritional information, and ask if you want to adjust portions.

Once, I typed "I ate three buns," and it surprisingly recognized them as pork and scallion buns, with around 600 calories. Of course, some less common foods might not be found, and you can add them manually. For bulk additions, you can edit the data/food_db.json file in the skill directory and write in JSON format.

At the end of the day, if you ask "How much did I eat today?" it provides a summary table including total calories, each nutrient intake, and shows progress bars comparing against your goals. For example, if I set a daily target of 2000 kcal, it will say "You have consumed 1800 kcal today, remaining 200 kcal." It feels like having a personal nutritionist whispering in your ear.

What advantages does it have over other tools?

To be honest, this skill doesn't have all the bells and whistles of commercial apps—no barcode scanning yet, no automatic restaurant menu import. But its advantages are very clear: privacy, freedom, and customizability.

  • Privacy: Data stays on your own server; you can even back it up to your home NAS.
  • Freedom: You can modify any code, expand the food database, or even add new nutrient calculation rules. If you know a bit of JavaScript, you can add a "calculate vitamin C" feature yourself.
  • No ads, no subscriptions: You never need to pay. The only cost is your own server (a Raspberry Pi or an old computer works).
  • Integration: It works with other skills in the StewardOS ecosystem. For example, you can let the weight tracking skill automatically update after daily weighing, and then the nutrition tracking skill adjusts suggestions based on weight changes.

Of course, there is a learning curve: you need some command-line skills and have to maintain the server yourself. But if you're already tinkering with Home Assistant or a NAS, this is a piece of cake.

Some tips for using it

After using it for a while, here's what I've learned:

  • Pre-build common meal templates: If you eat the same thing every morning (like cereal + milk + banana), create a "Breakfast Template" in the database. Then just say "Breakfast" and it auto-fills—saving time and effort.
  • Set macro-nutrient ratios when setting goals: Don't just set total calories; also set protein, fat, and carb ratios. For example, during bulking, I set protein at 30%. It then reminds me to eat more chicken breast per meal.
  • Export data periodically: You can export CSV and use Excel for more complex analysis, like seeing which days of the week you had too many carbs.
  • Share with family: StewardOS supports multiple users. Each family member can have their own Health Advisor role, recording their data independently without interference. My family of three all use it; if my child eats snacks, I can check immediately.

What if you run into issues?

When I first started, I encountered a problem with food name matching. For example, I said "I ate two kiwifruits," and it didn't recognize them. I went to GitHub and filed an issue with the author, who replied quickly and guided me to manually add them to the database. Also, if you find the installation command failing, check if your network can access GitHub, or try using a... (the original Chinese text trails off; I'll keep it as a natural ellipsis).