mille-okws/pestinha
Productivity & UtilitiesA desktop virtual pet for Windows, macOS and Linux that reacts to your cursor, windows and idle time with a local spiking neural network.
Overview
Pestinha is a desktop pet that lives on top of your screen. Two characters ship today: Bryan, a pair of eyes that falls, bounces, lands on window title bars, plays with a tennis ball and works on a laptop while you code; and Jorge, a satire of finance and AI "coaches" who hands out mentoring flyers. Each pet is defined by a pets/<pet>.json identity file plus a folder of phrases, posters and memes, and both share the same neural architecture but keep separate memories.
What the pet feels and does is driven by a 470-neuron spiking neural network (leaky integrate-and-fire), fed by what happens on the computer and by how you interact with it. Some behaviour is hand-written rules rather than learned; the decision documentation explains the split. Learned state — affection, conditioning, which pranks worked, escapes from punishment — is stored locally and changes the pet over time.
Quick start
Requirements: Windows 10/11, macOS (Quartz/pyobjc) or Linux with X11, plus Python 3.11 or newer. On Linux, install xdotool, wmctrl and xprintidle so the pet can see windows and idle time. Expect roughly 70 MB of RAM while running.
pip install -r requirements.txt
python main.py
On first launch a walkthrough explains what the pet can and cannot see, then opens the permissions screen. To skip that screen and reuse saved options:
python main.py --direto
Interact with a quick click (poke), by sweeping the mouse across it (petting), by holding and dragging or releasing quickly (carry or throw), with the mouse wheel (spin), or through the right-click menu for petting, ball, sleep, pranks, work, laptop, punishment corner, panels, settings, hide and quit. Ctrl + Alt + Shift + B shuts everything down immediately until you re-enable it in Settings.
Data and permissions
The pet runs entirely on your machine and sends nothing to the internet. It reads the name of the foreground program, time since the last keyboard/mouse input, cursor position and window geometry — never window content or titles. Recorded data lives in memory/ and can be deleted from the settings screen; the privacy notes cover the details.
Customisation
Bryan's memes, notes and posters are editable in pets/bryan/ while the pet is running, and the shared ball, laptop and personal photos live in assets/comum/. Personality is seeded from pets/<pet>.json, and behaviour numbers live in pestinha/ajustes.py, validated at startup. Each pet's code path and file layout are described in the package README, with architecture and network details under docs.
Known limitations
The macOS and Linux window/keyboard reading code has only been tested at the text level, not on real machines. On macOS, the panic shortcut needs Accessibility permission. On Wayland, the pet cannot see windows or idle time and the global shortcut does not work. Display scaling above 100% and multi-monitor setups are lightly tested, borderless-window games may not be detected as fullscreen, and the prebuilt executable is unsigned, so Windows may warn on first launch.
License
The code is GPL-3.0-or-later: use, study, modify and redistribute freely, but distributed versions must remain open under the same license. Images and text under assets/ are not covered by that license.
HotRepo's take
The repository appears in HotRepo's new-projects list on 2026-11-03 with 138 stars and 26 stars gained during the tracked window, alongside 40 forks. There is no all-language daily rank recorded and no Hacker News discussion, so the available signal is a short new-project snapshot rather than a long trend. What stands out technically is the combination of an explicit 470-neuron spiking network, a hand-written rule layer, separate per-pet memory and a battery of desktop-environment integrations; the project itself is marked as in development, and its own limitations list flags the macOS and Linux window-reading paths as not yet tested on real hardware.
Written by AI from the project's README, updated . The project's own docs are the source of truth.