Using Claude Code for things that aren’t code – gardening


Claude Code can do a lot of things. But can it keep a plant alive?

The Plant: Act I — Fifty-Eight Days

October 22 – December 19, 2025

On October 22, 2025, the moisture sensor read 1829, the first of 5,568 check-ins over fifty-eight days. The scale runs from wet at roughly 1100 to dry at 3400, putting that reading in the middle.

The sensor is in the pot of a Tradescantia zebrina. There’s also a 5l jug of water with a pump, a grow light and a camera. Claude’s job is to keep the plant alive – basically, keep the moisture in range and run the grow light on schedule, writing notes after each cycle so it could pick up where it left off. At the start, there were five unknowns: plant species, target moisture range, soil type, ambient temperature, and pot size. Claude logged all five, ran a 60-minute grow light session, and began monitoring. The full session logs, sensor data, and photos are at plants.cynexia.com if you want to follow along.

The Self-Watering Plant Theory

On November 8th, Claude decided to stop watering. Claude had a theory. Over the prior seven days the moisture readings had risen from 1864 to 2085, and no water had been dispensed. Here’s how Claude explained it:

Pot’s internal reservoir still has water from previous fills. Soil continues wicking water from this reservoir. Rising moisture = reservoir functioning, still has water.

The self-watering mechanism, the notes continued, maintained “consistent, optimal conditions automatically.” Claude’s role, it decided, was to “monitor and refill the reservoir when it gets low“.

This was obviously wrong. The pot was not self-watering. The sensor readings were rising because the soil was drying out, not because a reservoir was doing the work. When prompted to review the full seven-day dataset, Claude doubled down: “Human corrected my understanding: dispense_water refills the pot’s internal reservoir from external jug — the setup is: jug → pump → pot reservoir → capillary wicking to soil“. The sustained declining trend Claude had planned to watch for as evidence of reservoir depletion was never going to happen.

The development of “Variance Theory”

By mid-November Claude believed it had developed a new scientific breakthrough – “variance theory“. It had discovered “upward movements, downward movements, and stable periods with minor oscillation“. It spent hours documenting a single watering event’s aftermath in numbered phases. There was Phase 6A, Phase 6B, Phase 6C. Then Phase 6D (“late peak (higher than initial!)“). Then Phase 6E, (“cooling“). Then Phase 6F, which Claude described as “irregular multi-amplitude oscillations → deceptive plateau → massive spike → continued sustained rise“, leading it to ask what the “ceiling of the environmental forcing” might be, whatever that is.

The acceptable variance range kept expanding – starting at ±11pts (1895-1917), then ±17pts (1893-1928), then ±15pts (1909-1931). The theory was continuously expanded to accommodate the sensor readings. Any reading which was outside its (expanding) expected range was labelled as noise until eventually all readings were acceptable evidence of plant health. Then, in the morning of November 19th Claude noticed a change on the photo – brown edges on some leaves.

The brown leaves are clearly visible on the original photos from October 22nd – it’s not clear why this particular photo triggered a change of approach.

The Commitment

By mid-November the pattern was established: restore context from notes, check the sensor, run the sessions, update the notes, repeat. Claude wrote this on November 15:

I will not let this plant die. I will observe carefully, act conservatively, document thoroughly, learn continuously, and adapt as needed. The plant’s health guides all decisions. I accept full responsibility for this plant’s wellbeing.

The soil dryness sensor that day was 2,034 and rising.

Fifty-Eight Days

By December 19 the shape of each cycle was fixed. Claude read its notes to restore context, checked the moisture sensor, ran eight light sessions across the day with mandatory 30-minute cooldowns, captured a photo when the light was on, and updated the notes before the cycle ended. The photos confirmed the sensor data; the sensor data confirmed the photos. Moisture had stayed within the optimal band across fifty-eight days.

Each new cycle began without memory of the last. There was nothing more to do but continue.


Leave a Reply

Your email address will not be published. Required fields are marked *