hwipit/plugin

Afficher ou modifier les notifications push Hwip pour ce projet : silencieux (par défaut), normal, fort, muet, désactiver le muet ; --global définit le niveau par défaut. `approve on|off` active ou désactive la porte d'approbation téléphonique pour les commandes difficiles à annuler.

Qu'est-ce que plugin ?

Cette compétence permet de contrôler finement le système de notifications push Hwip directement depuis l'agent IA. Elle prend en charge les niveaux `quiet`, `normal`, `loud`, `mute` et `unmute`, avec la possibilité de définir un niveau global via l'option `--global`. Elle gère également le `APPROVAL GATE` (porte d'approbation) qui, lorsqu'il est activé (`approve on`), interrompt les commandes dangereuses (`rm -rf`, push forcé, déploiement en production, SQL destructeur) pour demander une confirmation, soit via l'invite de permission de Claude Code au terminal, soit via l'application Hwip sur un téléphone lorsque l'utilisateur est absent. La compétence fonctionne avec les agents Claude Code (terminal, REMOTE, tmux) et s'applique par répertoire de projet : les modifications affectent toutes les sessions Claude dans ce répertoire. Les règles de session sont mises à jour automatiquement en cas de changement de niveau, sauf pour `approve` qui ne les modifie jamais. Un bloc `=== Hwip rules — replace the Hwip rules from session start ===` signale un changement de règles qui doit remplacer les règles actuelles de la session.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hwipit/plugin/tree/HEAD/skills/hwip-mode

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Exécutez ceci exactement comme écrit — les arguments vont sur la deuxième ligne du heredoc, jamais sur la commande elle-même, sur une seule ligne, et seulement les mots 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

La sortie avec le code 2 signifie un mauvais argument — montrez à l'utilisateur la ligne d'utilisation qu'elle a imprimée. Sinon, rapportez les lignes d'état dans vos propres mots :

  • NOTIFICATIONS: muted → les hooks Stop et Ask sont silencieux ici ; les outils hwip_* fonctionnent toujours mais ne sont pas appelés sauf si l'utilisateur le demande. Mute l'emporte sur tous les niveaux.
  • PUSH MODE: quiet → uniquement les pushs haute priorité (bloqueurs, high Push Signal) pendant que l'utilisateur est au terminal, plus un push de complétion une fois qu'il s'est absenté (HWIP_AWAY_SEC, par défaut 300 s) ou chaque fois que le paneau tmux de cette session n'est pas à l'écran. Le réglage par défaut.
  • PUSH MODE: normal → un push à chaque tour qui a effectué un vrai travail, silencieux sur les tours en lecture seule ; les marqueurs Push Signal décident des cas limites.
  • PUSH MODE: loud → chaque tour pousse, en ignorant skip.
  • La parenthèse indique d'où vient le niveau : ce projet, global par défaut (défini avec --global, hérité par les projets sans leur propre niveau), ou le niveau par défaut intégré. Un niveau de projet l'emporte toujours sur le niveau global.
  • APPROVAL GATE: on|off → indique si les commandes Bash difficiles à annuler (rm -rf, forcer le push, déploiement en production, SQL destructeur) attendent une approbation dans ce projet. Au terminal, l'invite de permission de Claude Code demande ; à distance, en REMOTE, ou lorsque la présence ne peut pas être lue, c'est le téléphone de l'utilisateur qui le fait. on, mais inactif quand muet — un projet muet n'a personne à qui demander, donc rien n'est retenu.
  • SCOPE: … → les niveaux, le muet, la porte d'approbation et le mode automatique appartiennent au répertoire du projet, pas à la session : une deuxième session Claude dans le même répertoire les partage. Dites-le quand l'utilisateur en change un.
  • AUTO MODE: … → une session /hwip-auto est en cours avec ce budget restant. off (une session … expirée a laissé son état derrière — effacé) signifie qu'une session a planté.
  • LAST PUSH: … → l'enregistrement par la CLI de son dernier push échoué (hwip notify l'écrit, un bon push le supprime). Les hooks masquent les erreurs de notify, donc cette ligne est la façon dont « silencieux, rien à envoyer » diffère de « chaque push échoue ». Relatez la cause et sa correction telles que données (par exemple, une clé rejetée → hwip login, aucune application connectée → connectez-vous à l'application Hwip sur un iPhone ou un téléphone Android) ; hwip verify en a plus.
  • Hwip: <périphérique> a changé sa clé de chiffrement — … → pas un échec : l'un des périphériques de l'utilisateur liste désormais une autre clé de chiffrement que celle que cette machine avait épinglée, et la nouvelle clé est de confiance. Montré une fois, puis effacé. Relatez-le comme tel — une application réinstallée ou un nouveau téléphone l'explique ; si ce n'est rien de tout cela, hwip trust montre les empreintes à comparer avec l'application.

Les questions (hwip_ask, le miroir de AskUserQuestion) poussent sous tous les niveaux sauf le muet.

Le contexte qu'une question scellée transporte (le diff git masqué de la session et les dernières lignes du terminal) n'est pas un niveau ici. Si l'utilisateur demande d'arrêter de l'envoyer, dirigez-le vers hwip ask-context off (ce projet) ou hwip ask-context off --global (chaque projet) ; hwip ask-context montre lequel s'applique.

Si la sortie se termine par un bloc === Hwip rules — replace the Hwip rules from session start ===, l'état a changé et les règles que le hook SessionStart a données à cette session sont obsolètes : suivez ce bloc à la place pour le reste de la session, y compris après compaction. Session rules unchanged signifie que le changement ne les a pas touchées (par exemple, normal ↔ loud) ; conservez celles que vous avez. approve ne change jamais les règles. Une ligne could not refresh signifie que le changement s'applique toujours mais que les règles ne se sont pas mises à jour — dites à l'utilisateur qu'une nouvelle session les prendra en compte.

Individual skills in this repo

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

Skills associés