Aditya's Blog

Hermes runs my kitchen

The hard part of dinner was never the cooking. It was everything before it. What do I want to eat this week. What is already in the fridge. Which recipes overlap enough that I am not buying cilantro for one dish and watching it rot before the next. Then the list, the cart, and a week later re-counting what survived so the next list is not a guess. None of that is cooking. It is bookkeeping, and it added enough friction that I leaned on eating out more. So I moved it into a repo.

Hermes runs it

I do not run any of this by hand anymore. Hermes does. It is the agent I talk to from my phone, and the kitchen is one of the jobs I handed off whole. The repo is its memory. Hermes works from files, not from our chat, so the inventory, the locked plans, and the rules all live on disk where the next session reads them. A skill holds the reasoning I do not want to repeat: cook for leftovers, push the legumes, never buy a sixth perishable. An AGENTS.md at the root tells any session where to start. I described the kitchen once. It stays described.

INVENTORY.md is the source of truth

One file holds the current fridge, freezer, pantry, and condiments. Every session reads from it and writes back to it. The rule is that the file is true and my memory is not. Hermes runs each session in four steps. Update the inventory. Decide what I want to eat. Match that against what I already have, so it clears the dying items first and buys only the real gaps. Then lock a dated plan: the meals, the cook rhythm, and a grocery list split into "have" and "buy." The constraints live in the repo too. Five perishables a shop, at most two cook sessions a week, high overlap between dishes, rotate them so I am not eating the same plate two nights running. Habit over variety over novelty. The repo enforces the boring version of me that does not over-buy.

The health lens is always on

I want to eat healthy. So Hermes carries a standing constraint: more lentils, tofu, oats, and vegetables, less white rice and sugar and saturated fat. No-sugar overnight oats is the default breakfast, and I stopped deciding it each morning. It is not a diet I follow when I remember. It is a filter Hermes runs on every plan before I see it.

The cart stages itself

Once a plan is locked, Hermes opens a stealth browser that stays logged into Target, searches each item on the "buy" list, and adds the cheapest sensible match to the cart for pickup at my store. Then it stops. It screenshots the cart, shows me the line items and the total, and hands it back. It never checks out. Payment is the one step I keep for myself, and the hard stop before it is deliberate. I want to look at the cart before money moves.

What's still rough

I have run the full loop two or three times. It is young. The honest state: Inventory is mostly automated, but a piece stays manual. I walk the kitchen and leave voice notes, and Hermes updates the file. The talking part is still on me, and I am fine with that. It was the counting and the writing I wanted gone, not the thirty seconds of narrating the fridge. The hard stop at the cart is a guardrail, not a safety net. It stages and waits, but if Hermes misbehaves there is nothing stronger sitting behind it. For now the net is me. It is only Target. That is the next thing to fix, but not by integrating store after store. The idea is to put Instacart in the middle: one delivery layer over many stores, so Hermes stages a cart once and I am not maintaining a separate browser dance for every chain.