<?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: Deep Halder</title>
    <description>The latest articles on DEV Community by Deep Halder (@deep_halder_063).</description>
    <link>https://dev.to/deep_halder_063</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3288042%2F3a354109-3980-487e-aeab-59d508aee833.png</url>
      <title>DEV Community: Deep Halder</title>
      <link>https://dev.to/deep_halder_063</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deep_halder_063"/>
    <language>en</language>
    <item>
      <title>I Built a Windows Auto-Installer for OpenClaw (So You Don't Suffer Like I Did)</title>
      <dc:creator>Deep Halder</dc:creator>
      <pubDate>Thu, 23 Apr 2026 08:27:37 +0000</pubDate>
      <link>https://dev.to/deep_halder_063/i-built-a-windows-auto-installer-for-openclaw-so-you-dont-suffer-like-i-did-7oe</link>
      <guid>https://dev.to/deep_halder_063/i-built-a-windows-auto-installer-for-openclaw-so-you-dont-suffer-like-i-did-7oe</guid>
      <description>&lt;p&gt;Submitted for the DEV.to OpenClaw Challenge — OpenClaw in Action prompt&lt;/p&gt;

&lt;p&gt;I spent 3 days getting OpenClaw running on Windows 11.&lt;br&gt;
Three. Days.&lt;br&gt;
Not because the tool is bad — but because Windows has some specific gotchas that nobody had documented yet. Old API keys hiding in environment variables. Device pairing errors. Token limit walls. Gateway crashes.&lt;br&gt;
So I did what any frustrated developer does: I turned the pain into a tool.&lt;br&gt;
Meet install-openclaw.ps1 — a one-click PowerShell installer that handles everything automatically.&lt;/p&gt;

&lt;p&gt;🤔 What Problem Does It Solve?&lt;br&gt;
Getting OpenClaw running on Windows involves:&lt;/p&gt;

&lt;p&gt;Checking Node.js is installed&lt;br&gt;
Choosing a safe install directory&lt;br&gt;
Installing OpenClaw globally via npm&lt;br&gt;
Clearing old API keys from Windows environment variables (the sneaky one)&lt;br&gt;
Choosing and configuring an AI provider&lt;br&gt;
Starting the gateway&lt;br&gt;
Finding your auth token&lt;/p&gt;

&lt;p&gt;My installer handles all of them automatically.&lt;/p&gt;

&lt;p&gt;✨ Features&lt;/p&gt;

&lt;p&gt;✅ Auto-detects Node.js&lt;br&gt;
✅ Lets you choose your install drive&lt;br&gt;
✅ Automatically clears old API key environment variables&lt;br&gt;
✅ Supports Groq, OpenRouter, and Google Gemini&lt;br&gt;
✅ Starts the gateway automatically&lt;br&gt;
✅ Shows your token and exact commands to connect&lt;br&gt;
✅ Warns you about common mistakes&lt;/p&gt;

&lt;p&gt;🚀 How to Use It&lt;br&gt;
Step 1 — Download install-openclaw.ps1&lt;br&gt;
Step 2 — Right-click → Run with PowerShell&lt;br&gt;
Step 3 — Follow the prompts and you're done!&lt;/p&gt;

&lt;p&gt;💡 The Most Important Fix: Environment Variables&lt;br&gt;
The sneakiest Windows bug: if you've ever set an API key as a Windows environment variable, it will silently override your OpenClaw config file — even after you update the config.&lt;br&gt;
Check it manually:&lt;br&gt;
powershellecho $env:GROQ_API_KEY&lt;br&gt;
Clear it permanently:&lt;br&gt;
powershell[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", $null, "Machine")&lt;/p&gt;

&lt;p&gt;📥 The Full Script&lt;/p&gt;

&lt;p&gt;If PowerShell blocks the script, run this first:&lt;br&gt;
powershellSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser&lt;/p&gt;

&lt;p&gt;powershell# OpenClaw Windows Auto-Installer&lt;/p&gt;

&lt;h1&gt;
  
  
  Created by Deep — based on 3 days of real troubleshooting
&lt;/h1&gt;

&lt;p&gt;$ErrorActionPreference = "SilentlyContinue"&lt;/p&gt;

&lt;p&gt;function Write-Green  { param($msg) Write-Host $msg -ForegroundColor Green }&lt;br&gt;
function Write-Yellow { param($msg) Write-Host $msg -ForegroundColor Yellow }&lt;br&gt;
function Write-Red    { param($msg) Write-Host $msg -ForegroundColor Red }&lt;br&gt;
function Write-Cyan   { param($msg) Write-Host $msg -ForegroundColor Cyan }&lt;/p&gt;

&lt;p&gt;Clear-Host&lt;br&gt;
Write-Cyan "=============================================="&lt;br&gt;
Write-Cyan "   🦞 OpenClaw Windows Auto-Installer 🦞"&lt;br&gt;
Write-Cyan "   By Deep | DEV.to OpenClaw Challenge 2026"&lt;br&gt;
Write-Cyan "=============================================="&lt;br&gt;
Write-Host ""&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 1/7 ] Checking Node.js..."&lt;br&gt;
$node = Get-Command node -ErrorAction SilentlyContinue&lt;br&gt;
if (-not $node) {&lt;br&gt;
    Write-Red "  ✗ Node.js not found!"&lt;br&gt;
    Write-Host "  Please install Node.js LTS from &lt;a href="https://nodejs.org" rel="noopener noreferrer"&gt;https://nodejs.org&lt;/a&gt;"&lt;br&gt;
    Read-Host "  Press Enter to exit"&lt;br&gt;
    exit 1&lt;br&gt;
}&lt;br&gt;
Write-Green "  ✓ Node.js found: $(node --version)"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 2/7 ] Choosing install directory..."&lt;br&gt;
$defaultDir = "D:\OpenClaw"&lt;br&gt;
if (-not (Test-Path "D:\")) { $defaultDir = "C:\OpenClaw" }&lt;br&gt;
$userDir = Read-Host "  Press Enter for $defaultDir or type a custom path"&lt;br&gt;
if ($userDir -ne "") { $defaultDir = $userDir }&lt;br&gt;
if (-not (Test-Path $defaultDir)) { New-Item -ItemType Directory -Path $defaultDir -Force | Out-Null }&lt;br&gt;
Set-Location $defaultDir&lt;br&gt;
Write-Green "  ✓ Using: $defaultDir"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 3/7 ] Installing OpenClaw..."&lt;br&gt;
npm install -g openclaw@latest 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
Write-Green "  ✓ OpenClaw installed"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 4/7 ] Clearing old API key environment variables..."&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", $null, "Machine")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", $null, "Machine")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GOOGLE_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GOOGLE_API_KEY", $null, "Machine")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("OPENROUTER_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("OPENROUTER_API_KEY", $null, "Machine")&lt;br&gt;
Write-Green "  ✓ Cleared"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 5/7 ] Choose your AI provider..."&lt;br&gt;
Write-Host "  1) Groq       - Free tier (console.groq.com)"&lt;br&gt;
Write-Host "  2) OpenRouter - Free models (openrouter.ai)"&lt;br&gt;
Write-Host "  3) Google     - Free tier (aistudio.google.com)"&lt;br&gt;
$choice = Read-Host "  Enter 1, 2, or 3"&lt;br&gt;
switch ($choice) {&lt;br&gt;
    "1" {&lt;br&gt;
        $apiKey = Read-Host "  Paste your Groq API key"&lt;br&gt;
        $env:GROQ_API_KEY = $apiKey&lt;br&gt;
        npx openclaw config set env.GROQ_API_KEY $apiKey 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        npx openclaw config set agents.defaults.model "groq/llama-3.3-70b-versatile" 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        Write-Green "  ✓ Groq configured"&lt;br&gt;
    }&lt;br&gt;
    "2" {&lt;br&gt;
        $apiKey = Read-Host "  Paste your OpenRouter API key"&lt;br&gt;
        $env:OPENROUTER_API_KEY = $apiKey&lt;br&gt;
        npx openclaw config set env.OPENROUTER_API_KEY $apiKey 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        npx openclaw config set agents.defaults.model "openrouter/mistralai/mistral-7b-instruct:free" 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        Write-Green "  ✓ OpenRouter configured"&lt;br&gt;
    }&lt;br&gt;
    "3" {&lt;br&gt;
        $apiKey = Read-Host "  Paste your Google Gemini API key"&lt;br&gt;
        $env:GOOGLE_API_KEY = $apiKey&lt;br&gt;
        npx openclaw config set env.GOOGLE_API_KEY $apiKey 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        npx openclaw config set agents.defaults.model "google/gemini-2.0-flash" 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        Write-Green "  ✓ Google Gemini configured"&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 6/7 ] Starting Gateway (30-60 seconds)..."&lt;br&gt;
Start-Process -FilePath "npx" -ArgumentList "openclaw gateway --allow-unconfigured" -WindowStyle Normal&lt;br&gt;
Start-Sleep -Seconds 45&lt;br&gt;
Write-Green "  ✓ Gateway started!"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 7/7 ] Getting your token..."&lt;br&gt;
Start-Sleep -Seconds 3&lt;br&gt;
$config = Get-Content "$defaultDir.openclaw\openclaw.json" | ConvertFrom-Json&lt;br&gt;
$token = $config.gateway.auth.token&lt;/p&gt;

&lt;p&gt;Write-Cyan "=============================================="&lt;br&gt;
Write-Green "   🎉 OpenClaw is ready!"&lt;br&gt;
Write-Cyan "=============================================="&lt;br&gt;
Write-Host ""&lt;br&gt;
Write-Host "  Run this in a NEW PowerShell window:"&lt;br&gt;
Write-Cyan "  npx openclaw tui --token $token"&lt;br&gt;
Write-Host ""&lt;br&gt;
Write-Yellow "  ⚠ Don't spam test messages — fills token history fast!"&lt;br&gt;
Write-Host ""&lt;br&gt;
Read-Host "Press Enter to exit"&lt;/p&gt;

&lt;h1&gt;
  
  
  openclaw #windows #powershell #ai #tutorial
&lt;/h1&gt;

&lt;p&gt;Copy everything above, paste into dev.to/new, add the challenge link at the bottom, and submit! 🏆You said: Openclaw installer post · this oneOpenclaw installer post · this one1:52 PMClaude responded: Here's the full content of the openclaw-installer-post to copy into DEV.Here's the full content of the openclaw-installer-post to copy into DEV.to:&lt;/p&gt;

&lt;p&gt;I Built a Windows Auto-Installer for OpenClaw (So You Don't Suffer Like I Did)&lt;br&gt;
Submitted for the DEV.to OpenClaw Challenge — OpenClaw in Action prompt&lt;/p&gt;

&lt;p&gt;I spent 3 days getting OpenClaw running on Windows 11.&lt;br&gt;
Three. Days.&lt;br&gt;
Not because the tool is bad — but because Windows has some specific gotchas that nobody had documented yet. Old API keys hiding in environment variables. Device pairing errors. Token limit walls. Gateway crashes.&lt;br&gt;
So I did what any frustrated developer does: I turned the pain into a tool.&lt;br&gt;
Meet install-openclaw.ps1 — a one-click PowerShell installer that handles everything automatically.&lt;/p&gt;

&lt;p&gt;🤔 What Problem Does It Solve?&lt;br&gt;
Getting OpenClaw running on Windows involves:&lt;/p&gt;

&lt;p&gt;Checking Node.js is installed&lt;br&gt;
Choosing a safe install directory&lt;br&gt;
Installing OpenClaw globally via npm&lt;br&gt;
Clearing old API keys from Windows environment variables (the sneaky one)&lt;br&gt;
Choosing and configuring an AI provider&lt;br&gt;
Starting the gateway&lt;br&gt;
Finding your auth token&lt;/p&gt;

&lt;p&gt;My installer handles all of them automatically.&lt;/p&gt;

&lt;p&gt;✨ Features&lt;/p&gt;

&lt;p&gt;✅ Auto-detects Node.js&lt;br&gt;
✅ Lets you choose your install drive&lt;br&gt;
✅ Automatically clears old API key environment variables&lt;br&gt;
✅ Supports Groq, OpenRouter, and Google Gemini&lt;br&gt;
✅ Starts the gateway automatically&lt;br&gt;
✅ Shows your token and exact commands to connect&lt;br&gt;
✅ Warns you about common mistakes&lt;/p&gt;

&lt;p&gt;🚀 How to Use It&lt;br&gt;
Step 1 — Copy the script below and save it as install-openclaw.ps1&lt;br&gt;
Step 2 — Right-click → Run with PowerShell&lt;br&gt;
Step 3 — Follow the prompts and you're done!&lt;/p&gt;

&lt;p&gt;If PowerShell blocks the script, run this first:&lt;br&gt;
powershellSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser&lt;/p&gt;

&lt;p&gt;💡 The Sneakiest Windows Bug&lt;br&gt;
Old API keys saved as Windows environment variables silently override your config file — even after you update it. This gave me HTTP 401: Invalid API Key for hours despite having the correct key in my config.&lt;br&gt;
Check for it:&lt;br&gt;
powershellecho $env:GROQ_API_KEY&lt;br&gt;
Clear it permanently:&lt;br&gt;
powershell[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", $null, "Machine")&lt;br&gt;
My installer does this automatically.&lt;/p&gt;

&lt;p&gt;⚠️ Other Lessons Learned&lt;/p&gt;

&lt;p&gt;Don't spam test messages while debugging — fills your token history fast, hitting Groq's 12k TPM limit&lt;br&gt;
Use OpenRouter for most reliable free access — no strict TPM limits&lt;br&gt;
Always keep the gateway window open — TUI depends on it&lt;/p&gt;

&lt;p&gt;📥 The Full Script&lt;br&gt;
powershell# OpenClaw Windows Auto-Installer&lt;/p&gt;

&lt;h1&gt;
  
  
  Created by Deep — based on 3 days of real troubleshooting
&lt;/h1&gt;

&lt;p&gt;$ErrorActionPreference = "SilentlyContinue"&lt;/p&gt;

&lt;p&gt;function Write-Green  { param($msg) Write-Host $msg -ForegroundColor Green }&lt;br&gt;
function Write-Yellow { param($msg) Write-Host $msg -ForegroundColor Yellow }&lt;br&gt;
function Write-Red    { param($msg) Write-Host $msg -ForegroundColor Red }&lt;br&gt;
function Write-Cyan   { param($msg) Write-Host $msg -ForegroundColor Cyan }&lt;/p&gt;

&lt;p&gt;Clear-Host&lt;br&gt;
Write-Cyan "=============================================="&lt;br&gt;
Write-Cyan "   🦞 OpenClaw Windows Auto-Installer 🦞"&lt;br&gt;
Write-Cyan "   By Deep | DEV.to OpenClaw Challenge 2026"&lt;br&gt;
Write-Cyan "=============================================="&lt;br&gt;
Write-Host ""&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 1/7 ] Checking Node.js..."&lt;br&gt;
$node = Get-Command node -ErrorAction SilentlyContinue&lt;br&gt;
if (-not $node) {&lt;br&gt;
    Write-Red "  ✗ Node.js not found!"&lt;br&gt;
    Write-Host "  Please install Node.js LTS from &lt;a href="https://nodejs.org" rel="noopener noreferrer"&gt;https://nodejs.org&lt;/a&gt;"&lt;br&gt;
    Read-Host "  Press Enter to exit"&lt;br&gt;
    exit 1&lt;br&gt;
}&lt;br&gt;
Write-Green "  ✓ Node.js found: $(node --version)"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 2/7 ] Choosing install directory..."&lt;br&gt;
$defaultDir = "D:\OpenClaw"&lt;br&gt;
if (-not (Test-Path "D:\")) { $defaultDir = "C:\OpenClaw" }&lt;br&gt;
$userDir = Read-Host "  Press Enter for $defaultDir or type a custom path"&lt;br&gt;
if ($userDir -ne "") { $defaultDir = $userDir }&lt;br&gt;
if (-not (Test-Path $defaultDir)) { New-Item -ItemType Directory -Path $defaultDir -Force | Out-Null }&lt;br&gt;
Set-Location $defaultDir&lt;br&gt;
Write-Green "  ✓ Using: $defaultDir"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 3/7 ] Installing OpenClaw..."&lt;br&gt;
npm install -g openclaw@latest 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
Write-Green "  ✓ OpenClaw installed"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 4/7 ] Clearing old API key environment variables..."&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GROQ_API_KEY", $null, "Machine")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("OPENAI_API_KEY", $null, "Machine")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GOOGLE_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("GOOGLE_API_KEY", $null, "Machine")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("OPENROUTER_API_KEY", $null, "User")&lt;br&gt;
[System.Environment]::SetEnvironmentVariable("OPENROUTER_API_KEY", $null, "Machine")&lt;br&gt;
Write-Green "  ✓ Cleared"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 5/7 ] Choose your AI provider..."&lt;br&gt;
Write-Host "  1) Groq       - Free tier (console.groq.com)"&lt;br&gt;
Write-Host "  2) OpenRouter - Free models (openrouter.ai)"&lt;br&gt;
Write-Host "  3) Google     - Free tier (aistudio.google.com)"&lt;br&gt;
$choice = Read-Host "  Enter 1, 2, or 3"&lt;br&gt;
switch ($choice) {&lt;br&gt;
    "1" {&lt;br&gt;
        $apiKey = Read-Host "  Paste your Groq API key"&lt;br&gt;
        $env:GROQ_API_KEY = $apiKey&lt;br&gt;
        npx openclaw config set env.GROQ_API_KEY $apiKey 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        npx openclaw config set agents.defaults.model "groq/llama-3.3-70b-versatile" 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        Write-Green "  ✓ Groq configured"&lt;br&gt;
    }&lt;br&gt;
    "2" {&lt;br&gt;
        $apiKey = Read-Host "  Paste your OpenRouter API key"&lt;br&gt;
        $env:OPENROUTER_API_KEY = $apiKey&lt;br&gt;
        npx openclaw config set env.OPENROUTER_API_KEY $apiKey 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        npx openclaw config set agents.defaults.model "openrouter/mistralai/mistral-7b-instruct:free" 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        Write-Green "  ✓ OpenRouter configured"&lt;br&gt;
    }&lt;br&gt;
    "3" {&lt;br&gt;
        $apiKey = Read-Host "  Paste your Google Gemini API key"&lt;br&gt;
        $env:GOOGLE_API_KEY = $apiKey&lt;br&gt;
        npx openclaw config set env.GOOGLE_API_KEY $apiKey 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        npx openclaw config set agents.defaults.model "google/gemini-2.0-flash" 2&amp;gt;&amp;amp;1 | Out-Null&lt;br&gt;
        Write-Green "  ✓ Google Gemini configured"&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 6/7 ] Starting Gateway (30-60 seconds)..."&lt;br&gt;
Start-Process -FilePath "npx" -ArgumentList "openclaw gateway --allow-unconfigured" -WindowStyle Normal&lt;br&gt;
Start-Sleep -Seconds 45&lt;br&gt;
Write-Green "  ✓ Gateway started!"&lt;/p&gt;

&lt;p&gt;Write-Yellow "[ Step 7/7 ] Getting your token..."&lt;br&gt;
Start-Sleep -Seconds 3&lt;br&gt;
$config = Get-Content "$defaultDir.openclaw\openclaw.json" | ConvertFrom-Json&lt;br&gt;
$token = $config.gateway.auth.token&lt;/p&gt;

&lt;p&gt;Write-Cyan "=============================================="&lt;br&gt;
Write-Green "   🎉 OpenClaw is ready!"&lt;br&gt;
Write-Cyan "=============================================="&lt;br&gt;
Write-Host ""&lt;br&gt;
Write-Host "  Run this in a NEW PowerShell window:"&lt;br&gt;
Write-Cyan "  npx openclaw tui --token $token"&lt;br&gt;
Write-Host ""&lt;br&gt;
Write-Yellow "  ⚠ Don't spam test messages — fills token history fast!"&lt;br&gt;
Write-Host ""&lt;br&gt;
Read-Host "Press Enter to exit"&lt;/p&gt;

&lt;p&gt;This project came from 3 days of real struggle. I hope it saves you the same pain! 🦞&lt;/p&gt;

</description>
      <category>openclawchallenge</category>
      <category>ai</category>
      <category>tutorial</category>
      <category>programming</category>
    </item>
    <item>
      <title>EcoPulse: Real-time Air Quality + Gemini AI</title>
      <dc:creator>Deep Halder</dc:creator>
      <pubDate>Sat, 18 Apr 2026 20:55:58 +0000</pubDate>
      <link>https://dev.to/deep_halder_063/ecopulse-real-time-air-quality-gemini-ai-1h1a</link>
      <guid>https://dev.to/deep_halder_063/ecopulse-real-time-air-quality-gemini-ai-1h1a</guid>
      <description>&lt;h1&gt;
  
  
  🌍 EcoPulse: Real-time Air Quality + Gemini AI
&lt;/h1&gt;

&lt;h2&gt;
  
  
  🔗 Live Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://celebrated-dodol-6f257b.netlify.app" rel="noopener noreferrer"&gt;https://celebrated-dodol-6f257b.netlify.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;EcoPulse helps people understand local air quality and get AI-powered sustainability tips. Enter any city - get real-time AQI data and personalized Earth Day advice from Google Gemini.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;User enters a city name (try: New York, London, Delhi)&lt;/li&gt;
&lt;li&gt;App fetches real-time air quality data&lt;/li&gt;
&lt;li&gt;Google Gemini AI generates personalized eco-tips&lt;/li&gt;
&lt;/ol&gt;

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

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Best use of Google Gemini&lt;/strong&gt; - Using Gemini 2.0 Flash API&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Best use of GitHub Copilot&lt;/strong&gt; - Built with Copilot assistance&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💻 Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;HTML/CSS/JavaScript&lt;/li&gt;
&lt;li&gt;Google Gemini API&lt;/li&gt;
&lt;li&gt;World Air Quality Index API&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🌱 Why Earth Day Matters
&lt;/h2&gt;

&lt;p&gt;Technology can help us make better choices for our planet. Small actions, multiplied by millions, create massive positive change.&lt;/p&gt;

&lt;h2&gt;
  
  
  📸 Screenshot
&lt;/h2&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%2Fcelebrated-dodol-6f257b.netlify.app" 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%2Fcelebrated-dodol-6f257b.netlify.app" alt="EcoPulse Screenshot" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Built with 💚 for the DEV Weekend Challenge: Earth Day Edition&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #weekendchallenge #earthday #gemini
&lt;/h1&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.amazonaws.com%2Fuploads%2Farticles%2Fhw9s2ssjfe2d10h4e43y.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.amazonaws.com%2Fuploads%2Farticles%2Fhw9s2ssjfe2d10h4e43y.png" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&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.amazonaws.com%2Fuploads%2Farticles%2Fhxm7wrdkha6ci2u64mc3.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Fhxm7wrdkha6ci2u64mc3.jpg" alt=" " width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>earthday</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
