프로젝트 소개

pixelpets는 Windows 10/11용 Electron 데스크톱 컴패니언이며, macOS 12+ 베타 포트(코드 완성 및 임시 서명 완료, 단 README에 따르면 실제 Apple 하드웨어에서 아직 실행되지 않음)를 제공합니다. Linux는 오버레이 및 글로벌 입력 훅이 Windows/macOS 전용이므로 명시적으로 지원되지 않습니다. 사전 빌드된 Windows 설치 프로그램을 설치하거나 git, Node 20 이상, `npm install` / `npm start`를 통해 소스에서 실행할 수 있으며, 브라우저 데모를 통해 설치 없이 동일한 렌더러를 실행해 볼 수 있습니다. 빌드는 서명되지 않았으므로 첫 실행 시 Windows SmartScreen 및 macOS Gatekeeper 경고가 표시되며, 설치 시 로그인 시 자동 시작되도록 등록됩니다(`npm run autostart:off`로 비활성화 가능). 주요 기능 펫은 모든 창 위에 떠 있는 투명하고 클릭 가능한 오버레이에 상주하며, 펫 본체만 클릭할 수 있습니다. 쓰다듬기, 드래그, 타이핑, 스크롤 및 커서 움직임에 반응하며, 반응은 '차분함'부터 '우다다(zoomies)'까지 이어지는 내부 기분 모델에 따라 결정됩니다. 드래그하면 몸이 늘어나며, 놓은 지점이 하단 라인의 새로운 집이 됩니다. 우클릭으로 코트를 변경할 수 있고, 탭하면 행복한 표정과 하트, 울음소리가 나며, 머리나 몸에 커서를 올리면 서로 다른 쓰다듬기 반응을 보입니다. 어디서든 타이핑하면 앞발로 꾹꾹이를 하며(빠르게 타이핑하면 과열됨), 페인트 아트가 포함된 코트에서는 스크롤 시 잎사귀를 쳐내거나 털실 밧줄을 타는 동작을 합니다. 트레이 아이콘을 통해 설정, 휴식 시작, 코트 선택, 놀이 영역, 사운드/사냥/기분 토글 및 종료 기능을 제공합니다. 시각 및 오디오 앱은 14종의 고양이 코트와 블랙 랩라도르 1종을 제공하며, 모두 단일 역할 기반 스프라이트에서 그리기 시점에 색상이 재지정됩니다. 사지를 포함한 애니메이션이 동일한 스프라이트로 구성되어 있어, 추가 이미지 파일 없이 모든 코트와 종이 각자의 색상으로 모든 포즈를 구현합니다. 사용자는 코트를 직접 디자인하거나 가져오고 내보낼 수 있습니다. 오디오 파일은 전혀 없으며, 야옹, 멍멍, 가르릉, 헐떡임 소리와 즉흥적인 lo-fi 음악 루프는 Web Audio를 통해 실시간으로 합성됩니다. 생산성 기능 펫의 행동 외에도 휴식 및 Pomodoro 타이머, 반복 알림, 고정 메모, IMAP 읽지 않은 메일 알림 및 캘린더 알림 기능을 제공합니다. Focus Guard는 라이브 캘린더 이벤트, Quiet Hours 또는 Work 모드에서 '바쁨' 상태를 읽어 펫을 대기시키고 메시지를 보관하여 화면 공유 중 방해를 방지하며, 여유 시간이 생기면 보관된 메시지를 한 줄로 요약해 보여줍니다. 설정은 사용자 앱 데이터 폴더의 `settings.json`에 저장되며, 프로젝트 이름 변경 전의 설치 버전은 마이그레이션됩니다. 타이머와 알림은 앱이 실행 중일 때만 작동하며 로컬 시계를 사용합니다. AI 에이전트 통합 pixelpets는 코딩 에이전트의 작업 상태에 반응할 수 있습니다. 에이전트가 생각하는 동안에는 앞발을 턱에 대고 고민하고, 작업 중에는 스피너와 함께 탭을 하며, 오류 발생 시 움찔하고, 완료되면 점프하며 야옹거립니다. 어떤 도구든 `agent-hook.js`를 실행하여 thinking, editing, error, done, idle과 같은 상태를 전달하면 펫이 이를 감시하는 작은 상태 파일에 기록하여 반응합니다. Claude Code, Codex CLI, Cursor, Antigravity, Kiro를 위한 기성 설정이 제공되며, 헬퍼는 stdin을 비우고 `{"continue": true}`를 응답하여 에이전트를 차단하거나 변경하지 않는 훅 안전(hook-safe) 방식으로 작동합니다. 개인정보 보호 타이핑과 스크롤에 반응하기 위해 앱은 글로벌 입력 이벤트를 수신합니다. README에 따르면 입력 데이터는 오직 사용자 기기 내에서 즉각적인 애니메이션을 트리거하는 용도로만 사용되며, 키 입력은 기록, 저장 또는 전송되지 않습니다. 텔레메트리, 자동 업데이트가 없으며, 사용자가 직접 설정한 메일 또는 캘린더 알림(격리된 워커 프로세스를 통해 지정된 서버와만 통신)을 제외하고는 네트워크 연결이 전혀 없습니다. IMAP 앱 비밀번호는 `settings.json`이 아닌 Electron `safeStorage`를 사용하여 암호화되어 저장됩니다. 개발 및 문서화 문서에는 기능, 커스텀 코트, 아키텍처, 개발 가이드, 포즈 수작업 페인팅 및 임포트를 위한 프레임 팩, 에이전트 훅, 소형 iPad 터미널 도구 등이 포함되어 있습니다. `npm test`는 Electron이나 GPU 없이 테스트 스위트를 실행하며, `npm run lint`는 CI에서 부팅 체크와 함께 실행되는 린트를 수행합니다. `npm run poses:cat`은 시각적 QA를 위해 모든 코트의 모든 활동 컨택트 시트를 생성하고, `npm run demo:all`은 README 미디어를 재생성합니다. 오버레이는 GPU 합성 방식이므로 일반적인 스크린샷으로는 캡처할 수 없으며, 시각적 검토는 해당 컨택트 시트에 의존합니다. 본 프로젝트는 MIT 라이선스를 따릅니다. 아트, 코드, 사운드는 독창적인 것으로 설명되며, 두 개의 오픈 소스 데스크톱 펫에서 영감을 받았으나 제3자 에셋, 스프라이트, 오디오 또는 브랜딩은 사용되지 않았음을 명시합니다. 기여는 언제나 환영하며, 기여 가이드, 비공개 보안 보고 정책, 커스텀 코트 및 데스크 셋업을 위한 토론 공간이 마련되어 있습니다. 현재 Mac 소유자들의 베타 체크리스트 참여가 가장 유용한 기여로 권장됩니다.