Hacktoberfest Week 1 • Touch Grass Challenge
이번 주말에 저는 Miso를 제출했습니다. Miso는 실제 open-weight LLM을 로컬에서 구동하는 메모리 효율적인 데스크톱 동반자이며, 집중 시간 타이머가 0이 되면 사용자에게 문자 그대로 밖에 나가서 '터치 그라스(touch grass)'하라고 말해줍니다.
Miso — 터치 그라스 데스크톱 컴패니언
🤖 핵심적으로 오픈소스 AI로 제작되었습니다.
Miso란 무엇인가?
클라우드 없음. 로컬 최적화. 메모리 효율적. 안전함.
Miso는 화면 구석에 자리 잡는 귀여운 인터랙티브 데스크톱 펫입니다. 이는 사용자에게 반하는 것이 아니라, 함께 작동합니다. 이 펫은 사용자가 얼마나 오랫동안 집중했는지 추적하며, 타이머가 만료되면 화나게 (귀여운 방식으로) 되어 로컬에서 완전히 구동되는 open-weight 언어 모델을 사용하여 사용자에게 밖에 나가서 '터치 그라스'하라고 문자 그대로 말해줍니다.
이는 **프로그레시브 데스크톱 위젯(Progressive Desktop Widget)**입니다. 완전한 오프라인, 오픈 소스, 로컬 전용이며, 저사양 하드웨어(i7-6600U / 8GB RAM)에 맞춰 특별히 설계되었습니다. 클라우드 API는 전혀 사용하지 않습니다. 구독도 없습니다. 컴퓨터에서 나가는 데이터도 없습니다.
여기서 오픈 소스 AI가 중요한 이유
이 프로젝트는 오래되고 사양이 낮은 하드웨어(예: i7-6600U, 8GB RAM)를 가진 사람들을 위해 특별히 제작되었습니다. 값비싼 클라우드 API에 의존하기보다는…
GitHub에서 보기
기능
Miso는 사용자가 얼마나 오랫동안 집중했는지 추적하는 귀여운 인터랙티브 데스크톱 펫(Pikachu 스타일)입니다. 타이머가 만료되면, 이 펫은 귀여운 방식으로 화를 내며 로컬 LLM(SmolLM2 / Qwen2.5)을 사용하여 TTS를 통해 독특한 꾸짖음을 생성합니다. 클라우드 API는 전혀 사용하지 않습니다. 구독도 없습니다. 장치에서 나가는 데이터도 없습니다.
기능:
- 호버 인터랙션: 춤추기와 감정 표현
- 위젯 드래그하여 위치 지정 가능
- 유휴 시간 추적: 실제로 자리를 비우면 진정됨
- 범용 커스터마이징 (
MISO_CHARACTER=my_pet)
- 캐릭터 허브: GIF를 추가하고
config.json을 수정하여 자신만의 캐릭터 제작 가능
이번 주 실제 작업 내용 (Hacktoberfest 수정 사항)
제가 제출한 PR(Pull Request)에는 다음 내용들이 포함되어 있습니다:
- 사용되지 않는 파라미터(Deprecated param) 수정
- 다운로드 스크립트 수리
- 메모리 효율적인 로컬 AI 설정
- 메모리 파일 추가 (로컬/보안 추적)
.gitignore, 문서, 테스트, TTS 폴백(fallback), 설치 오류 정리
- 사용자 가이드 + 로컬/보안/메모리 효율성 강조
- Qt6 / MSVC 런타임 요구 사항 문서화 + Linux/Mac 대안 제공
스택 (Stack)
PyQt6 (Qt6 런타임)을 사용한 Python 3.10 이상
- CPU에서 오픈 웨이트(open-weight)
.gguf 추론을 위한 transformers + llama-cpp-python
- 오프라인 TTS를 위한
pyttsx3
- 유휴 감지(idle detection)를 위한
pynput
- 저사양 하드웨어(
i7-6600U / 8GB RAM)에 최적화됨
여기서 오픈 소스 AI가 중요한 이유
클라우드 기반 버전은 이 과제(challenge)를 통과할 수 없습니다. 인터넷 연결이 필요하고, 화면 사용 시간 데이터를 서버로 전송하며, API 호출당 비용이 발생하고, 오래된 하드웨어에서는 실행되지 않기 때문입니다. Miso는 강력하고, 사적이며, 감사 가능한 AI 컴패니언을 완전히 오프라인으로 구동할 수 있음을 증명합니다. 또한 호환되는 모든 .gguf 모델로 두뇌(brain)를 교체할 수도 있습니다.
빠른 시작 (Quick start)
ab git clone https://github.com/CodewithTanzeel/touch-grasschallenge-miso.git
...