Repository navigation
HomeNode Agent
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.
- 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)
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"
- 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
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
| Repository | Description |
|---|---|
| zehrer/HomeNodeAI | Agent implementation |
| zehrer/mChat | mChatCore β the Nostr library the Agent uses to communicate |
- Architecture β full system diagram
- HomeNode Server β the server the Agent runs on
- mChat β the chat infrastructure the Agent participates in
(c) Stephan Zehrer 2025