Open source · Self-hosted · MIT

Everyday Runtime

A shopping assistant that learns what your household probably needs — and tells you why. No barcode scanning of every item, no fake stock counts.

Get started Three-minute demo View on GitHub
The Now screen: 4 things probably needed — Apples (empty, confirmed, 95%), Milk (probably low, 89%), Paper towels and Coffee, each with a reason

The problem

Plain shopping lists only know what someone remembered to write down. Inventory apps promise exact stock — if you scan everything in and out, which nobody keeps up for long. Real households have partial information: a receipt, a “we're out of coffee”, a glance into the pantry.

Everyday Runtime is built for exactly that. It turns scattered observations into an honest estimate:

Product → Observation → Estimated state → Confidence → Need → Shopping action → Purchase

What it does

Explains every suggestion

Each estimate has a percentage, a plain headline and a “Why?”: purchases, rhythm, expected run-out, conflicts, stale data.

Facts vs. estimates

What someone reported is “Confirmed”; what the app inferred is visibly an “Estimate”. One tap corrects it.

Learns from you

Uses purchase quantities (3 l last longer than 1 l) and earlier “empty” / “still have it” reports — bounded and explained.

Private by design

Runs on your own Twenty server. No backend of its own, no telemetry, no AI service. Community prices are fetched only when you ask, by barcode.

Deterministic engine

Plain TypeScript with unit tests: same observations, same moment, same answer. Every rule is documented.

Integration-ready

An authenticated JSON endpoint (GET /s/needs) returns the same results for dashboards and automations.

On your phone

Now screen on a phone Shopping list on a phone with items added by a person and suggested items Product details for Milk in dark mode: lasts about 5 days, use per day about 0.4 litres

How it compares

Plain shopping listInventory trackerEveryday Runtime
You recordItems to buyEvery item in and outWhatever you happen to know
It knowsOnly what's writtenAn exact count, if kept upA probability with a reason
Missing dataSilentWrongSays it is unsure
SuggestionsNoRules you configureYes, explained

Quick start

Needs Node.js 24, Yarn (via Corepack) and Docker.

git clone https://github.com/micha16372/everyday-runtime.git
cd everyday-runtime
corepack enable && yarn install
yarn twenty docker:start
yarn twenty apply

Open http://localhost:2020, sign in with the local development account, choose Everyday Runtime and press Load demo household. Details: DEMO.md.

Questions

Is it an inventory app?

No. It never claims to know exact stock. It estimates how likely a product is needed from whatever you record and explains each estimate.

Does it need an AI service or an API key?

No. The engine is deterministic TypeScript with unit tests and makes no calls to AI providers. The only outside call is optional: community prices by barcode from Open Food Facts.

Where is my data stored?

In your own self-hosted Twenty workspace. See PRIVACY.md.

How is it different from Grocy?

Grocy is a full household inventory system that works best when stock is tracked precisely. Everyday Runtime targets households that will not track everything: it works with partial information and says how sure it is.

Does it work with Home Assistant?

Not yet. A JSON endpoint exists today; a Home Assistant integration is on the roadmap — tell us what you would use.

Is it production-ready?

It is early (v0.4). The core workflow is tested end to end, but there are known limitations listed in the changelog. Real-world feedback is very welcome.

Help shape it

The project is looking for real-world feedback. Tried it? Tell us what worked in the feedback discussion, or report a suggestion that felt wrong. Want to contribute? Start with a good first issue and CONTRIBUTING.md.