cronn

cronn is a skill for Claude Code, Codex from umputun/agterm. It costs 119 tokens per session (2,336 once invoked), scanned A, original, MIT.

A tool for installing and controlling scheduled jobs on a Mac. It runs as a macOS background login service, stores jobs in one YAML file, and provides a local dashboard and read-only status API.

In plain words
What is it for?
Use it to install cronn, add or remove jobs, list what is scheduled, see what runs next, check its status, or run a scheduled job now.
Why use it?
It gives scheduled commands one place to install, inspect, start, stop, and report on, including jobs that open agterm terminal sessions.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to install cronn, add or remove jobs, list what is scheduled, see what runs next, check its status, or run a scheduled job now.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/umputun/agterm/scheduled-jobs
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add umputun/agterm --skill scheduled-jobs
Clone the repo
git clone --depth 1 https://github.com/umputun/agterm

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for cronn

README.md
[![agentmods](https://agentmods.dev/badge/skills/umputun/agterm/scheduled-jobs/github.svg)](https://agentmods.dev/skills/umputun/agterm/scheduled-jobs)
Your own site
<a href="https://agentmods.dev/skills/umputun/agterm/scheduled-jobs"><img src="https://agentmods.dev/badge/skills/umputun/agterm/scheduled-jobs/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for cronn

Your own site · 80×15
<a href="https://agentmods.dev/skills/umputun/agterm/scheduled-jobs"><img src="https://agentmods.dev/badge/skills/umputun/agterm/scheduled-jobs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 119 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,336 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00119 $0.02336
Opus 5.5 $0.00048 $0.00934
Sonnet 5.5 $0.00024 $0.00467
Haiku 4.5 $0.00012 $0.00234

Measured yesterday against content hash c86a1e3fb167, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

cronn scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

The scan reads SKILL.md. This mod also ships 2 executable files (scripts/agent-session-job.sh, scripts/install.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -fsS "http://127.0.0.1:$CRONN_PORT/api/v1/status" >/dev/null && echo running
cookbook/scheduled-jobs/SKILL.md · 170 lines

How it starts

The opening of the file, as written. The whole thing — 170 lines — stays where its author put it; the contents beside it link to each section on GitHub.

cronn

cronn runs as a launchd agent, schedules the jobs in one YAML file and serves a dashboard and a read-only API on loopback. This skill's scripts/ directory holds the installer and a job template; paths below are relative to this skill's directory.

Is it installed

Read the settings the installer recorded, then ask the API:

. "${CRONN_CONFIG_DIR:-$HOME/.config/cronn}/cronn.env"
curl -fsS "http://127.0.0.1:$CRONN_PORT/api/v1/status" >/dev/null && echo running

When cronn.env is missing, cronn is not set up here. Tell the user what scripts/install.sh does and ask before running it: it installs the umputun/apps/cronn Homebrew formula and a LaunchAgent that starts at every login. scripts/install.sh --dry-run prints the plan and the rendered plist without changing anything. After the install, read cronn.env again. When the installer refuses because the port is taken, report the pid it names and let the user choose CRONN_PORT; never stop the other process.

When cronn.env exists but the API is down, the agent is installed and not serving; go to When something is not running.

Showing the dashboard

Inside agterm (AGTERM_SESSION_ID set), open it in an overlay:

agtermctl session overlay open --url "http://127.0.0.1:$CRONN_PORT/" --js --chromeless \
    --size-percent 80 --target "$AGTERM_SESSION_ID" --follow

--js is required: the page is htmx-driven, and without it the run and toggle buttons, the filters and the 5s refresh do nothing. --chromeless drops the strip above the page; ⌘W closes it. Leave it up for the user to close. Outside agterm, open the same URL.

The jobs file

$CRONN_CONFIG_DIR/crontab.yml is the only file cronn reads, and it rereads it every 10s, so an edit needs no restart and no reload command. The dashboard catches up within about 30s.

A file that fails to parse leaves the previous schedule running. cronn logs can't get list of jobs from ... failed to parse YAML to $CRONN_LOG_DIR/cronn.log and keeps the old jobs. After every edit, wait 15s and check both: no new parse warning in the log, and the job present in /api/v1/status. A job that does not appear is an edit that did not land.

Read the full file on GitHub · 170 lines

Files

What ships with it

4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 170 lines · 119 tokens per session scan A c86a1e3fb167

Subscribe to this mod's changes

cronn is a skill published in the GitHub repository umputun/agterm (690 stars, last pushed today), licensed MIT. It adds 119 tokens to every session and 2,336 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-21.

Related

Other skills, from other repositories

discovery-question-form

Turn-1 discovery question form for ambiguous briefs.

wolfenazz/YzPzCode · 15 tokens

od-tune-collab

Default reference pipeline for the tune-collab taskKind — pick a direction, patch-edit the existing artifact, critique, hand off.

wolfenazz/YzPzCode · 34 tokens

skin

Switch Claude Code visual themes (skins). List available skins, activate a skin, reset to defaults, or set a permanent default. USE WHEN user says '/skin', 'change skin', 'switch theme', 'activate skin', or wants to change Claude's visual appearance.

basicScandal/claude-skins · 56 tokens

orbit-general

Open Orbit briefing skill — selected by the Orbit pipeline when the user has two or more connectors connected. Pulls the past 24 hours of activity from every authenticated connector (GitHub, Linear, Notion, Slack, 飞书, Calendar, Gmail, Drive, Sentry, Vercel, …) and renders a single adaptive bento-grid dashboard at the…

wolfenazz/YzPzCode · 162 tokens

orbit-notion

Open Orbit briefing skill — selected by the Orbit pipeline when Notion is the user's only connected connector, or when the user explicitly scopes their daily digest to Notion. Pulls the past 24 hours of document edits, comments, mentions, and database row changes from the user's authenticated Notion connection and…

wolfenazz/YzPzCode · 117 tokens

orbit-gmail

Open Orbit briefing skill — selected by the Orbit pipeline when Gmail is the user's only connected connector, or when the user explicitly scopes their daily digest to Gmail. Pulls the past 24 hours of inbox activity (replies awaited, mentions, cc, auto- categorized bulk) from the user's authenticated Gmail connection…

wolfenazz/YzPzCode · 115 tokens