Compare commits

..

2 commits

Author SHA1 Message Date
2b75547726 a note on thhe crontab format
Some checks failed
CI / shellcheck (push) Failing after 16s
2026-02-17 14:02:48 -07:00
1655a64ab3 Add emoji icons to feature list and fix typos in README
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 13:57:34 -07:00

View file

@ -6,6 +6,14 @@
A cron/at-like interface for systemd user timers. Create, manage, and monitor scheduled jobs without writing unit files by hand. A cron/at-like interface for systemd user timers. Create, manage, and monitor scheduled jobs without writing unit files by hand.
Because you want to use systemd, but miss the ease of ~crontab~`systab -e`!
- 🚀 create one-time or recurring jobs with one command
- ✏️ use your $EDITOR to manage `systab` timers in a single line format
- 📊 quickly see the status of your timers
- 📋 access the logs of timers
- 💪 enable and disable timers
<table> <table>
<tr> <tr>
<td width="33%"><img src="demo/quickstart.gif" alt="Quick start demo"></td> <td width="33%"><img src="demo/quickstart.gif" alt="Quick start demo"></td>
@ -193,8 +201,17 @@ After cloning, enable the pre-commit hook (runs ShellCheck + tests):
git config core.hooksPath .githooks git config core.hooksPath .githooks
``` ```
## FAQ ## FAQ
Why this wrapper?
I was missing the simplicity of `at` and `crontab` commands. `systemd` has many features and benefits that those tools do not have, but convenience for the user to set a quick timer is not one of them.
**What's the difference between `-c` and `-f`?** **What's the difference between `-c` and `-f`?**
`-f` validates that the file exists and is executable at creation time, catching typos and permission issues early. With `-c`, errors only surface when systemd runs the job later (visible via `systab -L`). Under the hood, both produce the same `ExecStart` line. `-f` validates that the file exists and is executable at creation time, catching typos and permission issues early. With `-c`, errors only surface when systemd runs the job later (visible via `systab -L`). Under the hood, both produce the same `ExecStart` line.
**Why did you mess with the crontab format?**
Originally I meant to keep it the same, but there isn't a one-to-one mapping of times supported by cron and systemd. systemd has more options. I also want the human readble strings like "in 5 minutes". Trying to force that into the crontab format with it's space delimited format meant quotes, etc. in the end I used the `|` and limit the number of fields so that the commands can also be piped.