<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Athul Jenson</title>
    <description>The latest articles on DEV Community by Athul Jenson (@2aj0).</description>
    <link>https://dev.to/2aj0</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4164252%2F01a1930c-d2c2-47d6-a4d3-469a07a45b86.png</url>
      <title>DEV Community: Athul Jenson</title>
      <link>https://dev.to/2aj0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/2aj0"/>
    <language>en</language>
    <item>
      <title>Inbox Zen: Privacy-First File Sorting with Local Gemma</title>
      <dc:creator>Athul Jenson</dc:creator>
      <pubDate>Fri, 23 Oct 2026 13:40:41 +0000</pubDate>
      <link>https://dev.to/2aj0/inbox-zen-privacy-first-file-sorting-with-local-gemma-36h8</link>
      <guid>https://dev.to/2aj0/inbox-zen-privacy-first-file-sorting-with-local-gemma-36h8</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;"Inbox Zen" is a privacy-first AI agent that automatically categorizes and archives cluttered local files or emails overnight. It scans a designated "clutter" directory, reads the text, and intelligently sorts them into appropriate folders (like "Invoices", "Reading List", or "Personal Notes") using a local AI model. Finally, it generates a simple morning summary so you can wake up to a clean digital workspace without the dread of manually sorting files. &lt;/p&gt;

&lt;p&gt;This directly targets the "Slow and Steady" theme: automating a tedious, repetitive daily chore.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here is the live link to my daily "Inbox Zen" summary dashboard deployed on Render:&lt;br&gt;
&lt;a href="https://inbox-zen.onrender.com" rel="noopener noreferrer"&gt;https://inbox-zen.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Note: If you visit, you'll see the latest summary of the files Gemma successfully sorted on my local machine!)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;You can find the full Python script and Flask server code in my GitHub repository here:&lt;br&gt;
&lt;a href="https://github.com/2AJ0/inbox-zen" rel="noopener noreferrer"&gt;https://github.com/2AJ0/inbox-zen&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;I built this project completely manually focusing on a local-first approach to protect sensitive data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Engine:&lt;/strong&gt; I used Google's open-weight &lt;strong&gt;Gemma 2B&lt;/strong&gt; model running completely offline via &lt;strong&gt;Ollama&lt;/strong&gt;. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Logic:&lt;/strong&gt; A Python script uses the &lt;code&gt;requests&lt;/code&gt; library to send file contents to the local Gemma instance, prompting it to strictly categorize the text. The script then uses &lt;code&gt;shutil&lt;/code&gt; to move the files and generates a &lt;code&gt;zen_summary.txt&lt;/code&gt; log.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring:&lt;/strong&gt; I integrated the &lt;strong&gt;Sentry Python SDK&lt;/strong&gt; to capture performance traces. I wrapped my main sorting function in a &lt;code&gt;sentry_sdk.start_transaction()&lt;/code&gt; block and used &lt;code&gt;.flush()&lt;/code&gt; to ensure trace data was sent before the script closed. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment:&lt;/strong&gt; I built a lightweight Flask web service to serve the text summary and deployed it directly from GitHub to &lt;strong&gt;Render&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgwx0ewy76fgqlisqw9rj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgwx0ewy76fgqlisqw9rj.png" alt=" " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation is the absolute core of this project. Because I am dealing with personal files (like invoices or personal notes), sending this data to a closed, proprietary API in the cloud is a massive privacy risk. By utilizing an open-weight model like Gemma and running it locally with Ollama, my sensitive data &lt;em&gt;never&lt;/em&gt; leaves my machine. It also means the tool is completely free to run with zero API costs, demonstrating how open-source AI democratizes powerful automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;This agent saves me about 10-15 minutes of dragging and dropping files every single morning. More importantly, it removes the "digital tax" and mental friction of starting my day staring at a messy downloads folder. I just check my dashboard, see what was filed where, and start working.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am entering this submission for the following partner categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; (Primary focus: 100% local, privacy-first inference using Gemma 2B)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Render&lt;/strong&gt; (Deployed the Flask summary dashboard)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentry&lt;/strong&gt; (Integrated the Python SDK for performance tracing)&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>FetchUpdate – AI Pet Sitter Assistant</title>
      <dc:creator>Athul Jenson</dc:creator>
      <pubDate>Fri, 16 Oct 2026 08:07:10 +0000</pubDate>
      <link>https://dev.to/2aj0/fetchupdate-ai-pet-sitter-assistant-7l0</link>
      <guid>https://dev.to/2aj0/fetchupdate-ai-pet-sitter-assistant-7l0</guid>
      <description>&lt;h1&gt;
  
  
  FetchUpdate – The AI Assistant for Local Pet Sitters 🐾
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;FetchUpdate&lt;/strong&gt; is an AI tool designed for independent dog walkers and local pet sitters. &lt;/p&gt;

&lt;p&gt;Pet sitters often spend 1–2 hours every evening manually texting individual updates to anxious owners. FetchUpdate automates this chore: the sitter takes a daily photo of the pet, selects their profile, and the tool uses a vision model paired with stored pet care details to instantly draft a warm, highly personalized SMS update ready to copy and send.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;Live App:&lt;/strong&gt; &lt;a href="https://fetchupdate-pbukbmxtmbxxj5ng6yifzb.streamlit.app/" rel="noopener noreferrer"&gt;FetchUpdate on Streamlit Cloud&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📁 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/2AJ0/fetchupdate" rel="noopener noreferrer"&gt;github.com/2AJ0/fetchupdate&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Database (MongoDB Atlas):&lt;/strong&gt; Stores structured pet profiles, including names, breeds, special instructions (e.g., &lt;em&gt;"Loves walks on paved trails"&lt;/em&gt;), owner details, and tone preferences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multimodal AI Pipeline (OpenRouter / Gemini / Open Models):&lt;/strong&gt; Accepts the uploaded image along with the retrieved MongoDB profile and prompts an open-weight vision model to describe the activity and generate a tailored SMS update.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend &amp;amp; Deployment (Streamlit):&lt;/strong&gt; Built using Python and Streamlit, deployed seamlessly on Streamlit Community Cloud.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;For local side hustles and micro-businesses, open innovation makes software viable in two key ways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy First:&lt;/strong&gt; Sitter notes contain sensitive client information (home locations, daily schedules, dog routines). Running open-weight vision models ensures client data stays secure without being harvested by closed corporate APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Near-Zero Cost Structure:&lt;/strong&gt; Closed API pricing quickly kills margins for small solo sitters charging $15–$30 per walk. Leveraging open models keeps operational overhead low enough to run a profitable local SaaS product.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  My First User
&lt;/h2&gt;

&lt;p&gt;I tested &lt;strong&gt;FetchUpdate&lt;/strong&gt; with a local test profile for &lt;strong&gt;Merku&lt;/strong&gt;, a Golden Retriever who loves long walks on paved trails. &lt;/p&gt;

&lt;p&gt;Uploading a photo of Merku generated the following update in seconds:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Hey Athul! Merku is sitting patiently, looking like the goodest boy. He's probably dreaming of soft treats and a nice long walk on the paved trails! 🐶"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The prompt correctly synthesized both the visual context from the photo and the background care instructions from MongoDB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of MongoDB Atlas:&lt;/strong&gt; Used MongoDB Atlas to store long-term pet care instructions, owner metadata, and personality traits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Open Models / Gemma:&lt;/strong&gt; Used open-weight vision models to generate contextual text updates from images.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Local Micro-Garden &amp; Frost Date Advisor | Touch Grass Challenge</title>
      <dc:creator>Athul Jenson</dc:creator>
      <pubDate>Thu, 08 Oct 2026 16:15:05 +0000</pubDate>
      <link>https://dev.to/2aj0/local-micro-garden-frost-date-advisor-touch-grass-challenge-1bhi</link>
      <guid>https://dev.to/2aj0/local-micro-garden-frost-date-advisor-touch-grass-challenge-1bhi</guid>
      <description>&lt;h2&gt;
  
  
  🌿 Overview: Bringing AI Outdoors ("Touch Grass")
&lt;/h2&gt;

&lt;p&gt;Developers spend countless hours glued to screens and debugging code. For &lt;strong&gt;Week 1 of the Hacktoberfest Open-Source AI Challenge&lt;/strong&gt; under the &lt;strong&gt;"Touch Grass"&lt;/strong&gt; theme, I built the &lt;strong&gt;Local Micro-Garden &amp;amp; Frost Date Advisor Agent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This interactive CLI agent evaluates regional frost limits, identifies cold-hardy crops, and creates an actionable outdoor task list based on how many hours you want to spend outside getting your hands in the soil.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Tech Stack &amp;amp; Local Setup
&lt;/h2&gt;

&lt;p&gt;The agent runs 100% locally on a Mac with zero external API dependencies or cloud key limits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; &lt;a href="https://mastra.ai/" rel="noopener noreferrer"&gt;Mastra&lt;/a&gt; (&lt;code&gt;@mastra/core&lt;/code&gt;) for agent orchestration and tool execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM Engine:&lt;/strong&gt; Local &lt;code&gt;llama3.1&lt;/code&gt; model running via &lt;a href="https://ollama.com/" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; with native tool-calling support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Type Safety &amp;amp; Validation:&lt;/strong&gt; &lt;a href="https://zod.dev/" rel="noopener noreferrer"&gt;Zod&lt;/a&gt; for strict tool input/output schema enforcement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime:&lt;/strong&gt; Node.js + TypeScript (&lt;code&gt;tsx&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 Architecture &amp;amp; Tools
&lt;/h2&gt;

&lt;p&gt;The agent coordinates two Mastra tools to build the garden plan:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;getFrostDataTool&lt;/code&gt;&lt;/strong&gt;: Analyzes historical frost dates and recommends cold-weather crops (such as Spinach, Garlic, Kale, and Winter Cabbage).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;generatePlanTool&lt;/code&gt;&lt;/strong&gt;: Converts your target outdoor time into a step-by-step checklist covering soil prep, mulching, and frost sheet installation.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🤖 Local Agent Definition (&lt;code&gt;src/agent.ts&lt;/code&gt;)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Agent&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@mastra/core/agent&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createOpenAI&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@ai-sdk/openai&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;getFrostDataTool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;generatePlanTool&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./tools.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Connect to local Ollama instance running llama3.1&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ollama&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createOpenAI&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;baseURL&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;[http://127.0.0.1:11434/v1](http://127.0.0.1:11434/v1)&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ollama&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;gardenAgent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Agent&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;micro-garden-agent&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Micro-Garden Frost Advisor&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`
    You are an AI assistant designed for the "Touch Grass" challenge.
    Your goal is to evaluate local frost dates and produce an outdoor weekend gardening plan.
    Encourage hands-on outdoor physical activity and practical soil maintenance.
  `&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;ollama&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;llama3.1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;getFrostData&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;getFrostDataTool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;generatePlan&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;generatePlanTool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📸 Demo &amp;amp; Terminal Output&lt;br&gt;
Running the CLI with Bengaluru and 5 outdoor hours:&lt;/p&gt;

&lt;p&gt;🌱 --- Micro-Garden &amp;amp; Frost Date Advisor Agent --- 🌱&lt;/p&gt;

&lt;p&gt;Enter your City or ZIP code: Bengaluru&lt;br&gt;
How many hours do you want to spend outside gardening this weekend? 5&lt;/p&gt;

&lt;p&gt;Consulting outdoor garden advisor...&lt;/p&gt;

&lt;p&gt;--- YOUR WEEKEND OUTDOOR PLAN ---&lt;br&gt;
Here is your customized outdoor action plan for Bengaluru:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Soil Prep: Apply a thick mulch layer to protect cold-hardy crops.&lt;/li&gt;
&lt;li&gt;Planting Checklist: Plant Spinach, Garlic, and Winter Cabbage.&lt;/li&gt;
&lt;li&gt;Frost Covers: Install simple protection sheets over sensitive beds.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Enjoy your 5 hours outdoors in the garden! 🌻&lt;br&gt;
🔗 Repository &amp;amp; Quickstart&lt;/p&gt;
&lt;h2&gt;
  
  
  GitHub Repository: github.com/2AJ0/touch-grass-micro-garden-agent
&lt;/h2&gt;

&lt;p&gt;How to Run Locally&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Pull the tool-calling model in Ollama&lt;/span&gt;
ollama pull llama3.1

&lt;span class="c"&gt;# 2. Clone &amp;amp; Install&lt;/span&gt;
git clone &lt;span class="o"&gt;[&lt;/span&gt;https://github.com/2AJ0/touch-grass-micro-garden-agent.git]&lt;span class="o"&gt;(&lt;/span&gt;https://github.com/2AJ0/touch-grass-micro-garden-agent.git&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;touch-grass-micro-garden-agent
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# 3. Launch CLI Agent&lt;/span&gt;
npx tsx index.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;What winter crops are you planning for your garden this season? Let me know in the comments! 🍃&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>ai</category>
      <category>mastra</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
