À propos du projet
pixelpets est un compagnon de bureau Electron pour Windows 10/11, avec un port bêta pour macOS 12+ (code terminé et signé ad-hoc, mais selon le README, pas encore testé sur du matériel Apple réel). Linux n'est explicitement pas supporté : la superposition et les hooks d'entrée globaux sont réservés à Windows/macOS. Vous pouvez installer un installateur Windows préconstruit ou lancer le projet depuis les sources avec git, Node 20 ou plus récent, et `npm install` / `npm start` ; une démo navigateur exécute le même moteur de rendu sans installation. Les builds ne sont pas signés, donc Windows SmartScreen et macOS Gatekeeper afficheront un avertissement au premier lancement, et l'installation s'enregistre pour démarrer au login (`npm run autostart:off` désactive cela).
Ce qu'il fait
L'animal vit dans une superposition transparente et cliquable au-dessus de toutes les autres fenêtres ; seul l'animal lui-même est cliquable. Il réagit aux caresses, au glissement, à la frappe, au défilement et aux mouvements du curseur, avec des réponses régies par un modèle d'humeur interne allant du calme aux « zoomies ». Le glisser-déposer l'étire et le point de relâchement devient sa nouvelle maison sur la ligne inférieure. Le clic droit permet de changer de pelage ; un tapotement produit des yeux heureux, des cœurs et un gazouillis ; poser le curseur sur sa tête ou son corps déclenche des réactions de caresses distinctes. Taper n'importe où déclenche un pétrissage des pattes avant (une frappe rapide le fait surchauffer), et le défilement le fait bondir sur une feuille ou grimper à une corde de laine sur les pelages incluant des arts picturaux. Une icône de plateau propose les paramètres, le démarrage d'une pause, le choix du pelage, la zone de jeu, les bascules son/chasse/humeur et l'option quitter.
Visuels et audio
L'application propose 14 pelages de chat plus un Labrador noir, tous recolorés au moment du dessin à partir d'un seul sprite codé par rôle. Les animations, membres inclus, sont composées dans ce même sprite, ainsi chaque pelage et chaque espèce bénéficient de toutes les poses dans leurs propres couleurs sans fichiers images supplémentaires. Les pelages peuvent être conçus, importés et exportés par les utilisateurs. Il n'y a aucun fichier audio : le miaulement, l'aboiement, le ronronnement, le halètement et une boucle musicale lo-fi improvisée sont synthétisés en direct avec Web Audio.
Fonctionnalités de productivité
Au-delà des comportements de l'animal, il propose des minuteurs de pause et Pomodoro, des rappels répétitifs, une note épinglée, des alertes de mails non lus IMAP et des rappels de calendrier. Focus Guard lit un état « occupé » à partir d'un événement de calendrier en direct, des Heures Silencieuses ou du mode Travail, gare l'animal et retient les messages au lieu d'interrompre un partage d'écran ; les messages retenus sont résumés en une ligne une fois que vous êtes libre. Les paramètres sont conservés dans `settings.json` dans le dossier app-data de l'utilisateur, et les installations antérieures au renommage du projet sont migrées. Les minuteurs et rappels ne fonctionnent que lorsque l'application est lancée et utilisent l'horloge locale.
Intégration d'agent IA
pixelpets peut réagir à l'état de travail d'un agent de codage : il réfléchit, patte au menton, pendant que l'agent pense, tapote en rythme avec un spinner pendant qu'il travaille, tressaille en cas d'erreur, et saute et miaule quand l'agent termine. N'importe quel outil peut lui signaler un état en exécutant `agent-hook.js` avec un état tel que thinking, editing, error, done ou idle, ce qui écrit un petit fichier de statut que l'animal surveille. Des configurations prêtes à l'emploi sont fournies pour Claude Code, Codex CLI, Cursor, Antigravity et Kiro, et l'assistant est compatible avec les hooks : il vide le stdin et répond `{"continue": true}` pour ne pas bloquer ou altérer l'agent.
Confidentialité
Parce qu'il réagit à la frappe et au défilement, l'application écoute les événements d'entrée globaux. Le README précise que l'entrée est utilisée uniquement pour déclencher des animations instantanément, sur votre machine : les frappes de touches ne sont jamais journalisées, stockées ou transmises. Il n'y a pas de télémétrie, pas de mise à jour automatique, et aucune connexion réseau, sauf si vous configurez les alertes optionnelles de mail ou de calendrier, qui communiquent uniquement avec les serveurs que vous spécifiez via des processus worker isolés. Les mots de passe d'application IMAP sont stockés chiffrés au repos via `safeStorage` d'Electron plutôt que dans `settings.json`.
Développement et documentation
La documentation couvre les fonctionnalités, les pelages personnalisés, l'architecture, un guide de développement, un pack de frames pour peindre et importer des poses à la main, les hooks d'agent et un petit outil terminal pour iPad. `npm test` exécute la suite sans Electron ni GPU, `npm run lint` correspond à ce que la CI exécute avec un contrôle de démarrage, `npm run poses:cat` génère des planches de contact de chaque activité pour chaque pelage pour l'assurance qualité visuelle, et `npm run demo:all` régénère les médias du README. Comme la superposition est composée par GPU, les captures d'écran ordinaires ne peuvent pas la capturer, le examen visuel repose donc sur ces planches de contact.
Le projet est sous licence MIT ; l'art, le code et le son sont décrits comme originaux, et il cite deux animaux de compagnie de bureau open-source comme inspiration tout en précisant qu'aucun actif, sprite, audio ou branding tiers n'est utilisé. Les contributions sont bienvenues, avec un guide de contribution, une politique de signalement de sécurité privée, des discussions pour les pelages personnalisés et les configurations de bureau, et une checklist bêta destinée aux propriétaires de Mac comme contribution actuelle la plus utile.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.