PawBot - An AI Desktop Puppy That Eats Your Files ๐Ÿพ
DEV Community

PawBot - An AI Desktop Puppy That Eats Your Files ๐Ÿพ

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 Top comments (0)

Read on DEV Community ↗ ← Back to News

Comments

No comments yet. Start the discussion.