"Feed it with your code... or watch it perish."
A haunted desktop virtual pet that feeds on your Git activity. Built for the Kiroween Hackathon 2025 in the Resurrection category โ bringing the beloved Tamagotchi back from the dead with modern tech.
30-second GIF showing pet evolution and weather integration
๐ฌ Watch Full Demo on YouTube
Complete 3-minute video showcasing all features
Resurrecting Obsolete Technology:
- Original Tech: Tamagotchi (1996) - simple LCD pets with manual buttons
- Modern Reimagining: AI-powered desktop pet with real-world data integration
The Transformation:
| Original (1996) | Necro-Pet (2025) |
|---|---|
| Manual button presses | Git commit detection |
| Random number generators | LLM-driven narratives |
| Static pixel art | Dynamic weather-reactive environments |
| Isolated gameplay | Real-world data integration |
| Single device | Cross-project persistence |
- Gamified Productivity: Visual feedback encourages frequent commits
- Burnout Prevention: Health decay warns against overwork
- Cross-Project Engagement: Pet state persists across different coding projects
- Team Collaboration: Shared pet creates team coding challenges
Necro-Pet is a desktop virtual pet that gamifies your coding workflow:
- Save files โ Feed the beast with life essence
- Stop coding โ Watch your pet's health decay
- Neglect it too long โ It dies and becomes a ghost ๐ป
The pet evolves through stages: Egg โ Larva โ Beast โ Ghost (death)
- ๐ฎ 8-bit pixel art aesthetic with scanline effects
- ๐ฆ๏ธ Real-time weather integration via Open-Meteo MCP
- ๐ Activity log showing file changes as "spirit disturbances"
- โก File watcher that detects saves in your project
- ๐จ Windows 95 Haunted House visual theme
| Layer | Technology |
|---|---|
| Desktop | Electron 39 |
| UI | React 19 + TypeScript |
| Styling | Tailwind CSS (pixel-art config) |
| State | Zustand |
| Build | Vite |
| Weather | MCP Server (Open-Meteo API) |
# Clone the crypt
git clone https://github.com/ManishModak/necro-pet.git
cd necro-pet
# Summon the dependencies
npm install
# Resurrect the pet
npm run devnpm testnecro-pet/
โโโ .kiro/ # Kiro AI configuration
โ โโโ hooks/ # Agent hooks (Crypt Keeper's Chronicle)
โ โโโ settings/ # MCP server config
โ โโโ specs/ # Feature specifications
โ โโโ steering/ # AI steering documents
โโโ mcp-servers/ # Custom MCP server for weather
โโโ src/
โ โโโ main/ # Electron main process
โ โโโ preload/ # Context bridge
โ โโโ renderer/ # React UI
โ โโโ features/
โ โโโ pet/ # Pet display & state
โ โโโ weather/ # Weather overlay
โ โโโ activity-log/ # File change log
โโโ package.json
Necro-Pet demonstrates all five Kiro capabilities working together:
How we used it:
- Created three comprehensive specs in
.kiro/specs/necro-pet-core-skeleton: Defined Electron+React architecture with file watching requirementspet-state-evolution: Specified health/XP mechanics with mathematical formulasworld-context-weather-time: Detailed weather integration requirements
Impact:
- Separated "what" (requirements) from "how" (implementation)
- Generated robust TypeScript interfaces and Zustand stores directly from specs
- Ensured game mechanics were mathematically sound before coding
How we used it:
- Crypt Keeper's Chronicle Hook (
crypt-keeper-log.kiro.hook)- Runs on schedule (every 6 hours) via Kiro agent
- Executes
git log --since="6 hours ago"to analyze recent commits - Generates medieval fantasy narratives in
CRYPT_LOG.md
Example Output:
๐ *The necromancer hath summoned forth 17 new souls from the void!
A mighty Electron skeleton now stands, its bones forged from TypeScript.
The beast feasts upon the fresh code, growing stronger with each commit...*
How we used it:
.kiro/steering/vibe.md: Enforced "Digital Necromancy" theme rules- All UI text must use medieval fantasy language
- Color palette limited to 8-bit green/black/red
- Error messages framed as "curses" or "spirit disturbances"
.kiro/steering/pet_logic.md: Balanced game mechanics- Health decay formula:
health -= linear decay over 48h - Feed formula:
health += 20 per commit
- Health decay formula:
How we used it:
- Custom Open-Meteo MCP Server (
mcp-servers/open-meteo-server.py)- Fetches real-time weather data via Open-Meteo API
- Exposes weather conditions to Kiro context
- Dev Workflow: Kiro inspected the live API data via MCP to generate TypeScript interfaces instantlyโno documentation reading required.
- Pet environment reacts to actual weather:
- Rain โ Pixel rain animation
- Snow โ White overlay
- Storm โ Lightning flashes
Technical Implementation:
# MCP Server extracts weather data
def get_weather_context():
data = open_meteo_api.fetch()
return {
"current_weather": data["current"]["weather_code"],
"temperature": data["current"]["temperature_2m"],
"is_day": data["current"]["is_day"]
}How we used it:
- Generated entire Tailwind CSS theme from vibe description:
- Input: "Haunted Windows 95 with 8-bit green CRT monitor glow"
- Output: Complete
tailwind.config.jswith pixel-art plugin
- Created pixel-art components via vibe prompts:
- "Generate React component: 32x32 pixel ghost with scanline effect"
- Result:
src/renderer/features/pet/GhostDisplay.tsx
Necro-Pet reacts to real-world weather conditions:
| Weather Type | Day Visual | Night Visual |
|---|---|---|
| Clear | ![]() |
![]() |
| Rain | ![]() |
![]() |
| Snow | ![]() |
![]() |
| Storm | ![]() |
![]() |
MIT License - See LICENSE
๐ฆ May your commits be plentiful and your pet never perish... ๐ฆ ๐ Resurrected for Kiroween 2025 - The Undead Coding Companion ๐












