💡 Inspiration — the bill that made me angry

$239.88 for a streaming service nobody opened in 68 days. $203.88 for a cloud gaming tier nobody used. $360 for a gym membership that outlived your motivation.

$803.76 a year. 💸

That is the number Hearth found the first time I asked it to save me $800. And when it appeared on the screen, I didn't feel clever. I felt stupid. Then I felt angry. 😤

The most expensive thing in a house is not the mortgage. It's the stuff nobody remembers.

But the money is not the real problem. The real problem is what happens when the house starts acting on its own.

Every smart-home demo ends the same way. The agent does something — it orders, it books, it unlocks the front door — and everyone claps. 👏 Somewhere, a credit card quietly pays for it. 💳

The industry has spent a decade teaching software to act. It has spent almost no time teaching it to wait. 😮‍💨

That gap is Hearth. Not "what can the agent do?" but "what should it never do without you?"

The industry is racing to remove the human from the loop. I am racing to put the human at the center. ❤️ This is the moment the house gets a real agent. The default it ships with will decide whether people ever trust the next thing.


🧒 The moment that shaped everything

The demo house has a nine-year-old in it. His name is Leo. He is not a real child; he is a profile with the same rules a real one would get.

Leo asks for 5,000 Robux. Hearth says no. 🚫 Leo asks to unlock the front door. Hearth says no again. 🚪 Kindly. Specifically. Without pretending to be his parent.

The obvious version of this product says yes. It is helpful. It is fast. It is also the scariest kind of failure: the one that looks like good service. 😨

An agent that can cancel subscriptions, reorder groceries, and open a door is very good at all three. That is the problem.

So I took the autonomy out. I put a pause in. ⏸️

Every action lands in an approval tray with the exact before-and-after. You tap Approve. A receipt is written. 🧾 You tap Undo. It is as if it never happened. ↩️

One tap in, one tap out.

A receipt is a small thing. It is also the difference between "trust me" and "check for yourself." 👀

The most important button in AI is not Run. It is Undo. 🔥


🏠 What it does

You say: "Alexa, save me $800."

Hearth reads the house — subscriptions, pantry, energy, devices, the front door — and finds $803.76 a year in dormant spending. It stages three cancellations with the exact numbers. It does not cancel them.

You tap Approve. A verifiable receipt appears. You tap Undo. Everything is back. ✅

That is the whole product in one loop: propose, approve, receipt, undo.

It is voice-first by design. You do not open an app; you talk to the house. The screen is there when you look up, not when you log in. 🗣️

👉 Try it right now: https://hearth-universal.onrender.com/ — the cockpit is https://hearth-universal.onrender.com/echo . No login. No waitlist. Just a house that asks first.

Then the house gets harder.

A motion sensor fires at 3 AM. 🌙 Hearth does not say "intruder." It reconstructs the night second by second — which sensor, when, what the thermal model says — and puts a number on it: 98% confidence it was not a person, and the evidence why. 🔦

The difference between a guess and a proof is the difference between a gadget and something you trust at 3 AM.

And when the house needs something it has never done, Hearth forges it. 🛠️ On camera, it writes a new MCP tool, validates the schema, runs the safety gate, smoke-tests it, and mounts it live. Tool 54 becomes tool 55 without a restart. 🤯

No update. No app store. No "that's coming in the next release." The house learns the skill it needs, then asks permission to use it. 🫶


🔧 How I built it

Hearth is a self-hosted MCP server implementing spec 2025-11-25 over Streamable HTTP, with a simulated Alexa+ surface designed for the Echo Show canvas. The live surface is 55 tools; four were forged at runtime, one of them on camera. 🎥

Under the UI:

  • 🛡️ Sentinel — a policy layer that sits in front of tools, not behind them. Risk tiers, child gates, and a hard "no" with a plain-language reason.
  • 🧾 An approval tray and a hash-chained audit trail — every action is staged, receipted, and reversible. Every receipt can be verified.
  • 🛠️ The Forge — intent → schema → AST validation → safety check → sandbox smoke test → hot mount.
  • ☁️ AWS Strands agents-as-tools for the household specialists — arbiter, replenishment, Sentinel — with Bedrock AgentCore memory for session continuity.
  • 📐 Real models, not vibes — 1R1C thermal dynamics, constrained Nash bargaining for household tradeoffs, log-odds Bayesian hypothesis testing for forensics.
  • 🧠 A deterministic local brain alongside cloud models (Gemini/Groq), so the demo never dies on a network call. The product degrades; the story doesn't.
  • ✅ 362 tests across contracts, tools, safety gates, and surfaces; CI on Python 3.11 and 3.12.

The code is MIT-licensed at https://github.com/krishivjoshi219-collab/Hearth-Universal. 💻

The 2:57 film — https://youtu.be/aXdF3oaTDww — is not a montage of features. It is 177 seconds in the life of one house, captured entirely against the running server. No mockups. No composited UI. No invented numbers. 🎬

I called it the Human Win Cut for a reason: every scene ends with a person deciding something, not a machine. ❤️


🧗 Challenges — the parts that hurt

The hardest part was not making the agent act. It was making it stop. 😤

Safety had to be a runtime property, not a prompt. A prompt can be talked around. A gate cannot. I treated the child gate as a first-class feature because if the "no" is not trustworthy, the "yes" means nothing. 🚫

The Echo Show canvas is a different design language. It is read from across a room, at a glance, often at 3 AM. I cut everything that needed a second look. Calm is a feature. 🌙

The tool surface had to be exactly 55. Internal agent-to-agent tools leaked into the public list and made it 57. 😅 I moved the bus to plain HTTP and added a contract test that fails if the count moves. It felt arbitrary until it caught a real bug.

And the demo had to survive reality: flaky networks, cold starts, model quotas, a live URL that has to stay alive for twelve days of judging. My rule became: the product degrades, the story doesn't. Local engine, honest provider labels, no 504. 💪


🏆 Accomplishments

  • ✅ 55 live tools, four forged at runtime, no restart.
  • ↩️ One-tap approve and undo, with a verifiable receipt for every action.
  • 🧒 A child gate that blocks both money and doors.
  • 🔦 A 98%-confidence forensic reconstruction of a 3 AM anomaly.
  • ✅ 362 tests, CI green on Python 3.11 and 3.12.
  • 🎬 A 2:57 film shot entirely against the running product.
  • 🌍 MIT open source, live on the same surface the film shows.

🧠 What I learned

Trust is a UX property, not a model property. The undo button did more for trust than any explanation ever could. ❤️

The best agent demo is the one where the agent does not act. The pause before the tap is the product. ⏸️

Constraints are gifts. The Echo Show canvas forced calm. Propose-never-execute forced clarity. The 55-tool lock forced me to kill my own scope. 🔥

And safety has to be testable. If a gate is not covered by a test, it is a vibe. 🧪


🚀 What's next

  • 📒 The household ledger: every subscription, device, and action in one reversible timeline.
  • 👨‍👩‍👧 Real permissions: not one adult/child switch, but per-person roles, limits, and time windows.
  • 🏪 A skill exchange: houses publish the tools they forge, so the next home does not start from zero.
  • 📺 More surfaces: Fire TV, Ring, and a production Alexa+ MCP endpoint.
  • 🧠 An offline-first brain, because the most private place in your life should not need a round trip to answer.

❤️ Closing

Hearth is not trying to be a person. It is trying to be useful, reversible, and honest about what it knows. The house should feel like a home, not a checkout page. 🏠

👉 If you only do one thing after reading this: open the cockpit, ask it to save you $800, then try to undo it. That pause is the whole product.

Not an agent. A servant.

Built With

Share this project:

Updates

Submission history