Harness MaxxingDocumentación
📚 Todas las páginas

💬 Usar Harness Maxxing · 6 min de lectura

⏰Tareas programadas (Crons)

La página Crons ejecuta cosas según un horario: un comando de shell o un prompt de Harness en un tema. Cada ejecución queda registrada (estado, duración, salida) y se puede notificar por Telegram.

Crear una tarea

Haz clic en Nueva tarea y rellena:

Campo Significado
Nombre etiqueta corta
Programación expresión cron; el editor la muestra en palabras y lista las próximas ejecuciones
Tipo Shell (un comando ejecutado con bash) o Claude (un prompt enviado a una sesión en un tema)
Comando shell: p. ej. /root/maxxing/projects/acme/scripts/report.sh
Tema, prompt, modelo Claude: dónde se ejecuta la sesión, qué hacer, qué modelo usar
Reutilizar sesión Claude: mantiene una misma sesión entre ejecuciones (acumula contexto) en lugar de una sesión nueva cada vez
Notificar Informe por Telegram: nunca, en caso de fallo (por defecto), siempre
Tiempo límite duración máxima (por defecto 1 hora)

Ejecutar ahora inicia una tarea de inmediato. El historial muestra las últimas ejecuciones con el final de su salida; en las tareas de Claude, un enlace abre la sesión.

Sintaxis de la programación

Cinco campos: minute hour day-of-month month day-of-week.

Expresión Se ejecuta
0 7 * * * todos los días a las 07:00
*/15 * * * * cada 15 minutos
30 8 * * 1-5 de lunes a viernes a las 08:30
0 9 1 * * el día 1 de cada mes a las 09:00
0 */6 * * * cada 6 horas
@daily, @hourly, @weekly, @monthly, @reboot atajos

Zona horaria

El demonio cron lanza las tareas en la zona horaria del sistema del servidor, mientras que la interfaz (vista previa de la programación, próximas ejecuciones, historial) usa la zona horaria de Ajustes -> General. Ambas deben ser la misma; de lo contrario, una tarea que aparece "a las 07:00" se ejecuta a otra hora. En un servidor nuevo, la zona que eliges en la configuración inicial (o en Ajustes -> General) pasa a ser también la zona del sistema; maxxing doctor avisa si difieren.

En un servidor que ya está en uso (otras tareas programadas, otros servicios), el instalador conserva el reloj del servidor (system_clock = keep en la configuración): Harness Maxxing escribe entonces la línea de crontab de cada tarea para que se lance cada hora en sus minutos, y maxxing cron run <id> --if-due comprueba la programación en tu zona antes de ejecutar. Así, las tareas se ejecutan a las horas que ves, incluido el cambio de horario de verano, y los demás programas conservan su reloj. Cambia de modo con maxxing init --system-clock keep|follow.

Para cambiar la zona del sistema a mano (modo follow):

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

Tareas integradas

  • Compactación de memoria – a diario a las 05:00, tarea de Claude que usa la skill memory-compaction (se crea durante la instalación y se activa cuando terminas la configuración inicial con Claude conectado, así nunca falla antes de que Claude esté conectado; si te saltaste ese paso, actívala en la página Crons; puedes editarla, desactivarla o eliminarla).
  • Copia de seguridad de la memoria – se crea cuando configuras la Copia de seguridad (por defecto a las 04:40).
  • Buscar actualizaciones – los lunes a las 09:00, tarea de shell maxxing update --check --notify: cuando hay una versión nueva, un mensaje de Telegram te dice que abras el tema system/harness (system/update en los servidores instalados antes de 2.0.0a33) y digas "update". Nunca se actualiza por sí sola. En un servidor sin remoto git ni licencia (una copia local) se crea desactivada (no hay nada que comprobar); entonces maxxing update --check responde "updates unavailable (no git remote)".
  • Tareas de la mañana (desactivada) – a diario a las 08:00, tarea de Claude en general/inbox (system/tasks antes de 2.0.0a33): tareas atrasadas y de hoy, enviadas por Telegram. Actívala en la página Crons.
  • Recordatorio de renovación – se crea cuando pides recordatorios de suscripciones (los lunes a las 09:30, en el tema que guarda accounts.md); los servidores instalados antes de 2.0.0a33 la tienen desactivada en system/accounts.
  • Los Proyectos iniciales añaden sus propias tareas, creadas desactivadas.

Las tareas integradas se crean una sola vez, durante la instalación (o con la actualización que las introdujo); una tarea que eliminas nunca se vuelve a crear. Con la notificación en "siempre", el informe incluye la salida de la tarea (la respuesta de una tarea de Claude), de modo que un recordatorio llega como un mensaje legible.

Cómo funciona

Cada tarea activada se convierte en una línea del crontab de root, dentro de un bloque que gestiona 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 <<<

Las líneas fuera del bloque son tuyas y nunca se tocan; se muestran en solo lectura como tareas "externas". Si la línea de cierre del bloque se borra a mano, solo las líneas maxxing cron run se consideran gestionadas: tus propias líneas posteriores se conservan. Desde un terminal: maxxing cron list, maxxing cron run <id> (la ejecuta en tu terminal y espera), maxxing cron sync (reescribe el bloque), maxxing cron deleted (las tareas eliminadas que se conservan) y maxxing cron restore <id> (recupera una). Dos ejecuciones de la misma tarea nunca se solapan.

Memoria y límites de tiempo

Una ejecución programada empieza exactamente igual que Ejecutar ahora: en su propia unidad de systemd (maxxing-cron-<id>, consulta journalctl -u maxxing-cron-<id>), de modo que una tarea voraz no pueda tumbar todo el servidor por la noche:

  • cada tarea puede usar como máximo unit_memory_max de la RAM (por defecto 75 %, el mismo límite que una sesión);
  • todas las tareas que se ejecutan al mismo tiempo comparten un único presupuesto, jobs_memory_max (por defecto 75 % de la RAM, la unidad maxxing-jobs.slice). Para cambiarlo, define jobs_memory_max en /var/lib/claude-maxxing/config.json ("3G", "50%" o "" para ningún límite) y luego ejecuta maxxing init;
  • al superar su tiempo límite, una tarea de shell recibe una señal de parada y, 5 segundos después, se mata todo lo que haya iniciado, incluso un programa que ignore la señal de parada.

Cuando la tarea termina, los programas que dejó ejecutándose en segundo plano terminan con ella. Para iniciar un programa que debe seguir funcionando (un servidor, un bot), conviértelo en un servicio de systemd en lugar de una tarea cron (pídeselo a Claude). Las instalaciones hechas antes de 2.0.0-alpha.70 conservan el comportamiento anterior: sus tareas programadas se ejecutan en el proceso cron como antes, así que los programas que dejan en segundo plano siguen ejecutándose, sin los límites de memoria anteriores ("cron_keep_background": true en config.json; ponlo en false para obtener las unidades de tarea). Lo mismo ocurre con las protecciones de las sesiones y de las tareas ("unit_hardening": false ahí; true las activa).

En un servidor sin systemd (algunos contenedores), la tarea se ejecuta dentro del proceso cron: el tiempo límite sigue aplicándose, los límites de memoria no.

Los secretos marcados como "expose" en Ajustes -> Claves están disponibles como variables de entorno para las tareas de shell y las sesiones de Claude.

Una tarea de shell se ejecuta con la misma configuración de Claude que tus sesiones (la carpeta de Claude Code de Harness y la cuenta de Claude conectada en Harness), así que un script puede llamar él mismo a claude -p "...", por ejemplo un script que prepara datos, pide un texto a Claude y luego lo publica.

Consejos para las tareas de Claude

Escribe el prompt como una instrucción completa: qué producir, dónde escribirlo, qué skill usar. La tarea no tiene ninguna conversación previa a menos que "Reutilizar sesión" esté activada.

💡 ¿Atascado? Abre una sesión en el topic system › help y pregunta con tus palabras: Claude lee esta documentación en tu servidor y te responde.✏️ Mejorar esta página