Skip to main content

Licence Gitea Release pre-commit

schedls

schedls logo

Inspect and manage the things Linux runs later.

schedls is a CLI tool for inspecting and managing cron jobs and systemd timers through one transparent interface. It is a management and inspection layer over the operating system's native schedulers — it is not a daemon, not a queue, and not a replacement scheduler.

$ schedls
NAME              SCHEDULE             NEXT              BACKEND  SCOPE   STATUS
backup            daily at 02:00       tomorrow 02:00    systemd  user    waiting
cleanup           0 4 * * 0            —                 cron     user    active
logrotate         daily                —                 systemd  system  waiting

If you uninstall schedls, everything it created keeps working: a timer is an ordinary systemd unit, and a cron job is an ordinary crontab entry.

Install

$ pipx install schedls
# or
$ pip install --user schedls

python -m schedls works too. Zero runtime dependencies; Python 3.11+.

Examples

Discover everything visible to you:

$ schedls
$ schedls --system
$ schedls --backend cron

Explore a native calendar expression without creating anything:

$ schedls calendar 'Mon..Fri 02:30'
$ schedls calendar --next 10 --utc daily

Create a user systemd timer:

$ schedls new backup --timer --daily 02:00 --persistent -- /usr/local/bin/backup /srv/data

Create a cron job:

$ schedls new cleanup --cron --cron-expr '0 4 * * 0' -- /usr/local/bin/cleanup

Prefer to be guided? Add -i/--interactive to new or edit and any omitted field is prompted for. Flags you do pass become pre-filled defaults:

$ schedls new backup -i
$ schedls edit backup -i

Interactive mode is line-based (no external editor or pager), requires a terminal, and cannot be combined with --json. The collected values are shown in the usual preview and still require confirmation before anything is written.

Inspect, change, disable, remove:

$ schedls show backup
$ schedls edit backup --daily 03:00
$ schedls disable backup
$ schedls rm backup
$ schedls logs backup

Check what this host can do:

$ schedls doctor

Every mutating command supports --dry-run, and --yes for scripts. Machine output is available with --json.

Design promises

schedls does not:

  • run a background daemon;
  • listen on a network port;
  • make network requests;
  • automatically invoke sudo;
  • execute discovered scheduled commands;
  • open an editor or pager while managing jobs;
  • use a shell internally for helper commands;
  • modify unmanaged schedules by default.

See SECURITY.md and docs/security-model.md.

Documentation

Development

$ poetry install
$ poetry run pre-commit install      # check hooks on every commit
$ poetry run pre-commit run --all-files
$ poetry run pytest
$ poetry run mypy

Formatting and linting use ruff; security scanning uses Bandit; both run through pre-commit alongside trailing-whitespace, end-of-file, YAML and TOML checks. CI runs the same hooks on every push and pull request, followed by a strict type check, the test matrix (Python 3.11–3.14) and a package build. A scheduled workflow builds an SBOM and scans it with Grype.

Release files for schedls 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for schedls 0.1.0
File Size Uploaded
schedls-0.1.0.tar.gz 53.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for schedls 0.1.0
File Interpreter ABI Platform
schedls-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 115.4 kB

Release files / schedls-0.1.0.tar.gz

Download URL schedls-0.1.0.tar.gz
Size 53.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8e7ef433882f6d6b997b5cbd75c34e710a3a91e3df7329af74fea0fc306ed6f7
BLAKE2b-256 checksum
How to use checksums
0a976abae3e8ddb514874d2e784efe7ed2b99d720cd048a1e0fac9dda292d7ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.14.7 Linux/7.2.7-100.fc43.x86_64

Release files / schedls-0.1.0-py3-none-any.whl

Download URL schedls-0.1.0-py3-none-any.whl
Size 62.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
16b44e05ca09048eeb6ba1218ea1e66b867ed4e59eb38bf2060fe33dae5b8b40
BLAKE2b-256 checksum
How to use checksums
dfae1039d14b324a12bd14314b337317d324d5240ea6e9d0fb0475707a1b5192
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.14.7 Linux/7.2.7-100.fc43.x86_64

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page