cross-platform-scheduler

SkillProductivity

YALC 1.0, the open-source Clay alternative. MIT, CLI-first, self-hosted, runs in Claude Code. Yalc today is an intelligent orchestration layer that runs pre configured GTM agents on your existing tech stack (CRM, sequencer and call recorder) → yalc.ai

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the cross-platform-scheduler skill

What this skill tells your AI

The instructions your AI receives, as published by othmane-khadri/yalc-the-gtm-operating-system in .claude/skills/cross-platform-scheduler/SKILL.md and read by ahel’s review.

Manage the YALC cross-platform background agent scheduler — start it, check status, or show setup instructions for keeping it alive across reboots.

Triggers

Use this skill when the user says:

  • "start my scheduled agents"
  • "is my scheduler running"
  • "how do I run agents on Windows"
  • "set up scheduled agents"
  • "agent cron", "cron for agents", "schedule agents"
  • "keep agents running in the background"
  • "scheduler status"

What this skill does

YALC background agents are defined as YAML files in ~/.gtm-os/agents/. The cross-platform scheduler reads those YAMLs and runs each agent on its declared schedule using node-cron — no OS-level plumbing, works on macOS, Windows, and Linux.

Procedure

Step 1 — Check for agent YAMLs

Run:

npx tsx src/cli/index.ts scheduler:status

If output is "No agents found", the user needs to install a framework first (framework:install <name>) or create a custom agent (agent:create). Stop here and guide them.

Step 2 — Start the scheduler

npx tsx src/cli/index.ts scheduler:start

This is a long-lived process. It prints each registered agent and its cron expression, then runs indefinitely.

Step 3 — Keep it alive across reboots (optional)

Ask the user if they want the scheduler to survive reboots. If yes:

Any platform (requires pm2):

npm install -g pm2
pm2 start "npx tsx /path/to/yalc-internal/src/cli/index.ts scheduler:start" --name yalc-scheduler
pm2 save
pm2 startup   # follow the printed command to register with the OS

macOS only (launchd, no pm2 needed): The existing agent:install --agent <id> command still writes a launchd plist for macOS users who prefer native scheduling.

Schedule format reference

Agent YAMLs support these schedule shapes:

# Daily at 08:00
schedule:
  type: daily
  hour: 8
  minute: 0

# Weekly Monday at 09:00
schedule:
  type: weekly
  hour: 9
  minute: 0
  dayOfWeek: 1

# Every 30 minutes
schedule:
  type: interval
  intervalMinutes: 30

# Raw cron passthrough
schedule:
  type: cron
  expression: "0 9 * * 1-5"  # weekdays at 09:00

Key files

FilePurpose
src/lib/agents/cross-platform-scheduler.tsCore scheduler — reads YAMLs, registers node-cron jobs
src/lib/agents/yaml-loader.tsLoads ~/.gtm-os/agents/*.yaml
src/lib/agents/types.tsAgentSchedule type (includes expression? for cron passthrough)
src/cli/index.tsscheduler:start and scheduler:status CLI commands

Signals

GitHub stars
301
Forks
90
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
cross-platform-scheduler
Source
github.com/othmane-khadri/yalc-the-gtm-operating-system