SpyBara
Go Premium

scheduled-tasks.md 2026-10-23 22:59 UTC to 2026-10-24 22:59 UTC

No changes for this document in this history range.

2026
Thu 1 23:59 Fri 9 23:02 Sun 11 23:57 Wed 14 22:58 Tue 20 23:00 Wed 21 23:02 Thu 22 22:58 Fri 23 22:59

Exécuter des prompts selon un calendrier

Utilisez /loop et les outils de planification cron pour exécuter des prompts de manière répétée, interroger l'état ou définir des rappels ponctuels dans une session Claude Code.

Les tâches planifiées limitées à la session permettent à Claude de réexécuter automatiquement un prompt à intervalles réguliers au sein d'une session Claude Code. Utilisez-les pour interroger un déploiement, surveiller une PR, vérifier un build de longue durée ou vous rappeler de faire quelque chose plus tard dans la session.

[!NOTE]

Ces cas sont traités sur d'autres pages :

  • Réagir aux événements au fur et à mesure qu'ils se produisent au lieu d'interroger : consultez Channels. Votre CI peut pousser l'échec directement dans la session.
  • Maintenir la session en fonctionnement tour après tour jusqu'à ce qu'une condition soit remplie plutôt que sur un intervalle : consultez /goal.

Les tâches sont limitées à la session. Lorsque vous reprenez avec --resume ou --continue, Claude Code restaure les tâches qui n'ont pas expiré, à l'exception de celles énumérées sous Limitations. Pour une planification qui survit indépendamment de toute session, créez une tâche planifiée sur le cloud, configurez une tâche planifiée sur le bureau ou utilisez GitHub Actions.

Comparer les options de planification

Claude Code offre trois façons de planifier des tâches récurrentes ou ponctuelles :

Cloud Desktop /loop
S'exécute sur Cloud, géré par Anthropic par défaut Votre machine Votre machine
Nécessite que la machine soit allumée Non Oui Oui
Nécessite une session ouverte Non Non Oui
Persistant après redémarrage Oui Oui Restauré sur --resume, avec exceptions
Accès aux fichiers locaux Non (clone frais) Oui Oui
Serveurs MCP Connecteurs configurés par tâche Fichiers de configuration et connecteurs Hérité de la session
Demandes de permission Mode auto par défaut Configurable par tâche Hérité de la session
Planification personnalisable Oui Oui Oui
Intervalle minimum 1 heure 1 minute lorsque Claude le définit, 1 heure dans les formulaires 1 minute

[!TIP]

Utilisez les tâches cloud pour les travaux qui doivent s'exécuter de manière fiable sans votre machine. Utilisez les tâches Desktop lorsque vous avez besoin d'accès aux fichiers et outils locaux. Utilisez /loop pour un sondage rapide pendant une session.

Exécuter un prompt de manière répétée avec /loop

La compétence groupée /loop est le moyen le plus rapide d'exécuter un prompt de manière répétée pendant que la session reste ouverte. L'intervalle et le prompt sont tous deux optionnels, et ce que vous fournissez détermine le comportement de la boucle.

Ce que vous fournissez Exemple Ce qui se passe
Intervalle et prompt /loop 5m check the deploy Votre prompt s'exécute selon un calendrier fixe
Prompt uniquement /loop check the deploy Votre prompt s'exécute à un intervalle choisi par Claude à chaque itération
Intervalle uniquement, ou rien /loop Le prompt de maintenance intégré s'exécute, ou votre loop.md s'il en existe un

Vous pouvez également passer une compétence en tant que prompt, par exemple /loop 20m /review-pr 1234, pour réexécuter cette compétence à chaque itération. Un déclenchement planifié n'exécute que les compétences que Claude est autorisé à invoquer de lui-même. Les éléments suivants parviennent à Claude sous forme de texte brut au lieu de s'exécuter :

Exécuter selon un intervalle fixe

Lorsque vous fournissez un intervalle, Claude le convertit en expression cron, planifie la tâche et confirme la cadence et l'ID de la tâche.

/loop 5m check if the deployment finished and tell me what happened

L'intervalle peut précéder le prompt en tant que jeton nu comme 30m, ou le suivre en tant que clause comme every 2 hours. Les unités prises en charge sont s pour les secondes, m pour les minutes, h pour les heures et d pour les jours.

Les secondes sont arrondies à la minute la plus proche puisque cron a une granularité d'une minute. Les intervalles qui ne correspondent pas à une étape cron propre, comme 7m ou 90m, sont arrondis à l'intervalle le plus proche et Claude vous indique ce qu'il a choisi.

Laisser Claude choisir l'intervalle

Lorsque vous omettez l'intervalle, Claude en choisit un dynamiquement au lieu de s'exécuter selon un calendrier cron fixe. Après chaque itération, il choisit un délai entre une minute et une heure en fonction de ce qu'il a observé : des attentes courtes pendant qu'une compilation se termine ou qu'une PR est active, des attentes plus longues quand rien n'est en attente. Le délai choisi et la raison de ce choix sont imprimés à la fin de chaque itération.

L'exemple ci-dessous vérifie CI et les commentaires d'examen, Claude attendant plus longtemps entre les itérations une fois que la PR devient silencieuse :

/loop check whether CI passed and address any review comments

Dans une session où l'outil Monitor est disponible, Claude peut l'utiliser directement lorsque vous demandez un calendrier /loop dynamique. Monitor exécute un script en arrière-plan et diffuse chaque ligne de sortie, ce qui évite complètement l'interrogation et est souvent plus efficace en termes de jetons et plus réactif que de réexécuter un prompt à intervalles réguliers.

Une boucle planifiée dynamiquement apparaît dans votre liste de tâches planifiées comme n'importe quelle autre tâche, vous pouvez donc la lister ou l'annuler de la même manière. La liste affiche son réveil en attente sous forme de tâche ponctuelle, de sorte qu'un réveil planifié pour :00 ou :30 peut s'exécuter un peu en avance. L'expiration de sept jours s'applique également à la boucle.

[!NOTE]

Les intervalles choisis dynamiquement et le prompt de maintenance intégré fonctionnent sur tous les fournisseurs, et avec récupération de drapeau de fonctionnalité désactivée. Sur Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform et Microsoft Foundry, ou avec récupération désactivée, les deux nécessitent Claude Code v2.1.248 ou ultérieur.

Exécuter le prompt de maintenance intégré

Lorsque vous omettez le prompt, Claude utilise un prompt de maintenance intégré au lieu d'un que vous fournissez. À chaque itération, il travaille sur les éléments suivants, dans l'ordre :

  • continuer tout travail inachevé de la conversation
  • s'occuper de la demande de fusion de la branche actuelle : examiner les commentaires, les exécutions CI échouées, les conflits de fusion
  • exécuter des passes de nettoyage telles que la chasse aux bogues ou la simplification quand rien d'autre n'est en attente

Claude ne lance pas de nouvelles initiatives en dehors de cette portée, et les actions irréversibles telles que pousser ou supprimer ne procèdent que lorsqu'elles continuent quelque chose que la transcription a déjà autorisé.

/loop

Un /loop nu exécute ce prompt à un intervalle choisi dynamiquement. Ajoutez un intervalle, par exemple /loop 15m, pour l'exécuter selon un calendrier fixe à la place. Pour remplacer le prompt intégré par le vôtre, consultez Personnaliser le prompt par défaut avec loop.md.

Personnaliser le prompt par défaut avec loop.md

Créez un fichier loop.md pour remplacer le prompt de maintenance intégré par vos propres instructions. Il définit un seul prompt par défaut pour un /loop nu, pas une liste de tâches planifiées séparées, et Claude Code l'ignore chaque fois que vous fournissez un prompt sur la ligne de commande. Pour planifier des prompts supplémentaires à côté de celui-ci, utilisez /loop <prompt> ou demandez directement à Claude.

Claude recherche le fichier dans deux emplacements et utilise le premier qu'il trouve.

Chemin Portée
.claude/loop.md Au niveau du projet. Prend la priorité quand les deux fichiers existent.
~/.claude/loop.md Au niveau de l'utilisateur. S'applique dans tout projet qui ne définit pas le sien.

Le fichier est du Markdown simple sans structure requise. Écrivez-le comme si vous tapiez le prompt /loop directement. L'exemple suivant maintient une branche de version saine :

Check the `release/next` PR. If CI is red, pull the failing job log,
diagnose, and push a minimal fix. If new review comments have arrived,
address each one and resolve the thread. If everything is green and
quiet, say so in one line.

Les modifications apportées à loop.md prennent effet à la prochaine itération, vous pouvez donc affiner les instructions pendant qu'une boucle s'exécute. Quand aucun loop.md n'existe dans l'un ou l'autre emplacement, la boucle revient au prompt de maintenance intégré. Gardez le fichier concis : le contenu au-delà de 25 000 octets est tronqué.

Arrêter une boucle

En mode autonome, Claude peut également terminer la boucle de lui-même une fois que la tâche est terminée. Claude appelle l'outil ScheduleWakeup avec stop: true, ce qui annule le réveil en attente immédiatement. Si une itération se termine sans reprogrammer ni arrêter, Claude Code planifie un réveil de secours environ 20 minutes plus tard et termine la boucle quand cette itération ne reprogramme pas non plus.

Se détacher sans arrêter une boucle

Lorsque vous êtes attaché à une session en arrière-plan et que Claude est inactif, appuyez deux fois sur Ctrl+C sur un prompt vide pour vous détacher. Une boucle autonome qui y attend sa prochaine itération continue de s'exécuter, et cette itération démarre comme prévu. Pour plutôt arrêter la boucle, appuyez sur Esc avant de vous détacher. Se détacher avec Ctrl+C sans arrêter la boucle nécessite Claude Code v2.1.295 ou ultérieur.

Définir un rappel ponctuel

Pour les rappels ponctuels, décrivez ce que vous voulez en langage naturel au lieu d'utiliser /loop. Claude planifie une tâche à usage unique qui se supprime après son exécution.

remind me at 3pm to push the release branch
in 45 minutes, check whether the integration tests passed

Claude épingle l'heure d'exécution à une minute et une heure spécifiques en utilisant une expression cron et confirme quand elle s'exécutera.

Gérer les tâches planifiées limitées à la session

Demandez à Claude en langage naturel de lister ou d'annuler les tâches, ou référencez directement les outils sous-jacents.

what scheduled tasks do I have?
cancel the deploy check job

Voici les outils sous-jacents que Claude utilise :

Outil Objectif
CronCreate Planifier une nouvelle tâche. Accepte une expression cron à 5 champs, le prompt à exécuter et si elle est récurrente ou s'exécute une seule fois.
CronList Lister les tâches planifiées avec leurs ID, leurs calendriers, leurs prochaines heures d'exécution et leurs prompts.
CronDelete Annuler une tâche par ID.

Chaque tâche planifiée a un ID de 8 caractères que vous pouvez passer à CronDelete. Une session peut contenir jusqu'à 50 tâches planifiées à la fois.

Comment les tâches planifiées limitées à la session s'exécutent

Le planificateur vérifie chaque seconde les tâches dues et les met en file d'attente à faible priorité. Un prompt planifié s'exécute entre vos tours, pas pendant que Claude répond. Si Claude est occupé quand une tâche arrive à échéance, le prompt attend la fin du tour actuel.

Tous les horaires sont interprétés dans votre fuseau horaire local. Une expression cron comme 0 9 * * * signifie 9h là où vous exécutez Claude Code, pas UTC.

Gigue

Une tâche planifiée peut s'exécuter à un moment différent de celui indiqué par sa planification. Si les tâches de chaque session s'exécutaient exactement à l'heure prévue, beaucoup d'entre elles appelleraient l'API au même moment. Claude Code décale donc l'heure d'exécution de chaque tâche. Les tâches récurrentes s'exécutent en retard, sauf une tâche qui s'exécute toutes les cinq minutes, écrite */5 * * * *. Les tâches ponctuelles planifiées à l'heure pile ou à la demie s'exécutent un peu en avance.

Pour savoir quand une tâche arrive à sa prochaine échéance, lisez la ligne sous l'appel CronCreate de Claude dans votre terminal. La ligne affiche cette heure après la planification, par exemple next run 10:21 AM. Pour vérifier de nouveau plus tard, demandez à Claude de lister vos tâches et recherchez next run dans les lignes sous l'appel CronList. L'affichage des prochaines heures d'exécution dans ces lignes nécessite Claude Code v2.1.299 ou une version ultérieure.

Quel retard pour une tâche récurrente

Sauf si elle s'exécute toutes les cinq minutes, une tâche récurrente démarre chaque exécution avec un retard pouvant atteindre la moitié de l'intervalle jusqu'à l'exécution suivante, et au plus 30 minutes. Votre tâche correspond à l'un de ces trois cas :

  • Exécutions régulièrement espacées : une tâche avec des intervalles égaux, par exemple toutes les heures, quotidiennement ou toutes les 10 minutes, s'exécute avec le même nombre de minutes de retard à chaque fois, y compris lorsque la session est inactive.
  • Exécutions irrégulièrement espacées : une tâche avec des intervalles inégaux, par exemple une tâche planifiée pour :00 et :15 chaque heure, peut s'exécuter avec un nombre de minutes de retard différent à chacune.
  • Toutes les cinq minutes : une tâche écrite */5 * * * * n'est pas retardée. Une exécution exactement cinq minutes après la précédente démarrerait après l'expiration d'un cache de prompt de cinq minutes, donc chaque exécution démarre 15 secondes plus tôt.

Trouvez votre planification dans la première colonne de ce tableau pour voir quand chacune de ses exécutions démarre.

Planification Démarrage de chaque exécution
Toutes les 5 minutes, écrite */5 * * * *, ce que crée /loop 5m 4 minutes 45 secondes après l'exécution précédente
Toutes les 10 minutes 0 à 5 minutes de retard
Toutes les 30 minutes 0 à 15 minutes de retard
Toutes les heures, ou moins souvent, par exemple quotidiennement 0 à 30 minutes de retard

Par exemple, 7,37 * * * * planifie une tâche pour :07 et :37, qui sont espacés de 30 minutes, donc son délai est compris entre 0 et 15 minutes. Si le délai de cette tâche est de 14 minutes, elle s'exécute à :21 et :51 toutes les heures. Changer la planification pour une autre minute déplace l'heure d'exécution, et un délai s'y ajoute toujours.

Quand une tâche ponctuelle s'exécute en avance

Une tâche ponctuelle planifiée pour :00 ou :30 s'exécute jusqu'à 90 secondes en avance. Claude Code ne décale pas une tâche ponctuelle planifiée pour toute autre minute. Si le timing est important, planifiez-la en dehors de l'heure pile et de la demie : 3 9 * * * au lieu de 0 9 * * *.

Expiration de sept jours

Les tâches récurrentes expirent automatiquement 7 jours après leur création. La tâche s'exécute une dernière fois, puis se supprime. Cela limite la durée pendant laquelle une boucle oubliée peut s'exécuter. Si vous avez besoin qu'une tâche récurrente dure plus longtemps, annulez et recréez-la avant son expiration, ou utilisez les tâches planifiées dans le cloud ou les tâches planifiées sur le bureau pour une planification durable.

Référence d'expression cron

CronCreate accepte les expressions cron standard à 5 champs : minute hour day-of-month month day-of-week. Tous les champs prennent en charge les caractères génériques (*), les valeurs uniques (5), les étapes (*/15), les plages (1-5) et les listes séparées par des virgules (1,15,30).

Exemple Signification
*/5 * * * * Toutes les 5 minutes
0 * * * * Chaque heure à l'heure pile
7 * * * * Chaque heure à 7 minutes passées
0 9 * * * Chaque jour à 9h local
0 9 * * 1-5 Jours de semaine à 9h local
30 14 15 3 * 15 mars à 14h30 local

Le jour de la semaine utilise 0 ou 7 pour dimanche jusqu'à 6 pour samedi. La syntaxe étendue comme L, W, ? et les alias de noms tels que MON ou JAN ne sont pas pris en charge.

Lorsque le jour du mois et le jour de la semaine sont tous deux contraints, une date correspond si l'un ou l'autre champ correspond. Cela suit la sémantique standard de vixie-cron.

Désactiver les tâches planifiées limitées à la session

Définissez CLAUDE_CODE_DISABLE_CRON=1 dans votre environnement pour désactiver complètement le planificateur. Les outils cron et /loop deviennent indisponibles, et toutes les tâches déjà planifiées cessent de s'exécuter. Consultez Variables d'environnement pour la liste complète des drapeaux de désactivation.

Limitations

La planification limitée à la session a des contraintes inhérentes :

  • Les tâches ne s'exécutent que pendant que Claude Code s'exécute et est inactif. Fermer le terminal ou laisser la session se terminer arrête leur exécution. Mettre la session en arrière-plan transfère les tâches /loop vers une session en arrière-plan, qui continue de s'exécuter sans terminal.
  • Pas de rattrapage pour les exécutions manquées. Si l'heure planifiée d'une tâche passe pendant que Claude est occupé par une demande longue, elle s'exécute une fois quand Claude devient inactif, pas une fois par intervalle manqué.
  • Dans une session en arrière-plan, une boucle à rythme personnel s'arrête si son prochain réveil arrive à échéance alors que le processus de la session ne s'exécute pas, par exemple après un plantage. Quand le processus redémarre, la transcription affiche un avis indiquant que le réveil ne se déclenchera pas. Pour poursuivre la boucle, répondez à la session et demandez à Claude de la maintenir en cours d'exécution.
  • Quand vous reprenez une session avec claude --resume ou claude --continue, Claude Code restaure les tâches planifiées avec CronCreate, sauf les tâches récurrentes qui ont expiré et les tâches ponctuelles dont l'heure planifiée a passé. Une boucle /loop à rythme personnel n'est pas restaurée, donc exécutez /loop à nouveau pour la redémarrer.
  • Une tâche récurrente restaurée ne s'exécute pas pour les exécutions manquées pendant que la session ne s'exécutait pas. Sa prochaine exécution est la première prévue après la reprise, et le jitter s'applique à cette exécution.
  • Quand vous reprenez avec claude --resume ou claude --continue, Claude Code ne redémarre pas les commandes Bash en arrière-plan ni les moniteurs qui s'exécutaient à la fin de la session. Si vous en avez encore besoin, demandez à Claude de les relancer.
  • Avec la récupération des drapeaux de fonctionnalités désactivée, Claude Code stocke une tâche que vous avez demandé de conserver entre les sessions dans le fichier .claude/scheduled_tasks.json du projet. Quand le répertoire .claude ou ce fichier est un lien symbolique, Claude Code retourne une erreur au lieu de planifier la tâche. Une tâche enregistrée s'exécute uniquement dans le dossier du projet où vous l'avez créée. Si vous copiez le fichier dans un autre dossier, comme une nouvelle worktree, les sessions là-bas listent les tâches copiées mais ne les exécutent pas, donc créez la tâche à nouveau dans ce dossier.

Pour l'automatisation pilotée par cron qui doit s'exécuter sans surveillance :