From the Lab

Build-Your-Own Health Agent

an agent your family actually uses every day

pythonclaude / hermestelegramsqliteusda-api
$ cat problem.md

The Problem

"Agent" has become a word that means everything and nothing. Most people either over-build (a giant framework for a tiny job) or never start because the jargon makes it sound harder than it is.

I wanted the opposite: a small, sharp agent that does one real job, that a non-technical person in my family would actually text every day — not a demo that gets opened once.

The test isn't "does it work in a notebook." It's "is my husband still using it three weeks later."

$ cat solution.md

The Solution

I built three nutrition agents — one for me, one for my dad, one for my husband — off a single template, then open-sourced it so anyone can build their own.

An agent is three things:

  • A persona — what it's for and how it talks
  • A set of tools — log a meal, check the pantry, look up calories
  • A loop — read what you said, decide if a tool is needed, call it, answer

It ships in three levels you can stop at:

  • Level 1 — terminal CLI. Log meals, ask questions, local SQLite. Runnable in five minutes with one API key.
  • Level 2 — cloud. Claude + Railway + Telegram + USDA nutrition lookups. Text it from your phone, it's always on.
  • Level 3 — fully local. Hermes + local models, no cloud, fully private.

core/ is identical across all three. Only how it connects changes — swap the transport, keep the brain.

$ cat stack.md

Technical Stack

Deliberately boring tech so it stays hackable:

  • Python — the agent loop, tools, and DB layer (core/, shared across all levels)
  • Claude (cloud) or Hermes + local models (private) — swappable reasoning layer
  • SQLite — meals, pantry, recipes; a file at Level 1, always-on by Level 2
  • USDA FoodData Central — real nutrition numbers
  • Telegram — so you talk to it like texting a person
  • Railway — one-click-ish cloud host for the always-on version

None of these are load-bearing for understanding the agent. The agent is persona + tools + loop. Everything else is just how it remembers things and where it shows up.

$ cat impact.md

Impact

Three family members, three different needs, one template:

  • Mine keeps me from staring into the fridge in despair every night
  • My dad's holds his stricter diet and pulls in health data from his devices — runs in the cloud because he doesn't care about privacy
  • My husband's is a blend of the two — runs locally for privacy

THE RECEIPTS

Stop wherever it's useful

levelwhat you getneeds
1 — Terminallog meals, ask questions, local SQLiteone API key
2 — CloudClaude + Railway + Telegram + USDA lookupsa Railway account
3 — LocalHermes + local models, fully privatelocal hardware

core/ is the same in all three. You're not rebuilding the agent at each step — you're changing how you reach it.

Run it now

git clone https://github.com/bonus414/food-and-health-agent-template.git
cd food-and-health-agent-template
python -m venv venv && source venv/bin/activate
pip install -e .
export ANTHROPIC_API_KEY=sk-ant-...
python cli.py

Then just talk to it:

I had oatmeal and a banana for breakfast
What have I eaten today?
Do I have anything for a quick lunch?

You didn't write code that parses meals. You described a job, gave it tools, and it figured out the rest. That's the whole point.

Persona + tools + loop

No framework required to understand it:

  • Persona — who the agent is and how it talks
  • Tools — the things it can actually do (log food, check pantry, look up calories)
  • Loop — model reads your message, decides whether it needs a tool, calls it, reads the result, replies

A database, a nutrition API, a chat app, a cloud host — all of that just helps the agent remember and show up where you are. Nice to have. Not the agent.

← Back to the Lab