# Touch Grass Planner: a local AI that sent me out to find caterpillars on my flower pots

> Source: <https://dev.to/malay998/touch-grass-planner-a-local-ai-that-sent-me-out-to-find-caterpillars-on-my-flower-pots-2n5j>
> Published: 2026-10-11 18:59:01+00:00

*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass](https://dev.to/challenges/hacktoberfest-week1-2026-10-05)*

Touch Grass Planner is a small command-line tool. You give it a location, an outdoor activity and a few notes, and it fetches the 7-day forecast and asks a local open-weight model (Gemma, running through Ollama) for a short plan: the best two times to go out, a five-item checklist, and one tip for putting the phone away. It’s for anyone who keeps meaning to go outside and needs a nudge. The screen part takes seconds, and the rest is time outdoors.

**Online run with live forecast:**

**Offline run:**

**Pics(outdoor observations):**

A tiny local-AI outdoor planner. It fetches the 7-day forecast and uses an open-weight model (Gemma via Ollama) to suggest when and how to get outside. It still works with no internet, falling back to general seasonal advice.

`ollama pull gemma3:4b`
node planner.js "activity" "notes"

Example: node planner.js 43.2 54.5 "inspecting insects" "flower pots"

The plan is printed and saved to `todays_plan.md`.

`localhost:11434`. Nothing leaves your machine.
Built for the Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass.
Weather data from [Open-Meteo](https://open-meteo.com).

Model: Gemma 3 (4B) running locally through Ollama. The planner calls it at localhost:11434, so nothing leaves my laptop.

Weather: Open-Meteo, which is free and needs no API key.

Code: one Node.js file, planner.js, with no dependencies. It builds a prompt from the date, activity, notes and forecast, sends it to Gemma, and saves the plan to todays_plan.md.

Offline mode: if the forecast request fails, the tool falls back to general seasonal advice and prints that it is not using live data.

**Going Outside**

I ran node planner.js 29.2 79.5 "inspecting insect" "flower pots". The online plan used the real forecast numbers and picked a warm, dry morning. I went out with gloves, water spray and my phone camera and spent about 35 minutes on my flower pots. I found 4 caterpillars eating the leaves. I picked them off and placed them somewhere safe, away from the pots, so the plants could recover without harming the caterpillars.

**What Went Wrong (and What I Fixed)**

My first offline run named the wrong weekdays (“Saturday, October 13th”, when that date was a Tuesday). The model has no calendar, so I passed it the real weekday in the prompt and told it not to invent weather offline. The weekdays are now correct. It still said “late October” in mid-October and hinted at weather it didn’t have, so a small local model follows instructions only partly. Next I’d try a stricter prompt or a larger model.

It works with no internet. I switched Wi-Fi off and still got a plan. The weather lookup is the only network call, and the code degrades gracefully without it.

My data stays with me. My location and notes go to a model on my own laptop, not a company’s server.

It costs nothing per request. No API key, no credits.

I can change it. Swapping models is a one-line edit, and I can adjust the prompt however I like.

Best Use of Gemma

That’s my Touch Grass Planner. Questions, feedback or suggestions are very welcome in the comments. Now go outside!
