PawBot - An AI Desktop Puppy That Eats Your Files ๐Ÿพ Developer Varshithvhegde built PawBot, a Chrome extension and browser demo featuring a pixel-art golden retriever puppy powered by Google Gemini 2.0 Flash Lite. The desktop pet roams the screen, chases and eats dropped files or emoji, and generates mood-aware barks based on user interactions. Built with vanilla JavaScript and Canvas, it uses a Shadow DOM overlay and esbuild bundling to work as a Chrome content script. This is a submission for Weekend Challenge: Dog Days Edition 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 : Feed it a .pdf and it might say "Mmm, crunchy homework " Ignore it for 40 seconds and it curls up with sad puppy eyes. 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. 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 https://dev.to/challenge . ๐ŸŽฌ Watch on YouTube ยท ๐Ÿ“ DEV submission ยท ๐Ÿ”— | 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 https://github.com/Varshithvhegde/pawbot 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 | 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 | | 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 | | 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. 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 https://aistudio.google.com/apikey โ†’ paste in extension popup. Falls back to canned barks if no key is set. Thanks for reading If PawBot made you smile, leave a ๐Ÿพ in the comments. Built for International Dog Day ๐Ÿ• ยท DEV Weekend Challenge: Dog Days Edition https://dev.to/challenges/weekend-2026-08-13