This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
Most AI apps want another prompt. TrailQuest AI wants you to close the app.
You pick how much time you have (30 minutes, an hour, two hours), what you feel like doing (walking, photography, nature observation, hiking), your energy level, and where you are (park, garden, mountains, neighborhood, anywhere). A local open-weight model then writes you a short outdoor mission: a few simple tasks, an observation challenge, an optional photo idea, a phone rule, and a safety reminder.
Then you tap I'm going out, and the app tells you to close the tab. When you're back, a check-in screen lets you tick off what you did, add a note and a photo, and see how long you were out. It ends with a "Mission complete" card you can screenshot.
It's for anyone who spends too much time on screens and wants a nudge that doesn't turn into more screen time. The screen is used for about a minute at each end. The outing itself needs none.
Demo
Code
laiba-Ashfaq
/
trailquest-ai
Most AI apps want another prompt. **TrailQuest AI wants you to close the app.** You pick how much time you have (30 minutes, an hour, two hours), what you feel like doing (walking, photography, nature observation, hiking), your energy level, and where you are (park, garden, mountains, neighborhood, anywhere).
TrailQuest AI 🌿
An AI app that deliberately ends the conversation. A local open-weight model writes you a short outdoor mission. Then the app tells you to close the screen and go outside.
Built for the Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass.
How it works
- Choose your time (30 min, 60 min, 2 hours), activity, energy, and environment, or tap Surprise me.
- A local Gemma model, running through Ollama, writes a mission: a title, 3-5 simple tasks, an observation challenge, an optional photo idea, a phone rule, and a safety reminder.
- Tap I'm going out. The app saves your mission and tells you to close the tab.
- When you return, a check-in screen lets you tick off what you did, add a note and an optional photo, and shows how long you were out. It ends with a "Mission complete" card you…
How I Built It
- Model: Gemma gemma4:latest , an open-weight model, running locally through Ollama.
- Backend: Python + FastAPI. It sends your choices to Ollama and gets back a structured mission as JSON, so the app can render it as cards.
-
Frontend: React + Vite. The mission and your check-in note are saved in the browser's
localStorage, so you can close the tab, go outside, and find your mission waiting when you return. - Build process: I built it with [[Antigravity]] and saved the session with DevRelay.
The model is the core of the app. It writes every mission, and swapping models takes one environment variable.
I ran it on a CPU-only laptop with about 8 GB of RAM.
Why Does Open Innovation Matter?
- Privacy: What you do outdoors, your notes, and your photos never leave your machine. Nothing goes to a server I don't control.
- No cost, no key: There's no API key and no usage bill. Anyone can run it.
- Swappable: When my machine struggled with a larger model, I could switch to a smaller one without changing any code.
- Works offline: After setup it needs no internet, which is useful if you're heading somewhere with poor signal. The one exception is the Google Fonts stylesheet, which falls back to system fonts when offline.
A closed API would have worked for generating missions, but I couldn't have promised that your data stays on your device.
My Agent Session
I built this with Cursor. The full source and commit history are in the GitHub repo above.
Prize Categories
-Best Use of Gemma
-Best use of cursor
-Best use of DevRelay
-Best use of ElevenLabs
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.