Skip to content

HomeNode Agent

Stephan Zehrer edited this page May 26, 2026 · 1 revision

HomeNode Agent

What It Is

The HomeNode Agent is a local LLM running on the HomeNode Server that acts as the intelligent layer of the ecosystem. It understands natural language, reasons about home state, and communicates with users through mChat as a chat bot participant.

All inference is local β€” no queries leave your home.


Responsibilities

Home Automation Intelligence

  • Interprets natural language commands from users in mChat group chats
  • Translates commands into HomeNode Server actions ("dim the bedroom to 30%")
  • Answers questions about home state ("is the front door locked?")
  • Proactively notifies users about relevant events (see below)

Chat Bot Participant

The Agent holds its own Nostr keypair and joins mChat group chats as a bot identity. This means it is a first-class participant β€” it can send and receive messages just like any user.

Example notifications the Agent sends to the group:

  • πŸšͺ "Someone is at the front door" (doorbell / camera)
  • πŸ‘• "Washing machine cycle finished"
  • 🌑️ "Living room temperature dropped below 18Β°C"
  • πŸ”’ "Front door was left unlocked for 30 minutes"
  • 🚨 "Motion detected in garden at 02:14"

Task Delegation

  • Receives complex tasks from users via chat and breaks them into HomeNode actions
  • Coordinates multi-step automations ("set the house to movie mode")
  • Can escalate or ask for clarification when intent is ambiguous

How It Connects to mChat

The Agent uses mChatCore β€” the same library powering the mChat iOS app β€” to connect to Nostr relays and participate in group conversations. From the relay's perspective, the Agent is just another Nostr identity.

HomeNode Agent
    β”‚
    β”‚  mChatCore (NostrBackend)
    β”‚  Nostr keypair stored on server
    β–Ό
Nostr Relay ──► mChat group ──► Users' iPhones

Repositories

Repository Description
zehrer/HomeNodeAI Agent implementation
zehrer/mChat mChatCore β€” the Nostr library the Agent uses to communicate

Related

Clone this wiki locally