pingping2
v0.1.9
Published
Send Codex and Claude Code completion notifications to your iPhone and Apple Watch through PingPing2 PWA.
Maintainers
Readme
PingPing2 CLI
Codex, Claude Code 같은 LLM CLI 작업이 끝났을 때 iPhone PWA와 Apple Watch로 완료 알림을 보내는 CLI입니다.
기본 PingPing2 서비스 URL은 아래 주소입니다.
https://pingping2.too1s.com언제 쓰나요?
터미널에서 Codex나 Claude Code에게 오래 걸리는 작업을 맡겨두면, 완료 시점을 놓치기 쉽습니다. PingPing2는 CLI 작업 종료를 감지해 서버로 완료 이벤트를 보내고, 서버가 PWA Web Push 알림을 발송합니다.
Codex / Claude Code
-> PingPing2 CLI
-> PingPing2 server
-> PWA Web Push
-> iPhone
-> Apple Watch 알림 미러링빠른 설치
개발 PC에서 실행하세요. 서버가 아니라 Codex 또는 Claude Code를 쓰는 로컬 터미널입니다.
npx pingping2@latest install-plugins이 명령은 다음을 처리합니다.
pingping2CLI 설치- Codex
Stop훅 설치 - Claude Code
Stop훅 설치 - 브라우저에서 PingPing2 로그인 시작
- 기본 서버
https://pingping2.too1s.com에 CLI 연결
설치기는 npm 패키지 안의 플러그인 템플릿을 사용합니다. 별도로 GitHub 저장소를 내려받지 않아도 됩니다.
Codex만 설치:
npx pingping2@latest install-plugins --codex-onlyClaude Code만 설치:
npx pingping2@latest install-plugins --claude-onlyGoogle 로그인 사용:
npx pingping2@latest install-plugins --provider google이미 CLI 로그인이 되어 있고 토큰이 유효하면 설치 후 다시 로그인하지 않습니다. 이 로그인은 브라우저 웹 세션과 별도이며, 로컬 ~/.pingping2/config.json의 CLI 토큰을 서버에서 확인해 재사용합니다. 다시 로그인 계정을 고르고 싶으면 --force-login을 붙이세요. 카카오 로그인도 재인증 화면을 요청합니다.
npx pingping2@latest install-plugins --force-login로컬 CLI 토큰을 지우려면 아래 명령을 실행하세요.
pingping2 logout처음 설치하는 터미널에서는 카카오와 Google 중 로그인 방식을 고를 수 있습니다. 자동 입력 환경에서는 카카오가 기본값입니다.
PWA 알림 설정
iPhone에서 한 번 설정해야 합니다.
- Safari로
https://pingping2.too1s.com접속 - 공유 버튼 선택
- 홈 화면에 추가 선택
- 홈 화면에서 PingPing2 실행
- 카카오 또는 Google로 로그인
- 알림 허용
iOS Web Push는 홈 화면에 추가한 PWA에서 동작합니다. Apple Watch는 iPhone 알림 미러링 설정에 따라 같은 알림을 손목에서 받을 수 있습니다.
CLI 명령
로그인:
pingping2 login상태 확인:
pingping2 status로컬 CLI 로그아웃:
pingping2 logout명령을 감싸서 실행하고 끝나면 알림 보내기:
pingping2 run --label "테스트" -- npm test수동 완료 알림 보내기:
pingping2 notify --label "Codex" --summary "요청한 리팩터링 작업이 완료됐어요."다른 서버를 쓰는 경우:
pingping2 login --server https://your-pingping2.example.comCodex / Claude Code 훅 동작
install-plugins를 실행하면 Codex와 Claude Code의 작업 종료 훅이 설치됩니다. 이후 세션 응답이 끝날 때 훅이 pingping2 notify를 호출하고, PingPing2 서버가 로그인된 사용자에게 PWA 푸시를 발송합니다.
Claude Code는 ~/.claude/settings.json에 UserPromptSubmit 훅과 Stop 훅을 함께 추가합니다. UserPromptSubmit 훅은 최근 입력 프롬프트를 로컬 캐시에 저장하고, Stop 훅은 그 값을 읽어 완료 알림과 대시보드 기록의 요청 문구로 보냅니다.
기존 설치와의 호환을 위해 doneping, doneping-cli, llm-done alias도 남아 있지만, 문서와 안내 로그에서는 pingping2를 기준으로 설명합니다.
서버 기본값은 https://pingping2.too1s.com입니다. 별도 설정 없이 이 주소로 연결됩니다.
완료 알림에는 도구 이름, 현재 프로젝트 폴더명, 최근 사용자 요청 앞 20자가 함께 들어갑니다. 예를 들어 pingping2 · 푸시 메시지가 dev_r처럼 보여요.
훅 입력에서 사용자 요청을 찾지 못하면 프로젝트 폴더명만 보냅니다. 더 구체적인 문구가 필요하면 훅 실행 환경에서 PINGPING2_SUMMARY 값을 지정할 수 있습니다. 기존 DONEPING_SUMMARY도 호환됩니다.
로컬에 저장되는 정보
CLI 로그인 후 로컬에는 아래 파일이 생성됩니다.
~/.pingping2/config.json기존 ~/.doneping/config.json이 있으면 새 설정이 없을 때 읽어서 마이그레이션처럼 사용할 수 있습니다. 여기에는 서버 URL과 CLI 토큰이 저장됩니다. OAuth 클라이언트 시크릿, VAPID private key, DB 비밀번호 같은 서버 보안 정보는 npm 패키지에 포함되지 않습니다.
알림이 안 올 때 확인할 것
- iPhone에서 Safari가 아니라 홈 화면 PWA로 PingPing2를 열었는지 확인
- PWA에서 알림 권한을 허용했는지 확인
- 웹과 CLI가 같은 계정으로 로그인되어 있는지 확인
pingping2 status가 정상 응답하는지 확인- iPhone 알림이 Apple Watch로 미러링되도록 설정되어 있는지 확인
요구 사항
- Node.js 20 이상
- Codex 또는 Claude Code 사용 환경
- iOS Web Push 사용 시 iOS 16.4 이상
- Apple Watch 알림은 iPhone 알림 미러링을 사용
