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:
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
How it compares
| Plain shopping list | Inventory tracker | Everyday Runtime | |
|---|---|---|---|
| You record | Items to buy | Every item in and out | Whatever you happen to know |
| It knows | Only what's written | An exact count, if kept up | A probability with a reason |
| Missing data | Silent | Wrong | Says it is unsure |
| Suggestions | No | Rules you configure | Yes, 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.