
Pong v0.0.1: 자리에 앉기 전 Claude 세션을 활성화 상태로 유지해 주는 트레이 와치독 (Tray Watchdog)
요약
Claude.ai 사용자를 위한 메뉴 바 전용 트레이 앱 'Pong v0.0.1'이 출시되었습니다. 실시간 사용량 대시보드와 세션 워밍업 기능을 통해 사용량 제한 확인 및 세션 만료로 인한 작업 흐름 중단을 방지합니다.
핵심 포인트
- 실시간 리셋 카운트다운을 통한 사용량 모니터링
- 예약된 세션 워밍업으로 로그인 및 세션 끊김 방지
- 합성 트랜잭션 방식의 상태 확인(Health check) 기능 제공
- 컨텍스트 스위칭을 최소화하는 트레이 아이콘 UI
요약 (TL;DR) — Pong v0.0.1이 방금 출시되었습니다. 이 앱은 하루 종일 Claude.ai 환경에서 작업하는 사람들을 위한 메뉴 바 전용 Tauri 앱입니다. 실시간 리셋 카운트다운이 포함된 라이브 사용량 대시보드, 로그인 화면을 마주하지 않도록 예약된 세션 워밍업 (Session warm-up), 그리고 단순한 핑 (Ping)이 아닌 실제 합성 트랜잭션 (Synthetic transaction) 방식의 상태 확인 (Health check) 기능을 제공합니다. 최신 릴리스에서 macOS, Windows, Linux용 설치 프로그램을 확인하세요.
하루에 한 번씩 발생하는 세 가지 작은 방해 요소
이 중 그 어떤 것도 장애 보고서(Incident report) 대상이 되지는 않습니다. 하지만 이들은 단순한 마찰(Friction)이며, 이러한 마찰은 쌓이기 마련입니다:
- "사용량 제한(Throttling)에 걸리기 직전인가?" — 에디터에서 사용량 페이지로 탭을 전환하여 숫자를 확인하고 다시 탭으로 돌아옵니다. 이런 생각이 들 때마다 최소 30초가 소요됩니다.
- 세션 창이 사용자의 시간이 아닌 자체적인 시계에 따라 리셋됩니다. Claude의 사용량 제한은 고정된 시간이 아니라 사용자의 첫 번째 메시지부터 시작되는 약 5시간의 이동 창 (Rolling window) 방식으로 작동합니다. 아침에 사용량을 빠르게 소진하면, 정작 계속 작업하고 싶은 오후 시간대의 창 후반부에 사용이 제한될 수 있습니다.
- 세션이 조용히 끊길 수 있습니다. 쿠키가 만료되거나 다른 곳에서 로그아웃되어, 작업 도중 프롬프트가 제대로 응답하지 않는 상황이 발생할 때 비로소 첫 징후를 알게 됩니다.
Pong은 이 세 가지 상황을 "멈춰서 확인하러 가는 것"이 아니라 "아이콘만 확인하면 되는 것"으로 바꿔주는 트레이 앱 (Tray app)입니다.

항상 눈에 보이는 사용량
세션 및 주간 사용량(consumption)은 리셋 카운트다운이 실시간으로 줄어드는 팝오버(popover)에 표시됩니다.
이는 브라우저 탭으로 컨텍스트 스위칭(context switch)을 하는 것이 아니라 트레이 아이콘을 슬쩍 보는 것뿐입니다. 이는 생각보다 훨씬 중요한데, 사용량을 수동으로 확인하는 데 드는 ‘비용’은 단순히 걸리는 10초가 아니라, 확인을 위해 중단하게 되는 사고의 흐름(train of thought)이기 때문입니다.
워밍업(warm-up) 타이밍 맞추기 (실제로 시간을 아껴주는 부분)
이것이 Pong을 단순한 대시보드 이상으로 만드는 비결입니다. 예약된 워밍업(scheduled warm-up)은 직접 타이핑하는 것과 동일한 실제 메시지를 보내므로, 다른 메시지와 마찬가지로 사용량 창(usage window)을 엽니다. 어차피 Claude를 사용하지 않는 시간, 예를 들어 새벽 5시로 설정해 보세요:

- 새벽 5시 워밍업은 오전 10시까지 유지되는 창을 엽니다.
- 당신이 오전 8시에 자리에 앉으면, 이미 해당 창이 시작된 지 3시간이 지났으며, 리셋되기 전까지 2시간의 여유(headroom)가 있습니다.
- 오전 10시가 되면, 작업을 멈추고 기다려야 하는 창 대신, 작업 중간에 새로운(fresh) 5시간짜리 창으로 넘어갑니다.
아침 시간은 2시간의 작업 후 3시간 동안 카운트다운을 지켜보는 것이 아니라, 하나의 연속된 흐름으로 읽힙니다. 사용량을 더 많이 쓰는 것이 아니라, 시계가 언제 시작될지를 _선택_함으로써 작업 중간에 시계가 시작되지 않도록 하는 것입니다.
진정한 의미의 헬스 체크(health check)
대부분의 업타임 체크(uptime checks)는 curl -I 명령과 200 응답을 확인하는 수준입니다. 이는 서버가 응답했다는 것을 알려줄 뿐, 페이지가 제대로 렌더링(render)되는지, 세션이 여전히 유효한지, 혹은 폼(form)을 제출했을 때 실제로 작동하는지는 알려주지 않습니다. Pong은 사람이 거치는 것과 동일한 경로를 통해 실제 숨겨진 웹뷰(webview)를 구동합니다. 즉, 채팅 박스에 직접 타이핑하고(단순한 textContent 쓰기를 무시하고 실제 beforeinput/insertText 파이프라인이 필요한 ProseMirror/Slate/Lexical 같은 리치 에디터(rich editors)를 처리함), 제출한 뒤 앱이 실제로 응답했는지 확인합니다.
체크 결과가 인증되지 않은 상태(unauthorized)로 돌아오면, Pong은 네이티브 알림(native notification)을 발생시키고 Reconnect 버튼이 포함된 복구 모드(recovery mode)로 팝오버(popover)를 엽니다. 이를 통해 아무런 반응 없이 조용히 사라지는 프롬프트(prompt)가 아니라, 알림을 통해 상황을 즉시 알 수 있습니다.
구축 방식
- Tauri v2 + Rust 백엔드, Svelte 5 프론트엔드 — Electron이 아닙니다. 트레이(tray)에 조용히 상주하는 목적은 그 일을 하기 위해 200MB의 RAM을 소모하지 않기 위함입니다.
tokio-cron-scheduler가 사용자의 일정에 따라 숨겨진 웹뷰(webview)를 구동하며, 결과는 IPC를 통해 트레이에 상주하는 팝오버로 전달됩니다.- macOS 접근성(accessibility)이나 화면 기록(screen-recording) 권한이 필요하지 않습니다 — 합성 상호작용(synthetic interaction)은 OS를 제어하는 방식이 아니라, 주입된 자바스크립트(injected JavaScript)를 통해 앱 자체의 웹뷰 내부에서 발생합니다.
- 이번 릴리스 기준 웹(web) 93% / Rust 82% 테스트 커버리지(test coverage)를 달성했습니다.
v0.0.1이란 무엇인가 (그리고 무엇이 아닌가)
- 첫 번째 안정화 버전(stable release)이며 크로스 플랫폼(cross-platform)을 지원합니다 — macOS, Windows, Linux용 설치 프로그램을 제공하며, 모든 빌드와 번들링은 푸시(push) 시마다 CI에 의해 수행됩니다.
- 빌드 결과물은 아직 **코드 서명(code-signed)**이 되어 있지 않습니다 — 이를 위해서는 유료 Apple Developer 계정과 Windows 코드 서명 인증서가 필요합니다. 첫 실행 시에는 한 가지 추가 단계가 필요하며(README 및 릴리스 노트에 문서화되어 있음), 그 이후에는 일반적인 더블 클릭으로 실행할 수 있습니다.
- 지금까지의 개발은 주로 macOS에서 이루어졌습니다. 만약 Windows나 Linux에서 사용해 보신다면, 팝오버가 어떻게 보이고 작동하는지에 대한 보고는 매우 유용한 신호(signal)가 될 것입니다.
사용해 보기
- 설치 프로그램: latest release
- 소스, 이슈(issues), PR: github.com/neochaotic/pong — MIT 라이선스.
로그인 세션이 끊겨 Claude 세션의 첫 5분을 허비하거나, 최악의 순간에 사용량 창(usage window)이 초기화되는 것을 본 적이 있다면, 이 도구가 바로 그 문제를 위한 해결책입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기