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
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
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 ES import β 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-click |
Controls
| Action | How |
|---|---|
| Feed | Drag & drop file or emoji |
| Feed | Paste text/emoji |
| Pet | Click the puppy |
| Wave | Double-click |
| Throw treat | Press F
|
| 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



















