cron-job-operations

Diagnose Hermes cronjob scheduling, output retrieval, and Discord DM delivery issues.

Updated Jul 27, 2026
One-click install
npx skills add https://github.com/moistalgia/hermes-tools --skill cron-job-operations-moistalgia
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: cron-job-operations
Source: https://github.com/moistalgia/hermes-tools/tree/main/skills-from-hermes/homeserver-infrastructure/cron-job-operations
Command: npx skills add https://github.com/moistalgia/hermes-tools --skill cron-job-operations-moistalgia

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Cron jobs that fire at the wrong time, produce unreachable output files, or fail to deliver Discord DMs are hard to debug without deployment-specific knowledge. This Skill captures locally-verified facts about how the Hermes scheduler, manual runs, and DM delivery actually behave on this homeserver deployment. ## Core Features & Use Cases - Timezone Debugging: Explains that bare cron expressions evaluate in server local time (America/New_York), not UTC, and shows how to verify via the UTC offset on next_run_at from cronjob(action='list'). - Output Retrieval: Documents that cron transcript files on the Windows host are unreachable from the container, and that session_search on the cron_<job_id>_<timestamp> session is the working alternative. - Discord DM Delivery: Provides the verified pattern for DM delivery — deliver: local plus an explicit mcp__discordmessenger__discord_dm call made exactly once. - Use Case: A user reports a job "didn't fire at 7am." Load this Skill to check the offset suffix on next_run_at, discover the job was actually scheduled for 11am local time, and correct the cron expression without layering a bogus UTC conversion. ## Quick Start Ask the agent to check why a Hermes cronjob fired at the wrong time by listing the job and inspecting the timezone offset on its next_run_at timestamp.

Frequently Asked Questions about cron-job-operations

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why did my cron job fire at the wrong time?▼

Cron expressions in Hermes evaluate against the server's local timezone, not UTC. Check the UTC offset suffix on next_run_at from cronjob(action='list'); if the hour matches your expression, the scheduler is using local time and no manual UTC conversion is needed.

How do I check a cron job's schedule and last run time?▼

Run cronjob(action='list') and inspect the next_run_at and last_run_at timestamps. The offset suffix (for example -04:00) reveals which timezone the scheduler used, making it the source of truth for when the job actually fires.

Why can't I find cron output files from the container?▼

Cron transcripts are written to the Windows host path under AppData\Local\hermes\cron\output, which is not mounted into the container. Use session_search on the cron run's session, named cron_<job_id>_<timestamp>, to read the full output instead.

How do I send a Discord DM from a cron job?▼

Give the job the mcp-discordmessenger toolset, set deliver: local to suppress default delivery, and have the prompt call mcp__discordmessenger__discord_dm exactly once with a named user. Relying on cron's built-in delivery target breaks with Unknown Channel 404 errors.

How do I manually run a cron job without a timeout?▼

Use cronjob(action='run', job_id=...), which executes via background delegation and returns immediately, so no synchronous request-timeout ceiling applies. The completion message includes a head-truncated preview of the job's output.