Guide · Agent skill
How to use the Agent Self-Scheduling agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
Agent Self-Scheduling is a skill for AI agents that teaches them to set up work that repeats on its own, such as checking a repository every 10 minutes or sending a daily summary. It is aimed at developers who want an agent to monitor something on a schedule, and at operators who need regular reports with clear stop conditions and logs. After following this guide you will know how to install the skill, ask for a scheduled task in plain language, and check that the schedule actually runs.
Quick start
- 1Download and unzip the skill. Get the ZIP from this page and unzip it so SKILL.md sits in a skill folder under ~/.claude/skills/ or your project's .claude/skills/.
- 2Confirm your agent host and scheduler. Check which host you use and whether it has a supported scheduler. Use a system scheduler such as cron or systemd for external clocks, or the Hermes gateway for built-in jobs.
- 3Describe the task precisely. State what should run, how often, the timezone, where to send results, and when it should stop.
- 4Let the agent create the schedule. Ask the agent to set it up. It should update any matching existing job rather than duplicate it.
- 5Test one run by hand. Run the wrapped command once and confirm clean JSON output with exit code 0, or trigger a Hermes run-now.
- 6Check the log or job list. Wait one interval and confirm the log file grows, or run hermes cron list and check next_run.
- 7Keep a way to stop it. Confirm you have a working disable or remove command before you walk away from the schedule.
What the skill makes the agent do
A skill is a folder containing a SKILL.md file that gives an AI agent extra instructions for a specific kind of task. This one covers recurring work. It explains how to choose between an external clock, such as cron or a systemd timer, and a built-in scheduler, such as the Hermes gateway.
The skill also sets rules that protect you. The agent should only schedule work when you directly ask for it, should update an existing matching job instead of creating a duplicate, and should check that scheduled runs fire before reporting success. It warns against very fast model-calling loops and indefinite loops.
- Uses a one-shot agent run wrapped in cron or a systemd timer (Camp A), or Hermes' built-in scheduler (Camp B)
- Preserves your timezone, cadence, notification preferences and stop conditions
- Stays quiet when nothing has changed unless you asked for periodic updates
- Does not send external messages or post publicly without explicit authorization
Install the agent-self-scheduling skill
Download the ZIP from the skill's page in this directory and unzip it. For a personal install, place the unzipped folder in ~/.claude/skills/. For a single project, place it in that project's .claude/skills/ folder. Either way, the folder should contain SKILL.md.
If you use the Claude apps, you can instead upload the skill under Settings → Capabilities → Skills.
- Personal install: ~/.claude/skills/
- Project install: .claude/skills/ inside your project
- Claude apps: Settings → Capabilities → Skills
Trigger the skill with a natural request
You do not need a special command. Describe the recurring work in plain language and state what should run, how often, and when it should stop. The skill needs those details, so a vague request such as 'keep an eye on this' will not be enough.
Mention your notification preference too. The skill preserves timezone, cadence and notification settings, and it will not message anyone externally unless you have authorized that.
- Check the test suite every 10 minutes and tell me when it fails. Stop after 6 hours.
- Send me a summary of open issues in this repository every weekday at 9am, local time.
- Every hour, check whether the build process is still running and report only if it stops.
Choose an external clock or a built-in scheduler
Camp A is for one-shot agents that run once and exit. Each run starts fresh, so the prompt must carry enough context, or the task must resume a recorded session ID. You own the clock, using cron or a systemd timer. Example cron line from the source, running every 10 minutes:
Camp B is for the Hermes built-in scheduler. The Hermes gateway checks for due jobs every 60 seconds and runs each one in a fresh isolated session. Cron-style expressions, intervals such as 'every 1h', and one-shot delays such as '30m' are all accepted.
- cron: minimum granularity of one minute
- systemd timer: Linux, survives reboot, better logging
- Hermes gateway: ticks every 60 seconds, install with hermes gateway install
- Pi has no built-in scheduler, so use an external clock
- cmux has no scheduler, so use cmux notify with terminal hooks where possible
*/10 * * * * cd /path/to/project && pi run "check X and report" >> ~/agent.log 2>&1Set up a Hermes recurring job
Once the gateway is installed, create jobs with hermes cron create. Each job takes a schedule, a prompt, and optionally a skill. The source lists three examples: an interval, a cron expression, and a one-shot delay.
Do not schedule from inside a scheduled job. Scheduled sessions cannot create more cron jobs. Also remember that each run is a fresh session, so the prompt must include all the context the job needs.
- Verify with hermes cron list, which shows the job and its next_run time
- Trigger a run-now to confirm delivery before relying on the schedule
hermes gateway install
hermes cron create "every 1h" "summarize new emails and report" --skill himalaya
hermes cron create "0 9 * * *" "post daily standup"
hermes cron create "30m" "one-shot reminder in 30 min"Use a heartbeat for many checks
If you have several checks with different frequencies, the skill suggests one fast recurring tick that reads a task list and the last_run timestamp for each task, then acts only on tasks that are due. In Hermes, use a recurring job, and use zero-token mode when nothing is due. Outside Hermes, use a while-sleep loop.
Define active hours, and keep the tick silent when nothing is due so you do not receive empty notifications.
- Store a last_run timestamp per task
- Define active hours
- Silent when nothing is due
Verify the schedule before you rely on it
The skill expects the agent to test the setup before reporting success. For an external clock, check that the log file grows after one interval, or run the wrapped command once by hand and confirm it returns clean JSON with exit code 0. For Hermes, confirm the job appears in hermes cron list.
Also confirm least-privilege permissions, overlap protection, bounded retries and timeouts, private logs, and a working way to disable or remove the job.
- Log file grows after one interval, or manual run returns clean JSON and exit 0
- hermes cron list shows the job with a sane next_run
- Overlap protection, bounded retries, timeouts, private logs, and a disable or remove path are in place
What people use it for
- Run a test suite every 10 minutes and report only when it fails
- Send a daily summary of open issues in a repository at a set time
- Check whether a long-running process is still alive and report if it stops
- Summarize new emails every hour in Hermes, using the himalaya skill
- Send a one-shot reminder 30 minutes from now through a Hermes job
Frequently asked questions
Is the agent-self-scheduling skill free?
The skill is published under the MIT licence, according to the source. Check the license_source link in SKILL.md for the full licence text. Any costs come from the agent host and the model calls your scheduled tasks make.
What do I need to use it?
You need an agent host such as Claude Code, Codex, Pi, cmux, or Hermes. For external clocks you also need cron or systemd, and for built-in scheduling you need the Hermes gateway. The task itself may need its own credentials, since the skill does not specify any API keys.
How do I install agent-self-scheduling in Claude Code?
Download the ZIP from this page and unzip it into ~/.claude/skills/ for a personal install, or into your project's .claude/skills/ folder for one project. In the Claude apps, upload it under Settings → Capabilities → Skills.
Does this skill run scripts or use the network?
The listing says it runs scripts and does not use the network. Scheduled tasks can still run commands that have their own effects, so review what each scheduled prompt asks the agent to do before you start it.
Can the agent schedule jobs by itself?
No. The skill says scheduling needs a direct request from you, and a guide or task-list entry is not permission to create background work. It also forbids external messages or public posts without explicit authorization.
Why isn't my cron job running?
Check that the log file grows after one interval and that the command runs cleanly when you execute it by hand. Also confirm the agent's permissions are set narrowly enough to run unattended, because a permission prompt can hang an unattended run. Cron has a one-minute minimum granularity.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits developers and operators who want an agent to check something or report on a regular schedule, and who can clearly state the task, cadence and stop condition. It is a poor fit if you want unattended agents with broad permissions, or tasks that send messages or post publicly without prior approval. Choose a plain cron job or a dedicated monitoring tool if you only need a fixed script to run on a timer.
Download the skill