An ESP32 with a camera module, an LLM agent, and a Telegram account. The idea: give your houseplants a personality and let them text you when they're unhappy. Currently in early development.
This started with the Clawdbot / Moltbot / OpenClaw hype. I saw the funny interactions people were having on X with their AI agents interacting with the real world, and I stewed on fun ways I could build something with that paradigm. I was already building Astrud — my personal AI agent — so the idea of giving a personality to something physical was already on my mind.
My girlfriend and I are looking at apartments, so naturally we're thinking about things to put in one. She has some plants. And I thought — how great would it be if our plants could text us and complain if they aren't happy?
If the moisture is too low for their liking, or if their leaves are a little wilty, they might reach out: “When are you coming home? I'm really thirsty :(”. Or if they saw a cat on the camera: “THERE IS A CAT HELP ME IM GOING TO BE EATEN IF YOU DONT COME HOME RIGHT NOW, THIS IS NOT A DRILL”.
I've got an ESP32 with a camera module that connects to a WebSocket server running in Python on my VPS. The image fetching is already working — the hardware can capture and transmit photos on demand. This is the plant's eyes.
The plant will be an agent hosted inside Astrud, my personal agent platform. Each plant gets its own personality, its own Telegram presence, and its own set of connectors to hardware. The agent can call a tool to take its own selfie and get real-time readings from its sensors. When something changes — soil drying out, light shifting, a suspicious animal in frame — it decides whether to reach out and what to say.
I'm going back and forth on the soil monitoring approach. The first option is capacitive soil sensors wired to the ESP32 — the plant calls a tool to get its real-time readings alongside its selfie. The second option is a probe-type soil reader visible in the camera frame, then using an image recognition model to read the data from the photo. It's a matter of sitting down and figuring out how they differ in accuracy and price.
┌──────────────┐ ┌────────────────────────────┐
│ ESP32 + │ │ Astrud Agent Platform │
│ Camera │────►│ │
│ (+ soil?) │ WS │ ┌────────────────────┐ │
└──────────────┘ │ │ Plant Agent │ │
│ │ (personality + │ │
│ │ tool access) │ │
│ └────────┬───────────┘ │
┌──────────────┐ │ │ │
│ Telegram │◄───►│ ┌───────▼────────────┐ │
│ │ │ │ Connectors │ │
│ │ │ │ (camera, sensors, │ │
└──────────────┘ │ │ messaging) │ │
│ └────────────────────┘ │
└────────────────────────────┘The plant agent will be hosted inside Astrud's multi-agent platform, not as a standalone service. Each agent in Astrud gets its own set of connectors — the plant's connectors happen to be a camera, soil sensors, and a Telegram account. The WebSocket connection from the ESP32 feeds into the agent's tool registry, so the plant can request its own photo or sensor readings on demand.
The ESP32 with camera module connects to a Python WebSocket server on my VPS and successfully transmits images. The hardware communication layer is proven out. Image capture is reliable.
Decide on the soil monitoring approach (sensors vs. image recognition on a probe reader). Build the plant agent connector inside Astrud. Give the plant a personality and let it loose on Telegram. Then wait for my girlfriend's reaction when her fern starts guilt-tripping her.