Community코딩 & 개발github.com

hwipit/plugin

Hwip 푸시 알림 모드를 표시하거나 변경합니다: quiet(기본값), normal, loud, mute, unmute; --global은 기본 다이얼을 설정합니다. `approve on|off`는 실행 취소가 어려운 명령을 위한 전화 승인 게이트를 켜거나 끕니다.

plugin란 무엇인가요?

이 스킬은 Claude Code 세션에서 Hwip 푸시 알림 모드(quiet, normal, loud, mute, unmute)와 승인 게이트(approve on/off)를 제어합니다. 각 모드는 푸시 알림의 빈도와 우선순위를 조정하며, mute는 모든 알림을 차단합니다. 프로젝트별 다이얼과 전역 다이얼을 지원하며, 특정 프로젝트에만 적용되는 설정과 모든 프로젝트에 기본으로 적용되는 설정을 구분합니다. 또한 승인 게이트는 위험한 Bash 명령(rm -rf, 강제 푸시, 프로덕션 배포, 파괴적 SQL) 실행 전 사용자의 확인을 요구하며, 세션이 오프라인일 때는 휴대폰 알림으로 대체됩니다. 이 스킬은 주로 Claude Code에서 동작하며, SKILL.md에 정의된 heredoc 스크립트를 통해 상태를 변경합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hwipit/plugin/tree/HEAD/skills/hwip-mode

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

다음을 정확히 실행합니다 — 인수는 heredoc의 두 번째 줄에만 넣고, 명령 자체에 넣지 않으며, 한 줄로, quiet normal loud mute unmute --global approve on off 단어만 사용하세요:

bash "${CLAUDE_PLUGIN_ROOT}/scripts/hwip-mode.sh" <<'HWIP_MODE_INPUT'
${CLAUDE_PROJECT_DIR}
$ARGUMENTS
HWIP_MODE_INPUT

종료 코드 2는 잘못된 인수입니다 — 사용자에게 출력된 사용법 줄을 보여주세요. 그 외에는 상태 줄을 자신의 말로 보고하세요:

  • NOTIFICATIONS: muted → Stop 및 Ask 후크가 여기에서 무음 처리되었습니다. hwip_* 도구는 계속 작동하지만 사용자가 요청하지 않는 한 호출되지 않습니다. Mute는 모든 다이얼을 무효화합니다.
  • PUSH MODE: quiet → 사용자가 터미널에 있는 동안에는 고우선순위 푸시(차단기, high 푸시 신호)만, 사용자가 자리를 비운 후(HWIP_AWAY_SEC, 기본값 300초) 또는 이 세션의 tmux 창이 화면에 보이지 않는 경우 완료 푸시 한 번을 보냅니다. 기본값입니다.
  • PUSH MODE: normal → 실제 작업을 수행한 모든 턴에 푸시하며, 읽기 전용 턴에서는 무음입니다. 푸시 신호 마커가 경계 사례를 결정합니다.
  • PUSH MODE: loud → 모든 턴에서 푸시하며, skip을 무시합니다.
  • 괄호 안의 내용은 다이얼의 출처를 나타냅니다: this project(이 프로젝트), global default(--global로 설정, 자체 다이얼이 없는 프로젝트가 상속), 또는 내장 기본값. 프로젝트 다이얼은 항상 전역 다이얼보다 우선합니다.
  • APPROVAL GATE: on|off → 실행 취소가 어려운 Bash 명령(rm -rf, 강제 푸시, 프로덕션 배포, 파괴적 SQL)이 이 프로젝트에서 승인을 기다릴지 여부입니다. 터미널에서는 Claude Code 자체 권한 프롬프트가 묻습니다. 오프라인, REMOTE 모드 또는 존재를 읽을 수 없는 경우 사용자의 휴대폰이 묻습니다. on, but inactive while muted — 음소거된 프로젝트에는 질문할 대상이 없으므로 아무것도 보류되지 않습니다.
  • SCOPE: … → 다이얼, 음소거, 승인 게이트 및 자동 모드는 세션이 아닌 프로젝트 디렉토리에 속합니다. 같은 디렉토리의 두 번째 Claude 세션도 이를 공유합니다. 사용자가 값을 변경할 때 이 점을 알려주세요.
  • AUTO MODE: … → /hwip-auto 세션이 실행 중이며 해당 예산이 남아 있습니다. off (an expired … session left its state behind — cleared)는 세션이 비정상 종료된 것입니다.
  • LAST PUSH: … → CLI의 마지막 실패한 푸시 기록입니다(hwip notify가 기록하며, 성공적인 푸시는 삭제함). 후크가 notify의 오류를 숨기므로 이 줄은 "조용히, 보낼 내용 없음"과 "모든 푸시 실패"를 구분합니다. 주어진 원인과 해결 방법을 전달하세요(예: 거부된 키 → hwip login, 로그인된 앱 없음 → iPhone 또는 Android 휴대폰의 Hwip 앱에 로그인). hwip verify에 더 많은 정보가 있습니다.
  • Hwip: <device> changed its encryption key — … → 오류가 아닙니다. 사용자 기기 중 하나가 이 컴퓨터가 고정했던 키와 다른 암호화 키를 나열하고 있으며, 새 키가 신뢰됨을 의미합니다. 한 번 표시된 후 지워집니다. 그대로 전달하세요 — 앱 재설치 또는 새 휴대폰으로 설명됩니다. 둘 다 아닌 경우 hwip trust로 지문을 표시하여 앱과 비교할 수 있습니다.

질문(hwip_ask, AskUserQuestion 미러)은 음소거를 제외한 모든 다이얼에서 푸시됩니다.

밀봉된 질문이 전달하는 컨텍스트(세션의 마스킹된 git diff와 마지막 터미널 줄)는 여기서 다이얼이 아닙니다. 사용자가 전송을 중단하려면 hwip ask-context off(이 프로젝트) 또는 hwip ask-context off --global(모든 프로젝트)를 알려주세요. hwip ask-context는 현재 적용 중인 설정을 보여줍니다.

출력이 === Hwip rules — replace the Hwip rules from session start === 블록으로 끝나면 상태가 변경되었으며 SessionStart 후크가 이 세션에 제공한 규칙이 오래된 것입니다. 이 블록을 세션의 나머지 동안(압축 후 포함) 대신 따르세요. Session rules unchanged는 변경이 규칙에 영향을 주지 않았음을 의미합니다(예: normal ↔ loud). 현재 규칙을 유지하세요. approve는 규칙을 변경하지 않습니다. could not refresh 줄은 변경이 적용되었지만 규칙이 업데이트되지 않았음을 의미합니다 — 사용자에게 새 세션이 이를 적용한다고 알려주세요.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

관련 스킬