Talpy Den Display
- ESP32-S3
- LVGL
- C/C++
- Python
Talpy Den tells me which of my Claude Code chats need me, but only when I look at my panel. So I gave it a screen of its own: a 4.3” touch display next to my keyboard with my chats, my plan usage, the time and the weather. My PC sends it everything over USB, so the board needs no Wi-Fi and holds no passwords or tokens.

What it does
- Jobs: counts my chats as working, waiting or done and lists four of them, waiting first, with where each one runs (this computer, an SSH host or a container) and for how long. The waiting tile pulses.
- Alerts: a full-screen alert when a chat starts waiting for me, which stays until I tap OK, and a shorter one when a chat finishes.
- Plan usage: the 5-hour and 7-day windows of up to two accounts, with their reset times. As in Talpy Den, a bar is green, orange from 70% and red from 90%.
- Weather: now, today’s high and low, and the next 8 hours with rain chances, from Open-Meteo.
- Brightness: pull down from the top for a brightness slider and a Stay on toggle. The board remembers both after a restart.
- Clock face: after 2 minutes without a touch, while no chat is working or waiting, it switches to a big dimmed clock that moves a few pixels each minute so nothing burns in. It shows the clock while the PC is off too, so the board can stay on a powered hub day and night. A double tap shows it right away.



How it works
Talpy Den writes my chats and plan usage to a small JSON file whenever one of them changes. A Python script on the PC waits for that file with inotify, adds the time and the weather, and sends it all to the board as one JSON object per line over USB serial. The board makes the alerts itself, by comparing each list of chats with the one before. Any other program can send it the same messages: they’re documented in the repository.
Hardware
- The display: Elecrow’s CrowPanel Advance 4.3” (ESP32-S3, 800×480 IPS, capacitive touch), in its acrylic case.
- The stand: 3D-printed, based on the Tablet Studio Stand on MakerWorld.
- A USB cable to my PC. A powered hub keeps the board on while the PC is off.
Stack
- C and C++ on the ESP32-S3 (the Arduino core through pioarduino, built with PlatformIO): the firmware
- LVGL 9.1: the cards, the pull-down panel, the alerts, the clock face and the animated weather icons
- esp_lcd and LovyanGFX: the RGB panel with two framebuffers in PSRAM that LVGL draws straight into, and the GT911 touch chip
- ArduinoJson: the serial messages
- Python (pyserial, inotify): the sync script, run as a systemd user service, with a udev rule that gives the board a fixed name
- Open-Meteo: the weather, with no API key
Privacy
The board never goes online. The sync script makes one network call, for the weather, with my latitude and longitude, which stay out of the repository. Chat names reach the board over the cable.
An independent project: not affiliated with or endorsed by Anthropic or Elecrow.
