scheduled-jobs

scheduled-jobs is a skill for Claude Code from w2ur/claude-code-setup. It costs 59 tokens per session (3,470 once invoked), scanned A, original, MIT.

A reference guide for the scheduled background tasks that run on a Mac, including why they exist and how to interpret their results. The live list of tasks comes from a separate inventory script.

In plain words
What is it for?
Use it before creating, editing, moving, or investigating a macOS LaunchAgent or other scheduled job.
Why use it?
It prevents changing or diagnosing a scheduled task from outdated notes. It also explains why common fixes can fail, especially when a task needs login credentials unavailable outside a user session.

Skill for Claude Code

Written for Claude Code: user-invocable in frontmatter. Also seen: reads .claude/ paths; mentions CLAUDE.md.

Good fit Use it before creating, editing, moving, or investigating a macOS LaunchAgent or other scheduled job.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/w2ur/claude-code-setup/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 w2ur/claude-code-setup --skill scheduled-jobs
Clone the repo
git clone --depth 1 https://github.com/w2ur/claude-code-setup

Made for: Claude Code.

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 scheduled-jobs

README.md
[![agentmods](https://agentmods.dev/badge/skills/w2ur/claude-code-setup/scheduled-jobs/github.svg)](https://agentmods.dev/skills/w2ur/claude-code-setup/scheduled-jobs)
Your own site
<a href="https://agentmods.dev/skills/w2ur/claude-code-setup/scheduled-jobs"><img src="https://agentmods.dev/badge/skills/w2ur/claude-code-setup/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 scheduled-jobs

Your own site · 80×15
<a href="https://agentmods.dev/skills/w2ur/claude-code-setup/scheduled-jobs"><img src="https://agentmods.dev/badge/skills/w2ur/claude-code-setup/scheduled-jobs.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 59 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,470 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.00059 $0.03470
Opus 5 $0.00030 $0.01735
Sonnet 5 $0.00012 $0.00694
Haiku 4.5 $0.00006 $0.00347

Measured 4d ago against content hash 20af7cb283b9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

scheduled-jobs 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 4d ago.

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.

`~/.local/bin`; `gh` and `uv` from `/opt/homebrew/bin`. `jq` and `curl` are Apple's
skills/scheduled-jobs/SKILL.md · 214 lines

How it starts

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

Scheduled jobs — the reasons

Current state is derived, never written here. Run ~/.claude/scripts/jobs-inventory.sh (add --json) for the live list: label, schedule, program, log, log age, last exit. This file holds only what cannot be derived — the judgment behind each job. Never add a count, a roster, or a file list to this file. Every count previously kept in prose here drifted.

Exit convention, portfolio-wide: 0 = healthy · 1 = a finding · 2 = could not run = unknown, never "healthy" and never "nothing to do". A mounted-but-empty volume, an empty catalogue, an unauthenticated API returning zero rows — all are unknown.

Cross-cutting rules

Never schedule anything that reads the login keychain from crontab. Four instances, each found the hard way: claude's OAuth credentials, gh's OAuth token (~/.config/gh/hosts.yml carries no oauth_token: line), an IMAP password, and the Elenchus status secret. A crontab job runs outside the GUI login session, so login.keychain-db is absent from its search list. The failures are silent, not loud: claude reports Not logged in; gh returns HTTP 401; the security lookup returns an empty string with no error, so the job reports "nothing new" forever. Remedy is a LaunchAgent in ~/Library/LaunchAgents/, which runs inside the GUI session. Do not "fix" it by adding USER= — real cron already sets it; that is a red herring that mimics the PATH bug below.

Every plist carries its own EnvironmentVariables.PATH. launchctl getenv PATH returns nothing here, so a plist without it inherits launchd's built-in /usr/bin:/bin:/usr/sbin:/sbin. Real dependencies: node/npm from fnm's ~/.local/share/fnm/aliases/default/binalways the aliases/default symlink, never a node-versions/<v> path, which one fnm install re-arms; claude from ~/.local/bin; gh and uv from /opt/homebrew/bin. jq and curl are Apple's in /usr/bin and need nothing. fnm's node is v24, Homebrew's is v26, and Vercel caps at 24 — falling through to the Homebrew binary builds on a version the deploy platform refuses. Check which -a before asserting a binary needs Homebrew.

Read the full file on GitHub · 214 lines

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. 4d ago Changed · +17 lines 20af7cb283b9
  2. 9d ago First seen · 197 lines · 59 tokens per session scan A cb4a8d758e80

Subscribe to this mod's changes

scheduled-jobs is a skill published in the GitHub repository w2ur/claude-code-setup (2 stars, last pushed 4d ago), licensed MIT. It adds 59 tokens to every session and 3,470 once invoked, about $0.0003 per session on Opus 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-08-31.

Related

Other skills, from other repositories

pr-triage

4-phase PR backlog management with audit, deep code review, validated comments, and optional worktree setup. Use when triaging pull requests, catching up on pending code reviews, or managing a backlog of open PRs. Args: 'all' to review all, PR numbers to focus (e.g. '42 57'), 'en'/'fr' for language, no arg = audit…

FlorianBruniaux/claude-code-plugins · 86 tokens

audit-agents-skills

Audit Claude Code agents, skills, and commands for quality and production readiness. Use when evaluating skill quality, checking production readiness scores, or comparing agents against best-practice templates.

FlorianBruniaux/claude-code-plugins · 41 tokens

eval-agents

Audit Claude Code agents defined in .claude/agents/ for description specificity, model tier appropriateness, tools scoping, and system prompt quality. Detects dispatch ambiguity between agents, flags over-permissive tool grants, and checks for human-in-the-loop patterns that break programmatic orchestration. Use when…

FlorianBruniaux/claude-code-plugins · 93 tokens

check-cache-bugs

Audit Claude Code setup for cache bugs (CC#40524): sentinel, --resume/--continue, attribution header + ArkNill B3/B4/B5.

FlorianBruniaux/claude-code-plugins · 38 tokens

issue-triage

3-phase issue backlog management with audit, deep analysis, and validated triage actions. Use when triaging GitHub issues, sorting bug reports, cleaning up stale tickets, or detecting duplicate issues. Args: 'all' to analyze all, issue numbers to focus (e.g. '42 57'), 'en'/'fr' for language, no arg = audit only.

FlorianBruniaux/claude-code-plugins · 81 tokens

git-ai-archaeology

Analyze AI config evolution in a git repo. Use when mapping AI adoption history, finding when configs were first introduced, charting commit velocity by month, or identifying maturity phases in a project's AI tooling.

FlorianBruniaux/claude-code-plugins · 47 tokens