DEV Community

Cover image for PawBot - An AI Desktop Puppy That Eats Your Files 🐾
Varshith V Hegde
Varshith V Hegde Subscriber

Posted on

PawBot - An AI Desktop Puppy That Eats Your Files 🐾

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.

PawBot idle sprite
PawBot eating
PawBot barking


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
💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด 💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด

Or load the Chrome extension: clone the repo → ./scripts/sync-extension.sh → Load unpacked → select the extension/ folder.


Code

GitHub logo 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.

PawBot pixel puppy

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
💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด 💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด

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!)

Walk animation frame
Run animation frame
Sleep animation frame
Happy mood

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 (20)

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
tom_jones_230c4659491adcd profile image
Tom Jones •

The eat interaction is the part I would protect. It works because a bark from a filename is obviously a joke, and nobody reads "Mmm, crunchy homework!" as a claim about what was in the PDF.

We hit the failure mode that sits one step past that. Our own pipeline summarised dev.to threads, and its prompt was assembled from a title, a URL and the comment thread. The article body was never in it, for the entire life of the file. On long posts with active threads the summaries looked fine. On an 85 word promo post with no comments the prompt collapsed to a bare title, and the model returned about 100 words of specific methodology that existed nowhere, naming metrics the article never mentioned. Nothing errored and nothing logged. We posted a public comment built on one before anyone checked.

The tell turned out to be arithmetic rather than judgement. The invented summaries were roughly as long as their sources or longer; the honest ones were under half. Nothing lived in between, so a word count caught what reading had not.

So the thing I would write down now, while the design is fresh: be explicit about what actually reaches Gemini when the pup eats something. If it is the filename and the MIME type, the barks stay charming forever and the joke is safe. If someone later pipes in extracted text, the same code path starts making claims about contents, and it will do that just as confidently on the file it failed to parse.

Lovely build. The state machine diagram is doing a lot of work in that post.

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
anik_sikder_313 profile image
Anik Sikder •

What stood out to me isn't the Gemini integration it's the product thinking behind it. The puppy already has personality through animations, behaviors, moods, hunger, sleep cycles, and interactions. AI simply adds another layer of expression.

Too many projects start with "Where can I put AI?" This one starts with a fun product and uses AI where it actually adds value. That's usually the stronger design approach.

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
officialmailkr profile image
오피셜메일 •

파일을 ‘먹는’ 캐릭터 경험이 재미있지만, 실제 삭제 전에 격리함과 복구 시간을 두는 안전장치가 특히 중요해 보입니다. 장난스러운 인터랙션과 데이터 보호를 함께 설계한 점이 인상적입니다.

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
varshithvhegde profile image
Varshith V Hegde •

Thank You

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
technogamerz profile image
𝐓𝐡𝐞 𝐋𝐚𝐳𝐲 𝐆𝐢𝐫𝐥 •

Cute Dog 🐕❤️

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
varshithvhegde profile image
Varshith V Hegde • • Edited

Thanks

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
hoseinmdev profile image
Hosein Mahmoudi •

This is so cute! 🐾

Honestly, the most important thing every developer needs is a happy soul, and this definitely made my day. Amazing work!

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
varshithvhegde profile image
Varshith V Hegde •

trueeee
thanks

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
autonomous profile image
AutoNomouS •

I hope this won’t become crypto scam

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
varshithvhegde profile image
Varshith V Hegde •

No no it isn't. This whole project has nothing to do with crypto itself

💬 ชาวเน็ตแห่แชร์: varshithvhegde/pawbot an ai desktop puppy that eats your files a - สรุปดราม่าล่าสุด
 
sensatech profile image
Sensa 🙃 •

What 😂😂

Some comments may only be visible to logged-in visitors. Sign in to view all comments.