cronatron 
Schedule commands on macOS using launchd — a friendlier interface to launchctl.
crontabis too simple!launchdis too complex!cronatronis 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.
Metadata
Release files for cronatron 260514
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| cronatron-260514.tar.gz | 5.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cronatron-260514-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.4 kB
Release files / cronatron-260514.tar.gz
| Download URL | cronatron-260514.tar.gz |
|---|---|
| Size | 5.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac7a48224c8fdcef63e62cfba2fbed5e6327510a0111725a7712f7c3b4532b31
|
|
BLAKE2b-256 checksum How to use checksums |
10792ffeecd8b6e45efd804a29e4e13c51384031d9abee71560370027ff2147d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / cronatron-260514-py3-none-any.whl
| Download URL | cronatron-260514-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cd326ba97fcea27a97bed2d4527993bb0272dd2d2cfa0a727228987df4922ed5
|
|
BLAKE2b-256 checksum How to use checksums |
e525ff54abfdb9de3441bdcfb00bd89a6c12abaf015900b209848450fb739c4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for cronatron 260514
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.