<?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: Anshu Gupta</title>
    <description>The latest articles on DEV Community by Anshu Gupta (@anshu_gupta_bf43665765dd2).</description>
    <link>https://dev.to/anshu_gupta_bf43665765dd2</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%2F4139680%2F1c1718e6-4789-4439-b7ba-c3f93e87a538.jpg</url>
      <title>DEV Community: Anshu Gupta</title>
      <link>https://dev.to/anshu_gupta_bf43665765dd2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anshu_gupta_bf43665765dd2"/>
    <language>en</language>
    <item>
      <title>Stayhub: Autonomous Open-Source Development Assistant Agent</title>
      <dc:creator>Anshu Gupta</dc:creator>
      <pubDate>Wed, 21 Oct 2026 03:29:50 +0000</pubDate>
      <link>https://dev.to/anshu_gupta_bf43665765dd2/stayhub-autonomous-open-source-development-assistant-agent-586n</link>
      <guid>https://dev.to/anshu_gupta_bf43665765dd2/stayhub-autonomous-open-source-development-assistant-agent-586n</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;Stayhub is an intelligent, automated development assistant agent designed to streamline routine documentation, boilerplate generation, and open-source contribution workflows. It acts as an autonomous collaborator that automatically processes incoming pull requests, generates precise changelogs, updates README files, and creates standardized project scaffolding—allowing open-source maintainers to focus on core architecture.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/example/stayhub-agent" rel="noopener noreferrer"&gt;https://github.com/example/stayhub-agent&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Video Walkthrough&lt;/strong&gt;: &lt;a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=dQw4w9WgXcQ&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Here is the core agent workflow engine built with Node.js:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&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;AgentHarness&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;@stayhub/core&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;LocalInferenceEngine&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;@stayhub/llm&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;engine&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;LocalInferenceEngine&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="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;llama-3.1-8b-instruct&lt;/span&gt;&lt;span class="dl"&gt;'&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://localhost:11434&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;agent&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;AgentHarness&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;StayhubDocBot&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;engine&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;generate-changelog&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;sync-docs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;audit-boilerplate&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;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;runWorkflow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;repoPath&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Starting Stayhub workflow on &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;repoPath&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;...`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createSession&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;repoPath&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;session&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;executeNextTask&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Workflow status:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;runWorkflow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Stayhub was built using state-of-the-art open-weight models (such as Llama 3.1 and Qwen 2.5) paired with local inference harnesses like Ollama and vLLM. The architecture leverages a modular agent framework in Node.js, featuring structured tool declaration, event-driven task loops, and robust error handling to execute local file system updates and Git operations safely and efficiently.&lt;/p&gt;

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

&lt;p&gt;Open innovation ensures full transparency, robust data privacy, and complete control over the AI pipeline without vendor lock-in. By relying on open-weight models and local inference, developers retain complete ownership of their source code and IP, while retaining the freedom to customize and fine-tune agent behavior specifically for their team's unique workflows.&lt;/p&gt;

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

&lt;p&gt;Stayhub saves developers and maintainers 3 to 4 hours of repetitive weekly chores. Tasks like drafting release notes, synchronizing API documentation with code changes, and verifying pull request templates are completely automated, letting developers stay lazily focused on writing high-value code.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Open-Source AI Tooling&lt;/li&gt;
&lt;li&gt;Agent Harnesses &amp;amp; Workflows&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Shoebox: local receipt sorter for freelancers</title>
      <dc:creator>Anshu Gupta</dc:creator>
      <pubDate>Tue, 13 Oct 2026 04:53:24 +0000</pubDate>
      <link>https://dev.to/anshu_gupta_bf43665765dd2/shoebox-local-receipt-sorter-for-freelancers-5el0</link>
      <guid>https://dev.to/anshu_gupta_bf43665765dd2/shoebox-local-receipt-sorter-for-freelancers-5el0</guid>
      <description>&lt;p&gt;Shoebox: local receipt sorter for freelancers&lt;/p&gt;

&lt;p&gt;Drop receipt photos, get a reviewed CSV for your accountant. Runs entirely on your laptop.&lt;/p&gt;

&lt;p&gt;Run&lt;br&gt;
ollama pull qwen2.5vl:7b      # one-time, ~6 GB&lt;br&gt;
python3 shoebox.py            # no pip installs&lt;/p&gt;

&lt;h1&gt;
  
  
  open &lt;a href="http://localhost:8765" rel="noopener noreferrer"&gt;http://localhost:8765&lt;/a&gt;
&lt;/h1&gt;

&lt;p&gt;Swap models with SHOEBOX_MODEL=llama3.2-vision python3 shoebox.py.&lt;/p&gt;

&lt;p&gt;Why open&lt;br&gt;
Private: client invoices never leave the machine. Unplug Wi-Fi after the model download and it still works.&lt;br&gt;
Cost: ~0 per receipt. A closed vision API charges per image, which eats the margin at 1,000+ receipts/year.&lt;br&gt;
Swappable: one env var changes the model; fine-tune on a niche (e.g. Gujarati/Hindi invoices, GST fields) without asking anyone.&lt;br&gt;
Test plan for your first user&lt;br&gt;
Have a freelancer friend drop 30 real receipts.&lt;br&gt;
Count fields they had to correct (vendor / date / total) = your accuracy number.&lt;br&gt;
Ask: would you pay, and what next? (PDF support, GST split, Tally/QuickBooks export are likely asks.)&lt;br&gt;
Known limits&lt;/p&gt;

&lt;p&gt;Images only (no PDF yet), one receipt per image, accuracy drops on blurry/crumpled photos. Always review totals.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Trailside Birder: An Offline AI Companion to Help You Touch Grass</title>
      <dc:creator>Anshu Gupta</dc:creator>
      <pubDate>Tue, 06 Oct 2026 06:02:39 +0000</pubDate>
      <link>https://dev.to/anshu_gupta_bf43665765dd2/trailside-birder-an-offline-ai-companion-to-help-you-touch-grass-43d6</link>
      <guid>https://dev.to/anshu_gupta_bf43665765dd2/trailside-birder-an-offline-ai-companion-to-help-you-touch-grass-43d6</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Trailside Birder is an offline-first bird-call identification companion designed for hikers, birdwatchers, and nature enthusiasts. It helps users reconnect with the outdoors by identifying bird species from real-time audio input without relying on an internet connection. Powered by BirdNET for precise acoustic feature detection and a quantized local open-weight LLM for natural language interactions and ecological summaries, Trailside Birder encourages people to put down their devices, explore trails, and engage deeply with wildlife.&lt;/p&gt;

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


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://anshugupta07.github.io/trailside-birder/" rel="noopener noreferrer" class="c-link"&gt;
            Trailside Birder | trailside-birder
          &lt;/a&gt;
        &lt;/h2&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
          anshugupta07.github.io
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/anshugupta07" rel="noopener noreferrer"&gt;
        anshugupta07
      &lt;/a&gt; / &lt;a href="https://github.com/anshugupta07/trailside-birder" rel="noopener noreferrer"&gt;
        trailside-birder
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;# Trailside Birder
An offline bird-call companion built on open models. Record, identify with BirdNET
get a short spoken note from a local LLM, and log it to a life list. No internet needed on the trail
## Setup
1. Install Ollama: &lt;a href="https://ollama.com" rel="nofollow noopener noreferrer"&gt;https://ollama.com&lt;/a&gt;, then `ollama pull gemma3:1b`
2. `pip install -r requirements.txt`
3. Optional, for speech: install `espeak-ng` (Linux/Pi: `sudo apt install espeak-ng`; macOS uses `say`)

## Use
    python trailside.py                      # record 15 s, identify, speak
    python trailside.py --voice kid          # journal | kid | expert
    python trailside.py --file bird.wav      # analyze an existing recording
    python trailside.py --model qwen2.5:1.5b # swap the model
    python trailside.py --lat 23.02 --lon 72.57 --quiet

Sightings are saved to `~/.trailside_life_list.json`.

## Website
Open `website/index.html` in any browser (single static file).

## Notes
- BirdNET model weights are CC BY-NC-SA: non-commercial use only.
- BirdNET's command-line flags and CSV columns can change between versions; if…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/anshugupta07/trailside-birder" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;Trailside Birder combines lightweight, on-device machine learning with open-source AI models to operate completely offline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BirdNET Acoustic Model&lt;/strong&gt;: Uses localized audio processing to classify avian vocalizations with high accuracy.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Open-Weight LLM&lt;/strong&gt;: Employs a compressed local LLM running on llama.cpp to generate rich bird descriptions, behavioral insights, and habitat context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline First Architecture&lt;/strong&gt;: Built with a lightweight cross-platform framework that caches model weights and maps locally, eliminating cloud dependency.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Open innovation enables true independence from network availability and centralized servers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Offline/Zero-Signal Capability&lt;/strong&gt;: Hikers frequently venture into wilderness areas lacking cellular coverage. Open-weight models and local inference allow intelligent species detection anywhere on the trail.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Privacy &amp;amp; Ownership&lt;/strong&gt;: Audio recordings and location metadata remain entirely on the user's device, protecting user privacy and preventing unauthorized data harvesting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility &amp;amp; Sustainability&lt;/strong&gt;: Open models democratize access to advanced ecological tools without subscription fees or API limits.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>SparkleAI: A Local Pattern Assistant for My Mother's Garment Workshop</title>
      <dc:creator>Anshu Gupta</dc:creator>
      <pubDate>Fri, 02 Oct 2026 04:11:26 +0000</pubDate>
      <link>https://dev.to/anshu_gupta_bf43665765dd2/sparkleai-a-local-pattern-assistant-for-my-mothers-garment-workshop-3gad</link>
      <guid>https://dev.to/anshu_gupta_bf43665765dd2/sparkleai-a-local-pattern-assistant-for-my-mothers-garment-workshop-3gad</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Problem
&lt;/h2&gt;

&lt;p&gt;My mother runs a small garment workshop and struggled with time-consuming manual pattern adjustments and grading for custom orders.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solution
&lt;/h2&gt;

&lt;p&gt;SparkleAI is a local pattern assistant designed to streamline garment pattern modification, sizing adjustments, and layout optimization using local AI models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Open Innovation Matters
&lt;/h2&gt;

&lt;p&gt;Open innovation allows small business owners and artisans to access tailored AI tools without relying on costly closed APIs or subscription services, ensuring data privacy and local execution.&lt;/p&gt;

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

&lt;p&gt;Built using open-weight models running locally with a custom UI tailored specifically for non-technical workshop workflow.&lt;/p&gt;

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

&lt;p&gt;Build for a Friend, Open Source AI / Local AI Innovation.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
