
I built a pixel-art AI companion for Linux that lives on your desktop and grows a personality the longer you use it
Hey everyone! After months of weekend hacking I'm ready to share this side project.
What is Pip?
Pip is a tiny animated character who lives in the corner of your Linux desktop. She chats via Claude Code CLI — no separate API key needed, just your existing session. She dances when your music changes, reminds you to hydrate, plays games, and slowly develops a genuine personality over time.
The fun parts:
- Relationship system — 4 levels from "New Friend" to "Best Friend" (500+ interactions). Her tone and humour actually change at each milestone. At Best Friend she teases you and writes diary entries about your day.
- Music awareness — reads your MPRIS player via playerctl. Dances when a new track starts, fetches Claude-powered facts about the artist.
- Mini-games — right-click for AI Trivia Quiz, 20 Questions, or Rock-Paper-Scissors. She tracks your score and reacts with matching animations.
- Pomodoro — fires a "shout" bubble after 25 minutes. Hard to ignore.
- Daily content — word of the day, coding or creative challenge, time-aware greetings (she knows it's 3 AM).
- Memory — say "remember: X" to save a note. She'll bring it up later.
The technical parts:
- Python 3.9+ / PyQt6
- AI via
claude -psubprocess in a QThread — not the Anthropic API - MPRIS music via
playerctl, window tracking viaxdotool, idle detection viapynput - Priority bubble queue: LOW drops if busy, NORMAL queues, HIGH jumps to front
- Atomic personality.json writes, rotating log files, graceful SIGTERM handling
- 5-state canvas animation (Idle, Happy, Dancing, Thinking, Talking)
No API key needed. If you already use Claude Code, she just works.
Homepage: In the first comment
License: Polyform Noncommercial 1.0 (free for personal use)
Feedback are welcome