Communityコーディング&開発github.com

hwipit/plugin

このプロジェクトのHwipプッシュ通知モードを表示または変更します。クワイエット(デフォルト)、ノーマル、ラウド、ミュート、アンミュート。--globalでデフォルトのダイヤルを設定します。`approve on|off`で、取り消し困難なコマンドに対する電話承認ゲートのオン/オフを切り替えます。

plugin とは?

hwipit/pluginスキルは、Claude CodeセッションにおけるHwipプッシュ通知の動作と承認ゲートを制御するためのツールです。開発者は、プロジェクトごとに通知の強度(quiet、normal、loud)を設定したり、すべての通知をミュート(mute)またはミュート解除(unmute)したりできます。また、`--global`フラグを使用してすべてのプロジェクトに適用されるデフォルト値を設定することも可能です。さらに、`approve on|off`コマンドを使用して、`rm -rf`や強制プッシュなどの取り消し困難なコマンドを実行する前に電話による承認を要求するゲートを有効/無効にできます。このスキルは、Hwip CLIフックと連携し、`hwip-mode.sh`スクリプトを介してステータスを確認・変更します。出力には、通知状態、プッシュモード、承認ゲート、スコープ、自動モード、最後のプッシュステータス、暗号化キー変更情報が含まれ、ユーザーは現在の設定を把握し、必要に応じて調整できます。

対応✓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に質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

以下を、記述されたとおり正確に実行してください。引数はヒアドキュメントの2行目に置き、コマンド自体には決して付けず、1行で、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_*ツールは引き続き動作しますが、ユーザーが要求しない限り呼び出されません。ミュートはすべてのダイヤルより優先されます。
  • 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: … → ダイヤル、ミュート、承認ゲート、自動モードはセッションではなくプロジェクトディレクトリに属します: 同じディレクトリの2番目の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 — … → 障害ではありません: ユーザーのデバイスの1つが、このマシンがピン留めしていたものとは異なる暗号化キーをリストしており、新しいキーは信頼されています。一度表示された後、クリアされます。そのように伝えてください — アプリの再インストールまたは新しい電話で説明がつきます。どちらでもない場合は、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.

関連スキル