crondex

Un directorio de miles de trabajos cron predefinidos que tu agente puede tomar, ajustar y programar.

Documentación

  ______________  ____  ____/ /__  _  __
 / ___/ ___/ __ \/ __ \/ __  / _ \| |/_/
 / /__/ /  / /_/ / / / / /_/ /  __/>  <
 \___/_/   \____/_/ /_/\__,_/\___/_/|_|

Trabajos cron predefinidos que cualquier agente de IA puede tomar, ajustar y programar. Un directorio, no un framework.

npm version npm downloads npm total downloads License: MIT


Funciona con Claude, Codex, Hermes, OpenClaw, o cualquier LLM con acceso a shell.

Obtener un trabajo

npx @wonsukchoi/crondex recommend "warn me before my SSL cert expires"
npx @wonsukchoi/crondex show ssl-cert-expiry-check
npx @wonsukchoi/crondex deploy ssl-cert-expiry-check --var host=example.com
  • recommend "<what you want>" — encuentra el trabajo que mejor coincida (cero tokens, sin llamada de red, para que un agente pueda verificar antes de escribir uno desde cero). La coincidencia maneja plurales, un pequeño conjunto de sinónimos basado en el catálogo (p. ej., "notify"/"warn"/"remind" coinciden con trabajos etiquetados como reminder), y recurre a coincidencia difusa (distancia de edición) para errores tipográficos cuando nada coincide exactamente.
  • list [--category x] [--tag y] / categories — explorar todo
  • show <id> — imprime el YAML completo de un trabajo
  • next <id> [--count n] — imprime las próximas N horas de ejecución para el horario de un trabajo, en su zona horaria declarada (cero tokens, sin llamada de red) — verifica un horario antes de implementarlo
  • add <id> [--dest path] — cópialo en tu proyecto para editarlo
  • init <id> [--category x] — genera un trabajo nuevo desde la plantilla
  • update <path> [--dry-run] — vuelve a extraer un trabajo que ya added/inited (coincidido por su campo id) contra el catálogo actual, imprime un diff de lo que cambió, y sobrescríbelo en su lugar. --dry-run muestra el diff sin aplicarlo.
  • deploy <id> --target <crontab|github-actions|systemd|docker|k8s-cronjob|terraform|nomad|eventbridge|cloud-scheduler> [--var name=value ...] — convierte un trabajo en algo que realmente se ejecute (línea de crontab, flujo de trabajo de GitHub Actions, temporizador systemd, Dockerfile, CronJob de k8s, recurso kubernetes_cron_job_v1 de Terraform, o un comando aws/gcloud listo). --var anula el valor predeterminado de una variable. Los trabajos hybrid se implementan command por defecto; agrega --mode prompt para el lado del prompt.
  • deploy --list-installed — muestra cada línea gestionada por crondex en tu crontab (las dejadas por --install)
  • uninstall <id> — elimina una de esas entradas de crontab instaladas
  • doctor [--json] — audita las entradas de crontab instaladas contra el catálogo: entradas huérfanas, desviación de horario, y etiquetado/obsolescencia de versiones. Sale con 1 si se encontraron problemas.
  • bundle <file.yaml> [--target <target>] [--dry-run] [--out-dir <path>] [--install] — implementa cada trabajo en un manifiesto de una sola vez (ver Bundles)

Agrega --json a list/categories/show/recommend para salida legible por máquina — útil cuando un agente analiza el resultado programáticamente en lugar de que un humano lo lea.

No se necesita instalación — npx siempre se ejecuta contra el catálogo más reciente.


Usar como servidor MCP

Omite el shell por completo — registra crondex como servidor MCP y tu agente obtiene recommend/list/categories/show/next como herramientas nativas en lugar de invocar una CLI. Solo lectura: sin escrituras en el sistema de archivos, sin acceso a crontab.

Claude Code:

claude mcp add crondex -- npx -y @wonsukchoi/crondex mcp

Cualquier otro cliente MCP (p. ej., .mcp.json, la configuración de Claude Desktop):

{
  "mcpServers": {
    "crondex": {
      "command": "npx",
      "args": ["-y", "@wonsukchoi/crondex", "mcp"]
    }
  }
}

Herramientas expuestas: crondex_recommend, crondex_list, crondex_categories, crondex_show, crondex_next_runs — cada una devuelve la misma forma JSON que el indicador --json del comando CLI correspondiente.

Pasa --allow-deploy (crondex mcp --allow-deploy, o agrégalo a los argumentos de tu cliente MCP) para optar por una herramienta más: crondex_deploy. Toma las mismas entradas que crondex deploy (id, target, vars, mode) y devuelve el texto del artefacto generado — una línea de crontab, archivo de flujo de trabajo, par de unidades systemd, etc. Es solo generación: nunca escribe un archivo, nunca toca tu crontab, y no tiene otro efecto secundario, por lo que el servidor sigue siendo seguro para apuntar a un agente incluso con --allow-deploy activado. Sin el indicador, crondex_deploy no se registra en absoluto.


Qué contiene un trabajo

Cada trabajo es un archivo YAML:

id: dependency-audit
version: 1
name: Dependency Vulnerability Audit
category: devops
schedule: "0 8 * * 1"    # standard 5-field cron
runner: hybrid            # shell | agent-prompt | hybrid
command: |                 # for runner: shell/hybrid
  ...raw shell audit, zero tokens...
prompt: |                  # for runner: agent-prompt/hybrid
  ...instructions with {{repo_path}}, LLM synthesizes+prioritizes...
script_note: what you lose by using `command` instead of `prompt`
variables:
  repo_path:
    default: "."
compatible_agents: [claude, codex, hermes, openclaw, generic]
  • shell — ejecuta command solamente. Cero tokens de LLM, determinista.
  • agent-prompt — entrega prompt a un LLM en cada ejecución. Cuesta tokens, pero puede sintetizar, priorizar y redactar prosa.
  • hybrid — incluye ambos, elige por ejecución: script para ahorrar tokens, prompt para más criterio. script_note explica el equilibrio.

{{placeholders}} se resuelven desde variables — anúlelos para tu caso, luego entrega command/prompt más schedule a cualquier programador que tengas (crontab del sistema, un cron alojado, el mecanismo de programación de tu propio agente). Este repositorio define qué ejecutar y cuándo, no el ejecutor. Especificación completa de campos: schema/job.schema.json.


Bundles

Implementa varios trabajos de una sola vez con un archivo de manifiesto:

# bundle.yaml
jobs:
  - id: ssl-cert-expiry-check
    vars:
      host: example.com
      port: "443"
  - id: dependency-audit
    vars:
      repo_path: /srv/app
  - id: cost-alert
    mode: prompt
crondex bundle bundle.yaml --target crontab --dry-run   # preview
crondex bundle bundle.yaml --target crontab --install   # install every job
crondex bundle bundle.yaml --target github-actions --out-dir .github/workflows

Cada entrada admite id (obligatorio), vars (anulaciones de variables, misma forma que deploy --var), y mode (script/prompt, para trabajos hybrid). --target crontab (el predeterminado) combina cada trabajo en una línea de crontab por trabajo; cualquier otro destino escribe un archivo (o par de archivos, para systemd/docker) por trabajo en --out-dir, o — sin --out-dir — imprime todos los artefactos concatenados con separadores de encabezado ===. --dry-run previsualiza la salida combinada sin instalar ni escribir nada.


Explorar el catálogo

La tabla siguiente se regenera con npm run build-catalog, por lo que nunca se desvía de lo que realmente está en jobs/. Para detalles completos (descripción, etiquetas, variables) usa crondex list, crondex recommend, o explora jobs/<category>/ directamente.

2639 trabajos en 66 categorías (2251 probados limpios):

categoríatrabajosprobados con smoke testdescripción
agency3532Operaciones de servicios al cliente en agencias de marketing/creativas: retainers, alcances, facturación, ciclos de revisión, nuevos negocios.
agriculture4134Operaciones agrícolas: riesgo climático, riego, equipamiento, precios de mercado.
automotive3529Operaciones de concesionarios y talleres de reparación: órdenes de reparación, piezas, vehículos de cortesía, retiros, F&I, inventario usado, CSI.
banking3535Operaciones de bancos minoristas/comunitarios y cooperativas de crédito: KYC/AML, cuentas inactivas, diferencias de caja, informes regulatorios.
childcare4338Cumplimiento y operaciones de guarderías: proporciones, vacunas, matrícula.
cleaning-services3528Operaciones de limpieza comercial/residencial y conserjería: horas de cuadrilla, verificaciones de antecedentes, limpiezas omitidas, reclamos por daños, seguridad química.
construction4134Operaciones de sitio de obra: permisos, RFI, entregas, seguridad, pagos, presupuesto vs. real.
content3518Salud del sitio/contenido: SEO, enlaces rotos, frescura, reutilización.
coworking3531Operaciones de membresías en espacios de trabajo compartidos: escritorios, reserva de salas, comunidad, comodidades.
creator3524Operaciones de influencers/creadores: calendario de contenido, publicación cruzada, patrocinios.
crypto4221Carteras, precios de gasolina, riesgo DeFi y calendarios de desbloqueo de tokens.
dental5151Operaciones de consultorios dentales: recall de higiene, reclamos, cumplimiento de expedientes, casos de laboratorio, producción.
devops5652Salud de infraestructura: respaldos, despliegues, dependencias, monitoreo.
ecommerce3527Operaciones de tienda: carritos, stock, devoluciones, reseñas.
education3728Operaciones escolares/de distrito: calificaciones, asistencia, cumplimiento de IEP, personal, instalaciones, presupuesto.
events3732Planificación de eventos: presupuesto, confirmaciones de asistencia, personal, proveedores, registro el día del evento.
fieldservice3735Operaciones de despacho: ETAs de técnicos, piezas, reclamos de garantía, contratos de mantenimiento.
finance5353Finanzas personales/empresariales: presupuestos, facturas, impuestos, suscripciones.
fitness3733Operaciones de gimnasios/estudios: membresías, utilización de clases, equipamiento.
fleet4839Operaciones de flotas de vehículos de empresa: cumplimiento, mantenimiento, seguridad, combustible, costo, programación.
gaming3727Operaciones de servidores de streaming y comunidad: horarios, parches, torneos.
government4340Operaciones del sector público: solicitudes de registros, permisos, gestión de casos de constituyentes.
growth3730Marketing de ciclo de vida: abandono, pruebas, incorporación, activación, expansión, retención, NPS.
healthcare5145Operaciones de clínicas: citas, recalls, licencias, resultados de laboratorio.
hiring3725Pipeline de reclutamiento: candidatos, ofertas, entrevistas, requisiciones.
home3734Recordatorios del hogar: mantenimiento, garantías, plantas, seguridad.
hospitality4235Operaciones hoteleras: gestión de ingresos, reservas, limpieza, experiencia del huésped, lealtad.
hr5145Operaciones de personal: nómina, incorporación, beneficios, evaluaciones, desvinculación.
insurance3729Operaciones de pólizas y aseguradoras: renovaciones, reclamos, suscripción, cumplimiento.
inventory3734Precisión de stock: conteos, merma, caducidad, exceso de inventario.
investing3730Seguimiento de carteras: precios, dividendos, rebalanceo, impuestos.
landscaping4137Operaciones de cuidado de césped/mantenimiento de terrenos: rutas de cuadrilla, contratos, registros químicos, equipamiento.
law-firm4140Operaciones de gestión de despachos de abogados: contabilidad fiduciaria, verificaciones de conflictos, plazos de casos, CLE, facturación.
learning3735Aprendizaje personal: certificaciones, cursos, tarjetas de estudio, lectura.
legal3735Contratos y plazos: NDAs, marcas registradas, tribunales, presentaciones de cumplimiento.
logistics5035Operaciones de envío: aduanas, carga, retrasos, tarifas.
manufacturing4138Operaciones de producción: tiempo de inactividad, defectos, mantenimiento, proveedores, materiales.
marketing3727Operaciones de campañas: gasto publicitario, ROAS, ranking SEO, entregabilidad, atribución, competidores, MQLs, PR.
moving-relocation3734Operaciones de empresas de mudanzas para hogar/oficina: despacho de cuadrillas, estimaciones, reclamos, cumplimiento DOT, almacenamiento en tránsito.
nonprofit3732Operaciones de recaudación de fondos: subvenciones, donantes, voluntarios, seguimientos de la junta.
payments3229Operaciones de procesadores de pagos/adquirentes de comercios: contracargos, disputas, liquidación, PCI, KYB, financiamiento.
personal3733Recordatorios de la vida diaria: facturas, hábitos, comidas, tiempo de pantalla.
petcare3733Operaciones de servicios para mascotas no médicos: peluquería, hospedaje, guardería, capacidad de perreras.
pharmacy5042Operaciones de farmacias minoristas/independientes: cola de recetas, sustancias controladas, resurtidos, reclamos PBM.
photography3735Operaciones de estudios de foto/video: entrega de galerías, autorizaciones, respaldos, licencias, retainers.
podcast3727Operaciones de programas: cadencia de publicación, invitados, patrocinadores, calificaciones.
productivity3727Hábitos de trabajo: bandeja de entrada, reuniones diarias, enfoque, reuniones, informes.
publishing3734Operaciones de libros/imprenta: plazos de manuscritos, regalías, tiradas de impresión, derechos.
realestate3737Gestión de propiedades: arrendamientos, renta, vacantes, inspecciones, impuestos.
restaurant4130Operaciones de cocina/salón: costo de alimentos, costo de mano de obra, desperdicio, inspecciones, POS, márgenes del menú.
retail3731Operaciones de tiendas físicas: conciliación de caja, listas de verificación, programación, merchandising, prevención de pérdidas, precios.
sales3731Operaciones de pipeline: prospectos, acuerdos, cuotas, sincronización de CRM.
security5144Postura de seguridad: claves, certificados, accesos, escaneos, firewalls.
self-storage3736Operaciones de instalaciones de autoalmacenamiento: alquiler de unidades, cuentas morosas/proceso de gravamen, acceso por puerta, control de clima.
senior-living4140Operaciones de instalaciones de vida asistida/cuidado de memoria: cuidado de residentes, proporciones de personal, comunicación familiar, seguridad.
short-term-rental3729Operaciones de anfitriones de Airbnb/VRBO/alquiler vacacional: limpieza de rotación, sincronización de calendario/precios, verificación de huéspedes, depósitos, permisos, impuesto de ocupación.
spa3735Operaciones de salones/spas/bienestar: ausencias sin aviso, inventario, renovaciones de licencias, abandono de membresías.
staffing4135Operaciones de agencias de personal temporal/PEO: colocaciones, hojas de tiempo, contratos de clientes, compensación laboral.
support5138Operaciones de helpdesk: SLA, backlog, CSAT, carga de trabajo de agentes.
team5150Operaciones de equipo: reuniones 1:1, guardias, PTO, aniversarios.
telecom3732Operaciones de ISP/telecomunicaciones: interrupciones, tiempo de actividad SLA, aprovisionamiento de circuitos, abandono.
travel3732Logística de viajes: vuelos, pasaportes, visas, seguros, millas.
utilities3733Operaciones de empresas de servicios eléctricos/agua/gas: interrupciones, medidores, cumplimiento regulatorio, activos de red/malla.
veterinary4132Operaciones de clínicas veterinarias: vacunas, sustancias controladas, hospedaje, programación de cirugías, registros, facturación, licencias.
warehousing4133Operaciones de instalaciones de almacén: programación de muelles, picking/packing, slotting, mano de obra, mantenimiento, seguridad.
waste-management3732Operaciones de recolección de residuos, reciclaje y vertederos/estaciones de transferencia: rutas, contaminación, tonelaje, permisos, facturación.

Diseño

crondex/
├── llms.txt               agent-discovery manifest (llms.txt convention)
├── bin/crondex.js         thin CLI entry point — parsing/routing lives in lib/cli.js
├── lib/                   cli, doctor, bundle, recommend, deploy, diff, and catalog-building logic (unit tested in test/)
├── catalog.json           generated index of every job — read this first
├── schema/job.schema.json spec every job file follows
├── jobs/                  one YAML per job, grouped by category subdirectory
└── scripts/               build-catalog.js, validate-jobs.js, lint-shell.js, check-duplicates.js, smoke-test.js

Contribuir con un trabajo

Consulta CONTRIBUTING.md — copia templates/job.template.yaml (o ejecuta crondex init), complétalo, npm run validate && npm run build-catalog, open a PR. If you're touching JS in bin/, lib/, scripts/, o test/, ejecuta npm run format y npm run lint (Biome) — CI ejecuta la misma verificación de lint. Consulta ROADMAP.md para ver qué se prioriza actualmente y qué deliberadamente aún no se ha construido.


Licencia

MIT