Commandes
ZAPBIP_CONNECTION_URL contient le lien de connexion. connect et listen le demandent quand il n’est pas défini.
Ce qu’il vous faut
- Claude Code ou Codex, déjà connecté à zapbip.
- Au moins une session antérieure dans le dossier où vous voulez que l’IA travaille.
- Node 24 ou plus récent.
- Votre lien de connexion, le même lien
https://.../c/<secret>/mcpque votre IA utilise pour parler à zapbip. Traitez-le comme un mot de passe.
Le démarrer
Ouvrez un terminal dans le dossier où vous utilisez votre IA et lancez l’une de ces commandes :ZAPBIP_CONNECTION_URL, le connecteur vous demande le lien. Il ne prend jamais le lien en argument, car les arguments apparaissent dans l’historique de votre shell et dans la liste des processus.
Laissez le terminal ouvert. Le connecteur affiche une ligne pour chaque événement et s’arrête quand vous appuyez sur Ctrl+C. Pour le garder en marche sans terminal, voir L’exécuter en arrière-plan.
Ce qui se passe quand vous écrivez
- Vous écrivez à votre IA sur WhatsApp.
- Le connecteur reçoit votre message et réveille la session la plus récente du dossier.
- L’IA lit votre message et vous répond sur WhatsApp.
- Si plusieurs messages arrivent ensemble, ils sont traités un par un, dans l’ordre.
Choisir la session
Par défaut, le connecteur utilise la session la plus récente du dossier. Si vous avez le même dossier ouvert dans une autre fenêtre, un réveil peut s’ajouter à cette conversation. Pour l’éviter, épinglez une session :Ce que l’IA peut faire quand elle est réveillée
Une seule chose : vous renvoyer un message. Le connecteur donne à l’IA une configuration privée qui ne contient que zapbip, si bien que les outils de vos autres serveurs MCP ne lui sont pas disponibles. Claude Code s’exécute en outre sans vos fichiers de réglages et avec tous les outils intégrés désactivés, et Codex s’exécute avec un bac à sable en lecture seule et avec les autres serveurs MCP qu’il trouve dans vos fichiers de configuration Codex désactivés. S’il ne peut pas lire l’un de ces fichiers, il ne réveille pas Codex et laisse le message non lu. Il refuse aussi quand un fichier Codex géré définit une clé hors d’une courte liste de clés inoffensives, quand un profil définit le bac à sable, l’approbation, les outils ou les fonctionnalités (ou une clé hors de cette liste), quand un fichier active un interrupteur de recherche web, ou quandzapbip est défini ailleurs que dans le config.toml du dossier personnel de Codex. La recherche web de Codex est désactivée. Il reste à Codex send_message et un shell en lecture seule ; les apps et connecteurs de votre compte Codex ne sont pas désactivés, et les préférences gérées macOS com.openai.codex et les réglages de politique gérée de Claude Code s’appliquent toujours. Votre message lui parvient comme un message de vous, marqué comme vérifié. Un message que vous avez transféré de quelqu’un d’autre arrive marqué comme non vérifié, avec une étiquette de transfert, et l’IA ne le traite pas comme votre instruction.
Si l’application Codex a déjà la conversation ouverte, Codex refuse de la reprendre. Le connecteur démarre alors une nouvelle session dans le même dossier, qui commence sans la conversation précédente, et l’utilise ensuite.
Garder une session ouverte à l’écoute
connect réveille une session fermée. Pour une session que vous avez ouverte en ce moment, Claude Code peut vous entendre aussitôt, sans réveil et sans attente. Il y a deux façons, et la première est la meilleure.
Le canal est le premier choix. C’est un petit programme que Claude Code lance lui-même, comme n’importe quel autre outil. Il place chaque message que vous écrivez sur WhatsApp directement dans la session ouverte, comme un message de vous, marqué comme vérifié (un message transféré est marqué comme non vérifié). Définissez ZAPBIP_CONNECTION_URL dans l’environnement où tourne Claude Code, et Claude Code le lance avec :
ZAPBIP_CONNECTION_URL. Il n’accepte aucun argument.
Déclarez les deux serveurs dans le .mcp.json du dossier où vous travaillez. Le canal apporte vos messages ; le serveur HTTP de zapbip, sous une autre clé, donne à la session l’outil send_message avec lequel elle répond :
zapbip. Sans lui, la session vous entend mais n’a aucun moyen de répondre. Lancez ensuite Claude Code avec :
zapbip est la clé du serveur de canal dans .mcp.json. La ligne de démarrage affiche Channels (experimental). Claude Code vous demande d’accepter le canal de développement et le serveur MCP du projet ; acceptez les deux.
Le listener est la solution de secours. Il affiche une ligne pour chaque message que vous écrivez, et Claude Code surveille ces lignes avec son outil Monitor. Chaque ligne réveille la session ouverte, et rien n’est dépensé tant que vous restez silencieux :
"sender":"owner", "verified" (true pour votre propre message, false pour un message transféré), "forwarded" et le texte. Une surveillance Monitor dure jusqu’à 30 minutes, donc l’IA relance la surveillance chaque fois qu’une se termine. D’autres agents qui peuvent garder une commande en arrière-plan et réagir à sa sortie, comme OpenClaw et Hermes, peuvent utiliser npx zapbip@0.1.0 listen de la même façon.
Les deux programmes restent ouverts et se reconnectent d’eux-mêmes, comme connect. Les deux ne marquent un message comme traité qu’après l’avoir transmis, de sorte qu’un message n’est jamais perdu ni affiché deux fois. Leurs journaux vont sur la sortie d’erreur et ne contiennent jamais vos messages ni votre lien.
Les trois façons se complètent donc : le canal pour une session ouverte, listen comme secours, et connect pour une session fermée.
Un connecteur par connexion
Si vous démarrez un second connecteur pour la même connexion, le premier termine le réveil en cours et s’arrête. Lancez-le sur un seul ordinateur à la fois. Si un message arrive au moment où vous changez, les deux connecteurs peuvent réveiller votre IA une fois pour ce même message ; zapbip livre au moins une fois, jamais zéro fois. Tant qu’un connecteur est attaché, zapbip réveille votre IA par lui. Quand il se ferme, zapbip revient au réglage que vous aviez avant.Ce qu’il affiche
Chaque ligne est du JSON avec une heure et un événement, commewake_started et wake_finished. Les lignes portent des identifiants, des types, des résultats et des durées. Elles ne portent jamais vos messages, les réponses de l’IA ni votre lien de connexion.