Harness MaxxingDocumentation
📚 Toutes les pages

💬 Utiliser Harness Maxxing · 6 min de lecture

⏰Tâches planifiées (Crons)

La page Crons exécute des tâches selon un calendrier : une commande shell ou un prompt Harness dans un sujet. Chaque exécution est enregistrée (statut, durée, sortie) et peut être signalée sur Telegram.

Créer une tâche

Cliquez sur Nouvelle tâche et remplissez :

Champ Signification
Nom libellé court
Planification expression cron ; l'éditeur la traduit en mots et liste les prochaines exécutions
Type Shell (une commande exécutée avec bash) ou Claude (un prompt envoyé à une session dans un sujet)
Commande shell : par ex. /root/maxxing/projects/acme/scripts/report.sh
Sujet, prompt, modèle Claude : où la session s'exécute, ce qu'elle doit faire, quel modèle utiliser
Réutiliser la session Claude : conserver une même session d'une exécution à l'autre (elle accumule du contexte) au lieu d'une nouvelle session à chaque fois
Notifier Rapport Telegram : jamais, en cas d'échec (par défaut), toujours
Délai maximal durée maximale (1 heure par défaut)

Exécuter maintenant lance une tâche immédiatement. L'historique affiche les dernières exécutions avec la fin de leur sortie ; pour les tâches Claude, un lien ouvre la session.

Syntaxe de la planification

Cinq champs : minute heure jour-du-mois mois jour-de-la-semaine.

Expression S'exécute
0 7 * * * tous les jours à 07h00
*/15 * * * * toutes les 15 minutes
30 8 * * 1-5 en semaine à 08h30
0 9 1 * * le 1er de chaque mois à 09h00
0 */6 * * * toutes les 6 heures
@daily, @hourly, @weekly, @monthly, @reboot raccourcis

Fuseau horaire

Le démon cron déclenche les tâches dans le fuseau horaire système du serveur, alors que l'interface (aperçu de la planification, prochaines exécutions, historique) utilise le fuseau horaire de Paramètres -> Général. Les deux doivent être identiques, sinon une tâche affichée « à 07h00 » s'exécute à une autre heure. Sur un serveur neuf, le fuseau que vous choisissez lors de la prise en main (ou dans Paramètres -> Général) devient aussi le fuseau système ; maxxing doctor vous avertit s'ils diffèrent.

Sur un serveur déjà utilisé (autres tâches planifiées, autres services), l'installateur conserve l'horloge du serveur (system_clock = keep dans la configuration) : Harness Maxxing écrit alors la ligne crontab de chaque tâche pour qu'elle se déclenche toutes les heures à ses minutes, et maxxing cron run <id> --if-due vérifie la planification dans votre fuseau avant d'exécuter - ainsi les tâches s'exécutent bien aux heures que vous voyez, heure d'été comprise, et les autres programmes gardent leur horloge. Changez de mode avec maxxing init --system-clock keep|follow.

Pour changer le fuseau système à la main (mode follow) :

timedatectl set-timezone Europe/Paris && systemctl restart cron
maxxing init --timezone Europe/Paris && systemctl restart claude-maxxing

Tâches intégrées

  • Compactage de la mémoire – tous les jours à 05h00, tâche Claude utilisant la skill memory-compaction (créée à l'installation, activée quand vous terminez la prise en main avec Claude connecté - elle n'échoue donc jamais avant que Claude soit connecté ; si vous avez sauté cette étape, activez-la sur la page Crons ; vous pouvez la modifier, la désactiver ou la supprimer).
  • Sauvegarde de la mémoire – créée quand vous configurez la Sauvegarde (04h40 par défaut).
  • Recherche de mises à jour – le lundi à 09h00, tâche shell maxxing update --check --notify : quand une nouvelle version existe, un message Telegram vous invite à ouvrir le sujet system/harness (system/update sur les serveurs installés avant la 2.0.0a33) et à dire « update ». Elle ne met jamais à jour d'elle-même. Sur un serveur sans dépôt git ni licence (une copie locale), elle est créée désactivée (rien à vérifier) ; maxxing update --check répond alors « updates unavailable (no git remote) ».
  • Tâches du matin (désactivée) – tous les jours à 08h00, tâche Claude dans general/inbox (system/tasks avant la 2.0.0a33) : tâches en retard et du jour, envoyées sur Telegram. Activez-la sur la page Crons.
  • Rappel de renouvellement – créée quand vous demandez des rappels d'abonnements (le lundi à 09h30, dans le sujet qui contient accounts.md) ; les serveurs installés avant la 2.0.0a33 l'ont désactivée dans system/accounts.
  • Les Projets de démarrage ajoutent leurs propres tâches, créées désactivées.

Les tâches intégrées sont créées une seule fois, à l'installation (ou par la mise à jour qui les a introduites) ; une tâche que vous supprimez n'est jamais recréée. Avec la notification « toujours », le rapport inclut la sortie de la tâche (la réponse d'une tâche Claude), si bien qu'un rappel arrive sous forme de message lisible.

Comment ça marche

Chaque tâche activée devient une ligne dans la crontab de root, à l'intérieur d'un bloc géré par Harness Maxxing :

# >>> claude-maxxing (managed) >>>
0 5 * * * MAXXING_CRON_DETACH=1 /usr/local/bin/maxxing cron run c_3fa91c >/dev/null 2>&1
# <<< claude-maxxing <<<

Les lignes en dehors du bloc sont à vous et ne sont jamais touchées ; elles sont listées en lecture seule comme tâches « externes ». Si la ligne de fermeture du bloc est supprimée à la main, seules les lignes maxxing cron run sont considérées comme gérées : vos propres lignes situées après sont conservées. Depuis un terminal : maxxing cron list, maxxing cron run <id> (l'exécute dans votre terminal et attend), maxxing cron sync (réécrit le bloc), maxxing cron deleted (les tâches supprimées conservées) et maxxing cron restore <id> (en remet une en place). Deux exécutions d'une même tâche ne se chevauchent jamais.

Mémoire et limites de temps

Une exécution planifiée démarre exactement comme Exécuter maintenant : dans sa propre unité systemd (maxxing-cron-<id>, voir journalctl -u maxxing-cron-<id>), de sorte qu'une tâche gourmande ne peut pas faire tomber tout le serveur pendant la nuit :

  • chaque tâche peut utiliser au maximum unit_memory_max de la RAM (75 % par défaut, le même plafond qu'une session) ;
  • toutes les tâches qui s'exécutent en même temps se partagent un seul budget, jobs_memory_max (75 % de la RAM par défaut, l'unité maxxing-jobs.slice). Pour le modifier, définissez jobs_memory_max dans /var/lib/claude-maxxing/config.json ("3G", "50%", ou "" pour aucune limite), puis lancez maxxing init ;
  • une fois son délai dépassé, une tâche shell reçoit un signal d'arrêt, puis 5 secondes plus tard tout ce qu'elle a lancé est tué, même un programme qui ignore le signal d'arrêt.

Quand la tâche se termine, les programmes qu'elle a laissés tourner en arrière-plan s'arrêtent avec elle. Pour lancer un programme qui doit continuer à tourner (un serveur, un bot), faites-en plutôt un service systemd qu'une tâche cron (demandez à Claude). Les installations faites avant la 2.0.0-alpha.70 gardent l'ancien comportement : leurs tâches planifiées s'exécutent dans le processus cron comme avant, donc les programmes qu'elles laissent en arrière-plan continuent de tourner, sans les plafonds mémoire ci-dessus ("cron_keep_background": true dans config.json ; mettez false pour obtenir les unités de tâche). Même chose pour les protections des sessions et des tâches ("unit_hardening": false ; true les active).

Sur un serveur sans systemd (certains conteneurs), la tâche s'exécute dans le processus cron : le délai maximal s'applique toujours, mais pas les limites de mémoire.

Les secrets marqués « expose » dans Paramètres -> Clés sont disponibles comme variables d'environnement pour les tâches shell et les sessions Claude.

Une tâche shell s'exécute avec la même configuration Claude que vos sessions (le dossier Claude Code de Harness et le compte Claude connecté dans Harness), de sorte qu'un script peut lui-même appeler claude -p "..." - par exemple un script qui prépare des données, demande un texte à Claude, puis le publie.

Conseils pour les tâches Claude

Rédigez le prompt comme une instruction complète : ce qu'il faut produire, où l'écrire, quelle skill utiliser. La tâche n'a aucune conversation précédente, sauf si « Réutiliser la session » est activé.

💡 Bloqué ? Ouvrez une session dans le topic system › help et posez votre question avec vos mots : Claude lit cette doc sur votre serveur et vous répond.✏️ Améliorer cette page