DEV Community

Raushani Kumari
Raushani Kumari

Posted on

Touch-grass-ai

Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass Submission 🌿

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass

What I Built

Touch Grass AI is an outdoor mission planner that gets people off their screens and into the world.

Most of us know we should go outside more, but "go for a walk" is easy to ignore. Touch Grass AI turns that vague intention into a small, concrete mission: you tell it how much time you have, what your surroundings are like and how you feel, and a local AI model plans a short outdoor mission you can start right now.

It is for anyone who spends too much of the day at a screen: students, developers, remote workers, and anyone who keeps saying "I'll go out later".

Key ideas:

  • Missions, not generic advice: short, specific outdoor tasks instead of a vague nudge.
  • Private by design: the AI runs on the same machine as the app. Nothing you type is sent to a closed AI service.
  • Simple and fast: a clean interface that takes seconds to use, so the app does not become one more reason to stay on the screen.

Demo

Touch Grass AI

A calm, local-first outdoor activity planner. Pick the time, place, energy level, weather, and kind of activity that fits today to get three small, practical ideas. No account, subscription, API key, or external AI service is required.

Requirements

  • Node.js 18 or newer
  • Optional: Ollama with a model downloaded locally

The app has no npm dependencies. Its built-in planner works without Ollama or an internet connection once the page has been opened and its static files cached.

Start the app

From this folder, run:

npm start
Enter fullscreen mode Exit fullscreen mode

Open http://127.0.0.1:3000. The server binds to loopback by default and serves the site only on your computer. Use Ctrl+C in the terminal to stop it.

Optional: enable local AI

  1. Install Ollama and download a model, for example:

    ollama pull llama3.2
    Enter fullscreen mode Exit fullscreen mode
  2. Start Ollama. Its default local API is http://127.0.0.1:11434.

  3. Copy .env.example to .env if you want to change the model…

Code

Touch Grass AI

A calm, local-first outdoor activity planner. Pick the time, place, energy level, weather, and kind of activity that fits today to get three small, practical ideas. No account, subscription, API key, or external AI service is required.

Requirements

  • Node.js 18 or newer
  • Optional: Ollama with a model downloaded locally

The app has no npm dependencies. Its built-in planner works without Ollama or an internet connection once the page has been opened and its static files cached.

Start the app

From this folder, run:

npm start
Enter fullscreen mode Exit fullscreen mode

Open http://127.0.0.1:3000. The server binds to loopback by default and serves the site only on your computer. Use Ctrl+C in the terminal to stop it.

Optional: enable local AI

  1. Install Ollama and download a model, for example:

    ollama pull llama3.2
    Enter fullscreen mode Exit fullscreen mode
  2. Start Ollama. Its default local API is http://127.0.0.1:11434.

  3. Copy .env.example to .env if you want to change the model…

How I Built It

The project is a full-stack web app built around a locally running open-weight model, with no closed AI APIs anywhere in it.

  • Frontend: React + Vite + Tailwind CSS, with Lucide icons.
  • Backend: Node.js + Express. The server receives the user's input, builds the prompt and returns the generated mission.
  • AI engine: node-llama-cpp runs an open-weight model (Llama family, GGUF format) directly inside the Node.js server. There is no separate AI service to install or manage.

The path to this setup took a few steps. I started with Ollama as the AI engine, then tried running a model in the browser with WebLLM, and finally moved everything to Node.js so the whole app runs from one server with one npm workflow. That keeps setup simple for contributors, and open-source AI stays at the core of the project.

About AI tools: the app's runtime AI is open-weight and runs locally. I also used an AI assistant (Claude, which is not open-weight) to help generate the first version of the project code.

Why Does Open Innovation Matter?

A mission planner only works if people actually use it, and people are more willing to share how they feel and where they are when the data stays with them.

  • Privacy: because the model is open-weight and runs locally through node-llama-cpp, your mood, schedule and surroundings never leave your machine. A closed API would require sending them to someone else's servers.
  • No keys, no bills, no rate limits: anyone can clone the repo and run it for free, including students without a credit card.
  • Works offline: once the model is downloaded, the app does not need an internet connection to plan a walk.
  • Swap the model: because the engine reads standard GGUF files, contributors can try a smaller or larger open model, or one fine-tuned for a different region or language, with a small config change.
  • Hackable by anyone: the prompts, the server and the UI are all open, so the community can make missions friendlier, funnier or more local.

Top comments (0)