Recevez une alerte dès que votre session d'entraînement ou build se termine

Henry AGI
6 min de lectureJun 2026
Recevez une alerte dès que votre session d'entraînement ou build se termine

Lancez votre job sous LidRun et il vous alerte dès que le processus se termine — avec le code de sortie et la durée d'exécution — pour être averti quand un job Mac se termine au lieu de surveiller une fenêtre de terminal. La notification push sur téléphone (ntfy.sh ou Pushover) est gratuite ; Telegram, Discord, Slack et un webhook personnalisé font partie de Pro. Si vous préférez ne rien installer, macOS propose déjà quelques commandes capables de vous notifier quand une commande shell se termine — ce guide couvre les deux approches : la méthode native gratuite, et exactement comment fonctionnent les canaux de LidRun de bout en bout.

Pourquoi vous n'arrêtez pas de vérifier le terminal

macOS n'a aucun moyen natif de dire « préviens-moi quand c'est fini ». Terminal.app peut faire clignoter son icône dans le Dock quand une commande shell en arrière-plan se termine (Préférences → Profils → Shell → « Notifier quand le processus se termine »), mais cela n'aide que si vous êtes devant le Mac pour le voir — ça n'atteint pas votre téléphone, et ça ne dit rien sur la réussite réelle de la commande. Un ollama pull, un cargo build, une boucle d'entraînement, ou une session Claude Code / Codex qui tourne sans surveillance se termine sinon dans un silence total.

Alors soit vous restez à re-vérifier, soit vous partez en devinant : revenez trop tôt et vous attendez encore, trop tard et vous avez perdu du temps que vous auriez pu consacrer à autre chose. Les applications génériques anti-veille — Amphetamine, Caffeine, KeepingYouAwake, Lungo — résolvent bien la première moitié du problème en empêchant le Mac de s'endormir, mais aucune ne surveille une commande précise ni ne vous dit quand elle se termine. C'est un métier différent d'un simple interrupteur dans la barre de menus.

La solution, c'est un seul message à l'instant où le processus se termine, indiquant s'il a réellement réussi. Le reste de ce guide couvre deux façons d'y arriver : la construire vous-même avec ce qui est déjà sur votre Mac, ou laisser LidRun s'en charger.

La méthode native gratuite pour recevoir une alerte

macOS embarque de quoi bricoler une version approximative de tout ça sans rien installer. say "build finished" prononce une phrase à voix haute — pratique si vous êtes dans la pièce d'à côté. osascript -e 'display notification "Build finished, exit 0" with title "Terminal"' affiche une vraie bannière dans le Centre de notifications, du même genre que celles produites par n'importe quelle app. Enchaînez l'une ou l'autre après une commande avec ; (s'exécute peu importe le résultat) ou && (s'exécute seulement en cas de succès) : npm run build && osascript -e 'display notification "Build finished" with title "npm"'.

Pour quelque chose d'un peu plus soigné, terminal-notifier (brew install terminal-notifier) est l'outil gratuit standard pour ça — terminal-notifier -title "Build" -message "Finished" affiche le même type de bannière avec une API en ligne de commande plus agréable. Aucun de ces trois outils n'atteint votre téléphone, cependant ; ils restent cantonnés au Centre de notifications, sur le Mac devant lequel vous êtes assis.

Ce que les gens oublient en général : ni say, ni osascript, ni terminal-notifier ne maintiennent le Mac éveillé. Si l'écran s'éteint et que la veille d'inactivité s'enclenche avant la fin du job, macOS peut mettre en pause tout le processus — le build se bloque, et la commande de notification en bout de chaîne ne s'exécute jamais. caffeinate -i placé devant une commande retarde la veille d'inactivité exactement pendant la durée d'exécution de cette commande, ce que les outils de notification ne fournissent pas à eux seuls.

Mis bout à bout, voilà la recette native et gratuite complète — rester éveillé pendant le job, puis dire quelque chose une fois terminé :

caffeinate -i npm run build; osascript -e 'display notification "Build finished" with title "npm"'

Guide associéLancer une commande longue, puis laisser le Mac s'endormir une fois qu'elle est terminée

Où la solution bricolée montre ses limites

En pratique, trois choses posent problème avec caffeinate combiné à une commande de notification. D'abord, caffeinate est un verrou d'éveil aveugle — il n'a aucune idée de l'état de votre batterie ou de la température, et il maintiendra un MacBook éveillé à n'importe quel niveau de charge ou de chaleur tant que la commande enveloppée tourne. C'est sans problème pour un build de cinq minutes à un bureau ; sur une exécution plus longue et sans surveillance, c'est un vrai moyen de finir avec une batterie à plat ou un arrêt thermique, surtout si les grilles d'aération sont bouchées sous un support d'ordinateur portable ou dans un sac. Ventiler le Mac reste de toute façon votre responsabilité — aucune notification, quel que soit l'outil, ne refroidit le châssis.

Ensuite, osascript, terminal-notifier et say n'atteignent que le Mac devant lequel vous êtes. Si vous vous êtes éloigné, vous ne verrez la bannière que si vous jetez à nouveau un œil à l'écran par hasard — c'est-à-dire exactement le problème que vous essayiez de résoudre.

Enfin, fermer le capot arrête toute la chaîne. À moins d'avoir lancé séparément pmset disablesleep 1 — ce qui exige une authentification admin et reste un réglage permanent plus lourd, qu'il faut penser à remettre à 0, pas quelque chose de limité à une seule commande — fermer le capot met en veille le Mac, le job, et la commande de notification avec eux.

La version gratuite de LidRun : une commande enveloppée plus un appel notify

C'est le vide que LidRun comble, et le palier gratuit couvre déjà la version de base. La règle est simple : agent ou commande en cours → rester éveillé ; commande terminée, ou situation devenue dangereuse → relâcher et laisser le Mac dormir. La recette CLI gratuite :

lidrun -- npm run build; lidrun notify "Build finished" "exit $?"

lidrun -- <command> enveloppe la commande dans une assertion anti-veille pour toute sa durée — c'est autonome, et l'app LidRun n'a pas besoin de tourner pour cette partie-là. Une précision importante : à lui seul, cet enveloppement est un simple verrou d'éveil comme caffeinate, sans aucune conscience de la batterie ou de la température, relâché dès que le processus enfant se termine. lidrun notify "<title>" "<body>" est la pièce qui ajoute une vraie notification, et elle a bien besoin que l'app LidRun tourne dans la barre de menus — elle affiche une bannière locale et, si vous avez activé la notification push dans Notifications & Alertes, l'envoie sur votre téléphone via ntfy.sh (gratuit, basé sur des topics — installez l'app ntfy, abonnez-vous à un topic de votre choix, LidRun y publie) ou Pushover (une app payante à l'achat unique, pas un abonnement). Les deux commandes sont gratuites — aucun palier Pro requis.

Le plancher de sécurité de base de LidRun — arrêt automatique une fois la batterie tombée vers 4 %, recul progressif sous pression thermique soutenue — appartient aux modes propres de l'app : Keep Awake, Timer, et Run & Watch a Command, qui tournent tous sous la machine à états de LidRun plutôt que sous une simple assertion IOKit. Si vous voulez que le job lui-même soit surveillé avec ce filet de sécurité, pas juste enveloppé, c'est ce que Keep Awake/Timer gratuits ou Run & Watch Pro apportent en plus par rapport à l'enveloppement CLI brut — ce n'est pas un verrou d'éveil aveugle qui tourne sans se soucier de ce qui arrive au Mac.

Telegram, Discord, Slack et un webhook — la couche Pro

Si vous voulez que les alertes quittent complètement le Mac — atterrissent dans un canal que votre équipe surveille déjà, ou atteignent une app que vous n'avez pas à installer — ce sont les intégrations Pro de LidRun : Telegram, Discord, Slack, et un webhook générique, tous configurables depuis la fenêtre Notifications & Alertes de la barre de menus. La notification push sur téléphone évoquée plus haut reste gratuite dans tous les cas ; ces quatre canaux relèvent du même palier qui débloque Run & Watch a Command, le mode Closed-Lid, et Smart Rules.

Pour Telegram, sans créer votre propre bot : ouvrez le bot LidRun partagé sur Telegram (@Libruntest_bot, ou le bouton « Open the LidRun bot » dans l'app), appuyez sur Start, puis ouvrez @userinfobot pour récupérer votre Chat ID numérique, et collez ce Chat ID dans LidRun. C'est toute la configuration — pas de jeton de bot, pas de BotFather. Un champ avancé permet d'utiliser votre propre bot à la place ; laissez-le vide pour utiliser celui partagé.

Discord et Slack fonctionnent de la même façon côté LidRun : créez une URL de webhook entrant depuis les paramètres d'intégration du canal (Discord : paramètres du salon → Intégrations → Webhooks → Nouveau Webhook ; Slack : l'app Incoming Webhooks de votre espace de travail) et collez l'URL. Les messages Discord sont postés au format {"content": "..."} ; Slack reçoit {"text": "..."} — exactement le JSON décrit par la documentation webhook de chaque service, donc rien de spécifique à LidRun à apprendre.

Le webhook générique sert à tout le reste — Zapier, IFTTT, Home Assistant, votre propre endpoint. LidRun envoie ceci en POST à l'URL que vous fournissez :

{"title": "Task finished ✅", "body": "npm run build (exit 0) after 2m 14s", "event": "session_finished", "app": "LidRun"}

event est une clé machine courte sur laquelle vous pouvez router — session_finished et all_tasks_finished pour le travail terminé, thermal_critical et sleep_failed côté sécurité.

L'envoi se fait en mode fire-and-forget avec une seule tentative de réessai : si un canal rejette le message, LidRun attend 5 secondes et retente une fois, puis journalise l'échec plutôt que de réessayer indéfiniment. Chaque requête expire au bout de 15 secondes. Utilisez « Send test » à côté de chaque canal avant une exécution réelle, pour qu'un Chat ID ou une URL de webhook erronés n'avalent pas silencieusement votre première alerte.

Ce qui déclenche réellement une alerte

Deux grandes catégories d'événements valent la peine d'être connues. La première, c'est une commande terminée. Run & Watch a Command (Pro, dans l'app) exécute votre commande, maintient l'anti-veille pendant toute sa durée, et déclenche à la sortie une alerte contenant déjà le code de sortie et la durée — « Task finished » ou « Task failed », pas juste « ça s'est arrêté ». Auto Mode (Pro) fait la même chose sur toute une liste de processus surveillés et envoie une alerte une fois que tout y est terminé, mais seulement quand vous êtes réellement absent — capot fermé, ou inactivité de quelques minutes — pour ne pas ajouter une bannière à chaque fois que vous êtes assis à votre bureau.

La seconde, c'est un événement de sécurité, et il y a deux paliers. Le plancher de sécurité de base de LidRun — relâcher l'anti-veille parce que le Mac est devenu critiquement chaud ou que la batterie a atteint son seuil d'urgence, ou l'échec de LidRun à restaurer la veille normale après le mode Closed-Lid — envoie une notification sur votre téléphone via le réglage gratuit « Critical safety alerts », indépendamment de la licence. Watchdog (Pro) ajoute une détection plus précise par-dessus : un agent qui semble bloqué en attente de vous, une connexion réseau coupée, et les mêmes conditions critiques de thermique/batterie détectées plus tôt mais rapportées avec plus de détails.

Une seule règle relie tout ça : la notification push sur téléphone, une bannière locale plus ntfy ou Pushover, est gratuite pour chaque événement que LidRun peut déclencher. Telegram, Discord, Slack et le webhook sont la couche Pro par-dessus, qui diffuse ces mêmes événements vers davantage d'endroits.

Si vous activez aussi « Away notifications » (gratuit), fermer le capot pendant qu'une tâche tourne envoie un court message indiquant ce qui est en cours et ce que LidRun compte faire côté batterie et chaleur, puis un bref récapitulatif quand vous rouvrez le capot — un message par moment clé, pas un flux continu de mises à jour.

Essayez-le plutôt que de lutter contre la veille capot fermé

LidRun garde votre travail actif capot fermé, avec une protection batterie et thermique intégrée.

Télécharger pour macOS

Vous avez déjà LidRun ? Lisez le guide d'installation →

Nouveau sur LidRun ? Voir les tarifs →

Questions fréquentes

Dois-je créer mon propre bot Telegram ?

Non. Ouvrez le bot LidRun partagé (@Libruntest_bot) dans Telegram, appuyez sur Start, puis collez le Chat ID numérique que vous donne @userinfobot dans la fenêtre Notifications & Alertes de LidRun. Il n'y a aucun jeton de bot à générer, rien à enregistrer auprès de BotFather. Un champ avancé permet d'utiliser votre propre bot à la place — laissez-le vide pour utiliser celui partagé.

Qu'est-ce qui est gratuit et qu'est-ce qui nécessite Pro ?

La notification push sur téléphone — une bannière locale plus ntfy.sh ou Pushover — est gratuite, et couvre les alertes de tâche terminée, le plancher de sécurité de base de LidRun (batterie faible, surchauffe), et les away notifications. Telegram, Discord, Slack et le webhook personnalisé sont en Pro, tout comme Run & Watch a Command (le mode qui construit automatiquement l'alerte avec code de sortie et durée), Auto Mode, et Watchdog.

À quoi ressemble le payload du webhook ?

Le webhook générique envoie du JSON en POST : {"title": "...", "body": "...", "event": "...", "app": "LidRun"}, où event est une clé machine courte comme session_finished sur laquelle vous pouvez router. Discord reçoit {"content": "..."} et Slack reçoit {"text": "..."} — le format standard décrit par la documentation webhook entrant de chaque service.

L'alerte me dira-t-elle si ma commande a réussi ?

Oui, pour Run & Watch a Command (Pro) : le titre indique « Task finished » ou « Task failed », et le corps inclut le code de sortie et la durée d'exécution. L'enveloppement CLI gratuit lidrun -- <command> ne construit pas ce message automatiquement — enchaînez-le avec lidrun notify "title" "exit $?" pour obtenir la même information gratuitement.

LidRun retente-t-il une notification échouée ?

Pour les envois Telegram/Discord/Slack/webhook : une fois. Si un canal rejette le message, LidRun attend 5 secondes et retente, puis journalise l'échec plutôt que de réessayer indéfiniment. Les bannières locales et la notification push ntfy/Pushover sont une requête unique en fire-and-forget, pas retentées de la même manière.

Puis-je obtenir une alerte similaire sans rien installer ?

Oui. caffeinate -i your-command; osascript -e 'display notification "Done" with title "Job"' empêche le Mac de partir en veille d'inactivité pendant que la commande tourne, puis affiche une bannière du Centre de notifications une fois terminé. C'est purement local — ça n'atteindra pas votre téléphone si vous vous êtes éloigné, et ça n'a aucune conscience de si l'état de votre batterie ou de la température permet de continuer sans risque.

LidRun m'alerte-t-il aussi sur les événements de sécurité ?

Oui. Quand le plancher de sécurité de base de LidRun relâche l'anti-veille — chaleur critique, ou batterie proche de son seuil d'urgence — cela envoie une notification sur votre téléphone via le réglage gratuit « Critical safety alerts », indépendamment des alertes de tâche terminée. Watchdog (Pro) ajoute des alertes plus précises par-dessus, comme un agent qui semble bloqué en attente de vous ou une connexion réseau coupée.

Vous vous demandez si LidRun est fait pour vous ?

Laissez ChatGPT, Claude ou Perplexity faire la recherche — cliquez ci-dessous pour voir ce que l'IA pense vraiment de LidRun.