Fanad for Home Assistant

The no-nag scratchpad, on steroids

Home Assistant finally stores personal tasks and memories — without becoming a full-on LLM assistant.

Fanad fills the gap: private, local-first tasks, notes, lists and server timers, with a bot in your Telegram for the road and a rich web UI in your sidebar at home. No nagging, no guilt streaks — a pad that empties. Your dings can ring the house. Your house never leaves the house.

Local · no cloud by default No telemetry aarch64 + amd64 Open source

Why it exists

Built to fill the gaps in my own Home Assistant

I run Home Assistant OS at home. It's brilliant at devices and terrible at remembering things for me. I also wanted remote control without exposing anything to the public internet. So: I text a bot on Telegram — remind me to take the bins out at 7, timer 12 min, ha turn off the kitchen lights — and it just works, because Telegram is an outbound connection. No open ports, no reverse proxy, no cloud tunnel. At home, the full web UI. A lightweight local LLM you already run (LM Studio or Ollama) does the parsing and summarizing.

What you get

Timers, tasks, and remote control — from Telegram or your sidebar

Server timers

“timer 20 min for the oven” from any phone in the family. The ding can announce on your Voice PE or media players, fire a script, or send a notify.

Tasks & reminders

Natural language in — “call the dentist on tuesday” — deadlines, snooze, one-task-at-a-time focus. Dated tasks push straight to your HA calendar.

ha from anywhere

ha turn on porch light, ha run goodnight from Telegram — routed to your own Assist agent. Remote control, zero exposed ports.

Notes & nested lists

Packing lists, shopping, project outlines. A pad that empties, not a notes app that fills up. Get it out of your head.

Three surfaces

Telegram and Slack on the road, a rich web UI in your HA sidebar at home. Same data, same brain, everywhere.

Opt-in modules

Journal with daily and weekly summaries, diet logging, process batches, sub-notebooks, metrics — all off by default. Turn on only what you'll use.

The privacy part

What the LLM does — and deliberately doesn't

The one-sentence version

The LLM only parses and ranks what you typed — it never invents data, and it never acts on your house.

  • Parsing, not agency. House commands (ha …) are handed to your own Home Assistant Assist agent verbatim — deterministic passthrough, not model output. Dings ringing your speakers are plain code you opt into.
  • Local by default. Point Fanad at the LM Studio or Ollama box you already run. A mock provider works with no model at all, so you can try it before wiring anything.
  • Cloud is triple-locked. BYO cloud keys (for people without local-model hardware) only work behind an explicit LLM_ALLOW_CLOUD flag — off by default, hard-blocked at runtime, hidden in the UI when off.
  • Your data stays put. SQLite on your box, secrets encrypted (AES-256-GCM), no telemetry, no phone-home. Everything lives in /data and rides along in HA backups.

Install

Five minutes on Home Assistant OS

  1. Add the repository

    Settings → Apps → App store → ⋮ → Repositories → add https://github.com/NTBooks/fanad-ha

  2. Install & start Fanad

    It appears in the sidebar via ingress — no ports to open, no reverse proxy.

  3. Point it at your model

    LM Studio or Ollama URL in Settings — or start with the mock provider and wire the model later.

  4. Optional: the Telegram surface

    Paste a bot token from @BotFather and text your house from anywhere.

Running Container instead of HA OS?

Same image, plain Docker: docker run -p 8787:8787 -v fanad_data:/persist ghcr.io/ntbooks/fanad-app — then add it to your sidebar as a Webpage dashboard.

Hardware honesty

Fanad itself is light — Node + SQLite, fine on a Pi 4. The LLM should live on a real box. Fanad-on-the-Pi, model-on-your-desktop is the expected setup.

Fair questions

The things you're right to ask

Does it need the cloud?

No. Default is fully local. Cloud API keys exist for people without local-model hardware, and they're behind an explicit opt-in flag that's off by default and hard-blocked at runtime.

Does the AI control my house?

No. The LLM parses your scratchpad text. House commands go through your Assist agent as deterministic passthrough. Fanad never originates house actions except the dings you explicitly configure — and those are plain code, not model output.

Is this AI-generated slop that'll be abandoned in a month?

Fair. The codebase is heavily AI-assisted — the commit trailers say so. That's also why it ships with a heavy automated test suite, a versioned migration chain, and a changelog, and why my own family runs it every day. Judge the code; it's all open.

Why not just HA todo lists + Assist?

Those are great for “add milk to the list.” Fanad is for everything durable about you: the loops in your head, deadlines, journals, the timer your spouse set from Telegram while you're both cooking. HA runs the house; Fanad remembers the humans — and they ring each other.

What happens to my data if I uninstall?

Everything lives in /data, which Home Assistant deletes on uninstall — so back up first. HA's native backups cover it (database and encryption key together).