Agenda is a light-weight job scheduling library for Node.js with a pluggable backend architecture. The core library provides scheduling (cron, human-readable intervals, debounce), concurrency control, distributed locking, retries with composable backoff strategies, unique job constraints, and persistent job logging. It supports three official backends (MongoDB, PostgreSQL, Redis) via clean abstractions (JobRepository, NotificationChannel, JobLogger) that can be mixed and matched. The monorepo also includes two companion applications: agendash (a Vue 3 web dashboard for monitoring and managing jobs with real-time SSE updates) and agenda-rest (a Koa-based REST API server with CLI entry point). The codebase is fully TypeScript, ESM-only (v6), uses pnpm workspaces, changesets for versioning, Vitest for testing, and has extensive shared test suites that ensure backend interoperability. The architecture demonstrates strong separation of concerns, but there is some code duplication across backends and legacy v4 documentation that could cause confusion.
This is a Claude Code plugin that enables scheduling recurring and one-time tasks using native OS schedulers (launchd on macOS, crontab on Linux, Task Scheduler on Windows). Users describe tasks in natural language (e.g., 'every weekday at 9am review yesterday's code'), and the plugin converts that to cron expressions, registers the task with the OS scheduler, and executes `claude -p "prompt"` at the scheduled time. It supports autonomous execution with `--dangerously-skip-permissions`, git worktree isolation for tasks that modify code (creates a branch, runs Claude, commits and pushes changes), and provides commands to list, remove, run, and view logs of scheduled tasks. The architecture is modular: platform-specific scheduler implementations inherit from a base class, cron parsing and humanization are separate utilities, and execution history is stored as JSONL files. The codebase demonstrates strong security awareness with shell escaping, input validation via Zod schemas, and careful handling of user-provided values in generated shell scripts.