builditwithai.xyz thermostat / desk biome

Thermostat

Your desk is a biome. Thermostat is its environmental agent — not a dashboard, a loop. It senses the room, the sky and the calendar, then runs the light, the AC and the music so your energy lasts.

senses → reasons → acts → learns circadian-aware human-in-the-loop 100% local-first

More than weather + Slack

A weather widget tells you it's hot and a bot posts about it. Thermostat does something with the heat. Every cycle it answers one question — what should the room do next so the human's energy holds? — and then does it, with the reasoning visible.

The loop

01

Sense

Indoor board [temp, humidity, pressure, gas, light, motion, acoustics], outdoor conditions + 3-hour forecast, Oura biometrics, the calendar.

02

Reason

Wet-bulb comfort, heat-stress thresholds, circadian clock, 60-minute trajectory, upcoming deep-work blocks. The lens is chosen before the answer.

03

Act

The bulb (circadian presets), the IR blaster (AC, consent-gated), Apple Music (Focus / Wind Down transitions), a Slack synthesis.

04

Learn

Every action and every human override lands in biome.db — the acting, the reasoning, your feedback. The weekly review reads the trace and fixes the policy.

The routines

30-minute scan

Indoor vs outdoor vs forecast vs trajectory — Δ/hour computed, not guessed.

Hourly clinical synthesis → Slack

Outcomes → causal chain → why now → what's next. The physiological why, not a number dump. "29.8°C" becomes "your body can't shed heat — expect drained energy".

Circadian policy

Sunset-aware. Bright mornings (proposed, never assumed), warm work light by day, reading amber by evening, dimmer wind-down at dusk. Reasoning stated, then executed.

The AC protocol

ON needs consent. OFF is autonomous. 90-minute run limit. Default 24°C cool, fan auto. Learned IR codes replayed over LAN — no cloud in the path.

Music transitions

Focus playlist in, Wind Down at wind-down, volume sane. Apple Music via the Mac — same OS the agent lives in.

Constants: present, don't decide — it proposes with the reasoning visible, the human overrides. Trends, not point-in-time. No dark themes, no alarmist words, ever.

Live readout

Indoor
34.1°C / 58%
10:30 IST · desk board
Outdoor
35.8°C / 55%
13:30 IST · overcast

Chennai, mid-August. Wet-bulb beats dry-bulb here — the agent reasons on heat stress, not just temperature. biome.db is the single source of truth: sensors in, decisions out, your feedback looped back in.

The hands

Tuya smart bulb

16M colours, driven over LAN (tinytuya). White mode is flicker-free — RGB flickers on this unit, learned the hard way.

192.168.0.10

IR blaster → AC

Learned codes replayed locally. Cloud command API dead? Irrelevant — the management API keeps keys flowing.

192.168.0.4

Mac + Slack

Apple Music for transitions, calendar for deep-work blocks, Podcasts for the commute. Hourly synthesis lands in Slack.

macos-mcp

The skills

Each capability is a markdown playbook the agent loads when the task matches — policies before code.

thermostat_telemetry_db thermostat-report circadian-lighting homeostasis-tuya tuya-lan-control homeostasis-coach homeostasis-context morning-brief eod-lookback integration-principles

The MCPs

Model Context Protocol servers — the agent's hands on hardware and data. Most are open source:

macos-mcp music-mcp find-research-papers-mcp bing-webmaster-mcp-server google-search-console-mcp linear · langfuse · cloudflare (remote) tuya / tinytuya (LAN, not MCP — by design)