Skip to main content

Add your description here

Project description

cronatron PyPI version

Schedule commands on macOS using launchd — a friendlier interface to launchctl.

crontab is too simple! launchd is too complex! cronatron is just right!

# Every 30 seconds
cronatron register "echo hello" --every 30

# Every day at 9:00 AM
cronatron register "echo hello" --hour 9 --minute 0

# Weekdays at 8:30 AM
cronatron register "echo hello" --hour 8 --minute 30 --weekday 1,2,3,4,5

Installation

uv tool install cronatron

# or run without installing
uvx cronatron

Usage

Scheduling

Jobs can be scheduled with calendar flags or an interval:

Calendar flags (--minute, --hour, --day, --weekday, --month) accept comma-separated values and can be combined. --every accepts a number of seconds. The two modes are mutually exclusive.

--name      -n   Label shown in list output (defaults to the command)
--minute    -m   0–59 (comma-separated)
--hour      -h   0–23 (comma-separated)
--day       -d   1–31 (comma-separated)
--weekday   -w   0–7  (comma-separated, 0 = Sunday)
--month     -M   1–12 (comma-separated)
--every     -e   Run every N seconds
--verbose   -v   Print underlying launchctl commands

Examples

# Register a named job that runs every minute
cronatron register "date >> /tmp/out.txt" --every 60 --name "timestamp"

# List jobs
cronatron list

# Tail logs for a job
cronatron logs <job-id> --follow

# Run a job right now
cronatron trigger <job-id>

# Pause / resume
cronatron pause <job-id>
cronatron resume <job-id>

# Remove a job
cronatron unregister <job-id>

# Remove everything (with confirmation prompt)
cronatron reset

State

Plists are stored in ~/Library/LaunchAgents/ and logs are written to ~/.cronatron/logs/<job-id>.log.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cronatron-260514.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cronatron-260514-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file cronatron-260514.tar.gz.

File metadata

  • Download URL: cronatron-260514.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cronatron-260514.tar.gz
Algorithm Hash digest
SHA256 ac7a48224c8fdcef63e62cfba2fbed5e6327510a0111725a7712f7c3b4532b31
MD5 11800944029e332e257bb3fa8272f0b7
BLAKE2b-256 10792ffeecd8b6e45efd804a29e4e13c51384031d9abee71560370027ff2147d

See more details on using hashes here.

File details

Details for the file cronatron-260514-py3-none-any.whl.

File metadata

  • Download URL: cronatron-260514-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.10 {"installer":{"name":"uv","version":"0.9.10"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for cronatron-260514-py3-none-any.whl
Algorithm Hash digest
SHA256 cd326ba97fcea27a97bed2d4527993bb0272dd2d2cfa0a727228987df4922ed5
MD5 aad74d98fbd6e5d11898aeed5ce57348
BLAKE2b-256 e525ff54abfdb9de3441bdcfb00bd89a6c12abaf015900b209848450fb739c4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page