This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
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.
Demo
Online run with live forecast:

Offline run:
Pics(outdoor observations):
Code
Touch Grass Planner
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.
Requirements
- Node.js 18+
-
Ollama with a Gemma model:
ollama pull gemma3:4b
Run it
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.
How it works
- Fetches the forecast from Open-Meteo (no API key).
- Builds a prompt from the date, activity, notes and forecast.
- Sends it to Gemma on
localhost:11434. Nothing leaves your machine. - If the forecast fails (offline), it says so and gives general advice.
Credits
Built for the Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass. Weather data from Open-Meteo.
How I Built It
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.
node planner.js 43.2 54.5 "inspecting insects" "flower pots"
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.
Why Does Open Innovation Matter?
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.
Prize Categories
Best Use of Gemma
That’s my Touch Grass Planner. Questions, feedback or suggestions are very welcome in the comments. Now go outside!




Top comments (0)