DEV Weekend Challenge: Dog Days Edition Submission 🐕
This is a submission for Weekend Challenge: Dog Days Edition
What I Built
Remember Neko the cat and those Tamagotchi desktop pets from the 90s? I rebuilt that magic for 2026 — except your pet is a golden retriever puppy powered by an LLM.
PawBot is a Chrome extension + browser demo where a cute pixel puppy:
- 🐕 Roams your screen like a classic desktop pet
- 🏃 Chases your cursor when you get close
- 🍖 Eats anything you drop — PDFs, code files, emoji, pasted text
- 💬 Barks back with short, mood-aware responses via Google Gemini
- 😴 Falls asleep if you ignore it too long (with Zzz particles!)
- ❤️ Reacts to pets — click to pet, double-click to wave
Feed it a .pdf and it might say “Mmm, crunchy homework!” Ignore it for 40 seconds and it curls up with sad puppy eyes.
Demo
Full walkthrough on YouTube:
Quick try locally:
git clone https://github.com/Varshithvhegde/pawbot.git
cd pawbot/web
python3 -m http.server 8080
# → http://localhost:8080
Enter fullscreen mode Exit fullscreen mode
Or load the Chrome extension: clone the repo → ./scripts/sync-extension.sh → Load unpacked → select the extension/ folder.
Code
Varshithvhegde
/
pawbot
AI desktop puppy Chrome extension — pixel pet that eats your files and barks with Google Gemini
PawBot 🐾
An AI desktop puppy that lives in your browser. A Tamagotchi/Neko-style pixel pet that roams your screen, chases your cursor, eats files & emoji you drop, and barks mood-aware responses powered by Google Gemini.
Built for the DEV Weekend Challenge: Dog Days Edition.
Demo
🎬 Watch on YouTube · 📝 DEV submission · 🔗 GitHub
Features
Feature
Description
🐕 Pixel puppy
Full sprite animations — idle, walk, run, eat, sleep, bark, wave
🍖 Feed anything
Drop files, emoji, or paste text — pup chases food then eats it
🏃 Chase mechanics
Food falls from above → pup runs to it → 4-frame eat animation
💬 AI barks
Google Gemini generates short mood-based responses
😴 Sleep mode
Ignore pup 40s → falls asleep with Zzz particles
❤️ Pet & wave
Click to pet, double-click to wave paw
⌨️ Hotkeys
F throw treat · B bark · Esc…
Repo: github.com/Varshithvhegde/pawbot
How I Built It
Architecture
Browser tab
│
├── Content script (bundled IIFE via esbuild)
│ └── Shadow DOM canvas overlay (immune to page CSS)
│
├── Pet engine (Canvas 2D state machine)
│ idle → walk → run → eat → sleep → bark → wave
│
├── Sprite loader (33 AI-generated pixel frames)
│
└── Bark engine → Google Gemini API
mood + hunger + last meal → short bark text
Enter fullscreen mode Exit fullscreen mode
Technical decisions
Decision Why Vanilla JS + Canvas Zero build step for the web demo; screen-recording friendly Shadow DOM overlay Page CSS can’t hide the pup (learned this the hard way on AI Studio) esbuild bundle Chrome content scripts can’t use ESimport — single bundled file fixes it
AI sprite sheet
Generated pixel art, auto-sliced with a Python script into 33 transparent PNGs
Chase-then-eat flow
Food drops → pup runs → 4-frame eat animation → crumb particles
Fallback barks
Works offline without an API key; Gemini enhances when configured
Sprite animations (all 33 frames used!)
State Sprites Idle 4-frame breathing loop Walk / Run Directional left & right sprites Eat 4-frame chew cycle + flying food emoji Sleep Curled up + floating Zzz particles Mood Happy, sad, curious, excited overlays Bark Shows while AI speech bubble is active Wave Paw idle + 3-frame wave on pet/double-clickControls
Action How Feed Drag & drop file or emoji Feed Paste text/emoji Pet Click the puppy Wave Double-click Throw treat PressF
Bark
Press B
Live hunger & happiness HUD in the bottom-left corner.
Prize Categories
✅ Best Use of Google AI
PawBot uses Google Gemini 2.0 Flash Lite — not as a chatbot, but as a personality engine for a desktop pet.
Every bark sends real context to Gemini:
Event Context sent to Gemini Example bark Fed a.py file
"Just ate: main.py (file)", mood: happy
“Python for breakfast? Bold choice.”
Ignored 40s+
mood: lonely, ignoredMs: 45000
“…hello? I saved you a spot.”
Poked
happiness: 85, mood: excited
“Hehe! Belly rubs detected!”
Hungry
hunger: 82/100
“Is that food? IS THAT FOOD?”
Free API key from Google AI Studio → paste in extension popup. Falls back to canned barks if no key is set.
What’s next
- 🔊 ElevenLabs bark sounds
- 🐩 Multiple dog breeds
- 🦊 Firefox extension
Thanks for reading! If PawBot made you smile, leave a 🐾 in the comments.
Built for International Dog Day 🐕 · DEV Weekend Challenge: Dog Days Edition






