cli-pet
v1.0.0
Published
๐พ A GitHub-powered virtual pet that lives in your terminal. Feed it commits, keep it healthy with green builds!
Maintainers
Readme
๐พ cli-pet โ A GitHub-Powered Virtual Pet for Your Terminal
A Tamagotchi-style virtual pet that lives in your terminal and reacts to your real GitHub activity. Feed it commits, keep it healthy with green builds, make it happy with merged PRs, and energize it with coding streaks!
โจ Features
- ๐ฑ๐ถ๐๐ 4 adorable pet species โ Cat, Dog, Dragon, and Octocat
- ๐ GitHub-powered stats โ Your real coding activity drives your pet's health
- ๐ฎ Interactive mini-games โ Play with your pet in the terminal
- ๐ง Smart coding tips โ Your pet gives personalized advice based on your habits
- ๐จ Beautiful ASCII art โ Expressive pet states with color-coded mood indicators
- ๐พ Persistent state โ Your pet remembers you between sessions
๐ Quick Start
Prerequisites
- Node.js 18+
- GitHub CLI (
gh) authenticated, or aGITHUB_TOKENenvironment variable
Install
# Clone the repository
git clone https://github.com/YOUR_USERNAME/cli-pet.git
cd cli-pet
# Install dependencies & build
npm install && npm run build
# Link globally (optional)
npm linkUsage
# Adopt your first pet! ๐
cli-pet adopt
# Check on your pet ๐
cli-pet status
# Feed your pet with GitHub activity ๐
cli-pet feed
# Play a mini-game ๐ฎ
cli-pet play
# View detailed GitHub stats ๐
cli-pet stats
# Get coding tips from your pet ๐ง
cli-pet tips๐ How It Works
Your pet has 4 core stats, each driven by your real GitHub activity:
| Stat | Emoji | Driven By | Effect | |------|-------|-----------|--------| | Hunger | ๐ | Your commits | More commits = well-fed pet | | Health | โค๏ธ | CI/CD status | Green builds = healthy pet | | Happiness | ๐ | Merged PRs & reviews | Collaboration = happy pet | | Energy | โก | Coding streaks | Consistent activity = energized pet |
Stats decay over time โ if you don't code, your pet gets hungry and sad! Run cli-pet feed regularly to keep your pet happy.
Pet Moods
Your pet's mood changes based on its overall stats:
- ๐ Ecstatic โ All stats above 85%
- ๐ Happy โ Balanced, healthy stats
- ๐ข Sad โ Low happiness or declining stats
- ๐ Hungry โ Haven't committed in a while
- ๐ค Sick โ CI builds are failing
- ๐ด Sleeping โ Low energy, needs activity
- ๐ Fainted โ Critical stats! Feed immediately!
Leveling Up
Your pet earns XP from your GitHub activity:
- Each commit = 5 XP
- Each merged PR = 20 XP
- Each code review = 10 XP
- Each streak day = 3 XP
Every 100 XP = 1 level up! ๐
๐๏ธ Architecture
src/
โโโ index.ts # CLI entry point (Commander.js)
โโโ commands/
โ โโโ adopt.ts # Interactive pet adoption
โ โโโ status.ts # Pet status display
โ โโโ feed.ts # GitHub activity โ pet feeding
โ โโโ play.ts # Mini-game
โ โโโ stats.ts # Detailed GitHub stats
โ โโโ tips.ts # AI-powered coding tips
โโโ pet/
โ โโโ engine.ts # State machine & stat calculations
โ โโโ types.ts # TypeScript interfaces
โ โโโ persistence.ts # Save/load pet state
โโโ github/
โ โโโ activity.ts # GitHub API integration
โ โโโ analyzer.ts # Activity โ stat mapping
โโโ art/
โ โโโ ascii.ts # ASCII art for all species & moods
โ โโโ animations.ts # Terminal animations
โ โโโ colors.ts # Color theming
โโโ utils/
โโโ config.ts # Config management
โโโ display.ts # Terminal rendering๐ ๏ธ Tech Stack
- TypeScript โ Type-safe codebase
- Commander.js โ CLI argument parsing
- Octokit โ GitHub API client
- Chalk โ Terminal colors
- Boxen โ Terminal boxes
- Figlet โ ASCII text art
- Ora โ Loading spinners
- Conf โ Persistent configuration
๐ค Built with GitHub Copilot CLI
This entire project was built using GitHub Copilot CLI as my AI-powered coding companion. Copilot CLI helped with:
- ๐๏ธ Architecture design โ Planning the project structure and module boundaries
- ๐ป Code generation โ Writing TypeScript code across all modules
- ๐ Debugging โ Identifying and fixing issues in real-time
- ๐ Code exploration โ Understanding GitHub API responses and library interfaces
- ๐ Documentation โ Generating this README and inline documentation
๐ License
MIT ยฉ 2026
Made with ๐ and GitHub Copilot CLI
