DEV Community

depa panjie purnama
depa panjie purnama Subscriber

Posted on

I Built a Tamagotchi That Judges Your GitHub Activity 🐾 (and it's brutally honest)

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

What I Built

cli-pet

Ok hear me out.

You know that guilt when you haven't pushed code in a few days? That nagging feeling in the back of your head? What if that feeling had a face... and it was a tiny ASCII octocat staring at you from your terminal, slowly starving to death?

Introducing cli-pet, a virtual pet that lives in your terminal and is entirely powered by your real GitHub activity.

Your commits? That's food. Your green CI builds? That keeps it healthy. Merged PRs? Pure serotonin for the little guy. Coding streaks? Energy drinks.

Stop coding for a few days and your pet literally withers away. Its stats decay in real-time. The ASCII art changes from a happy bouncing creature to a sad, hungry mess with (;.;) eyes that will haunt your dreams.

I didn't build a productivity tool. I built emotional manipulation as a service. And honestly? It works. I've never been more motivated to push commits.

The Pet Species

You can adopt one of 4 pets:

  • 🐱 Cat. Purrs when your CI is green
  • 🐶 Dog. Fetches your GitHub notifications (get it?)
  • 🐉 Dragon. Breathes fire on failing tests
  • 🐙 Octocat. The ultimate GitHub companion (obviously)

How The Stats Work

This is where it gets fun. Your pet has 4 stats, and each one maps to real GitHub data:

Stat What feeds it What happens when it drops
🍕 Hunger Your commits Pet starts begging you to write code
❤️ Health CI/CD success rate Failing pipelines = sick pet
😊 Happiness Merged PRs & code reviews Your pet thrives on collaboration
Energy Coding streak days Consistency is key

Stats decay over time. So if you ghost your repo for a weekend, expect to come back to a very dramatic ASCII creature.

Commands

cli-pet adopt     # 🏠 Choose your pet and name it
cli-pet status    # 👀 Check on your little buddy
cli-pet feed      # 🍕 Fetch GitHub data and feed your pet
cli-pet play      # 🎮 Play a number guessing game together
cli-pet stats     # 📊 See the full GitHub activity breakdown
cli-pet tips      # 🧠 Get personalized coding advice from your pet
Enter fullscreen mode Exit fullscreen mode

The tips command is my favorite, your pet actually analyzes your coding patterns and gives you relevant advice. Haven't reviewed any PRs lately? Your pet will call you out. CI is flaky? It'll suggest pre-commit hooks. 7-day streak? It'll remind you that rest is productive too.

The Best Part: It Levels Up

Every commit earns your pet XP. Every merged PR? Even more. Your pet levels up as you code, turning it into this weird RPG where the game mechanic is... doing your actual job. Peak gamification.

Demo

🔗 GitHub Repository: https://github.com/depapp/cli-pet

Adopting a pet

Adopting a pet

Adopted a pet

Adopted a pet

See the full GitHub activity breakdown

Checking pet status

Feeding with GitHub activity

Feeding with GitHub activity

Play a number guessing game together

Play a number guessing game together

Get personalized coding advice from your pet

Get personalized coding advice from your pet

Try it yourself

npx cli-pet
Enter fullscreen mode Exit fullscreen mode

Requires Node.js 18+ and either gh auth login or a GITHUB_TOKEN env var.

My Experience with GitHub Copilot CLI

github copilot cli

Real talk: this project would've taken me way longer without Copilot CLI. Here's what actually happened during development.

Planning the architecture

I started with a rough idea, "virtual pet but GitHub", and used Copilot CLI to think through the architecture. I described what I wanted and it helped me break it down into modules: the pet state machine, the GitHub activity fetcher, the ASCII art renderer, the CLI commands. Having that structure before writing a single line of code was huge.

The state machine was the tricky part

The pet engine has a lot of moving pieces, stat decay over time, mood calculations based on multiple stat thresholds, activity impact mapping. I kept going back and forth with Copilot CLI on the decay math. "How fast should hunger decrease per hour?" "What if the pet has been neglected for 3 days?" It helped me model the equations and edge cases I would've probably gotten wrong the first few tries.

GitHub API integration

This is where Copilot CLI really flexed. It already understands the GitHub API deeply (makes sense given, you know, GitHub). When I needed to fetch push events, calculate CI success rates across repos, and compute coding streaks from activity dates, Copilot CLI guided me through the Octokit API like it had the docs memorized. Which it probably did.

The streak calculation was fun: I needed to walk backwards through activity dates and detect consecutive days. The kind of date math that makes my brain hurt but Copilot CLI handled with ease.

ASCII art is harder than you think

Creating expressive ASCII art for 4 pet species × 8 moods = 32 art variants. Copilot CLI helped generate the base art and I tweaked them to make sure each mood felt distinct. The sad cat with (;.;) eyes? Chef's kiss.

Debugging in real-time

My favorite part was the debugging loop. ESM module issues with conf and chalk? Copilot CLI immediately knew to add "type": "module" and switch to node16 module resolution. TypeScript namespace errors with Chalk's type system? Fixed in seconds. This iterative build-check-fix cycle felt incredibly fast.

What surprised me

I didn't expect Copilot CLI to be this good at understanding context. By the middle of the project, it knew my codebase structure, understood how modules connected, and could make changes across files without me having to re-explain the architecture. It felt less like a tool and more like a pair programmer who actually pays attention.

The bottom line

Copilot CLI turned this from a "maybe I'll finish by the deadline" project into a "wait, it's done already?" project. The agentic workflow where it reads files, runs commands, checks errors, and fixes things, made the whole process feel like pair programming at 3x speed. I just had to steer. It built.


If you've read this far and you haven't adopted a terminal pet yet, what are you doing? Go run cli-pet adopt and give your coding habits the accountability partner they deserve. 🐾

And if your pet dies, that's on you. Don't look at me. I just built the thing.

Top comments (0)