Human-readable CRUD wrapper for recurring OS time triggers (cron / systemd)
Project description
hey-you
Human-readable CRUD wrapper for recurring OS time triggers.
Translates human time expressions into cron or systemd timers — whichever your system uses.
hey-you repeat "HH>1MI<5" "aider --no-git --message 'health check'"
hey-you repeat "every monday at 9" "aider-skills run weekly-summary"
hey-you list
hey-you explain "0 9 * * 1"
hey-you resolve "HH>1MI<5"
hey-you remove 3
Why
| Tool | Input | Who runs it |
|---|---|---|
raw crontab |
0 9 * * 1 — you must know cron syntax |
you |
schedule (PyPI) |
Python method chains — runs inside your process | your Python process |
hey-you |
"every monday at 9" or "HH>1MI<5" |
the OS — process exits |
The OS owns the timer. hey-you is a one-shot translator and crontab/systemd manager.
Installation
pipx install os-hey-you
Requires Python ≥ 3.12.
Placeholder Notation
Built on three POSIX/GNU standards:
- Field names: strftime(3)
- Relative offsets: GNU date --date
- Target format: crontab(5)
Supported tokens (YAGNI — no YYYY, no SS: standard cron has neither):
| Token | Field | Range |
|---|---|---|
MM |
month | 01-12 |
DD |
day | 01-31 |
HH |
hour 24h | 00-23 |
MI |
minute | 00-59 |
Each token may carry an offset: >N adds, <N subtracts.
HH>1MI<5 → hour+1, minute-5
MM>1DD → next month, current day
HH MI → current hour and minute, no offset
Backend Detection
hey-you auto-detects your OS scheduler:
systemd PID 1? → writes ~/.config/systemd/user/hey-you-NNNN.timer
else → writes user crontab entry
Override: HEY_YOU_BACKEND=systemd or HEY_YOU_BACKEND=cron.
On Fedora Silverblue, cron requires: rpm-ostree install cronie + restart.
systemd is the default and preferred backend.
CRUD
| Operation | Command |
|---|---|
| C reate | hey-you repeat <expr> <command> |
| R ead | hey-you list |
| R ead | hey-you explain <cron> |
| R ead | hey-you resolve <expr> |
| D elete | hey-you remove <id> |
Update = remove + repeat. YAGNI.
Example Use Cases
Daily health check via aider
hey-you repeat "HH MI" "aider --no-git --message 'check project health'"
Weekly summary every Monday at 09:00
hey-you repeat "0 9 * * 1" "aider-skills run weekly-summary"
Understand an existing cron entry
hey-you explain "0 9 * * 1"
# every Monday at 09:00
Preview a placeholder without writing
hey-you resolve "HH>1MI<5"
# 25 17 * * *
License
MIT — © roebi
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file os_hey_you-0.1.0.tar.gz.
File metadata
- Download URL: os_hey_you-0.1.0.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
281133b9ebd49ff3419eb95ce9322ca71bab9cbeff90c59e268849d3cf312103
|
|
| MD5 |
911262e4df62e4a6e76244e2454da195
|
|
| BLAKE2b-256 |
c5f1355f86a8663225546501da5655b22e30a1987dae010794bb9705c9622710
|
File details
Details for the file os_hey_you-0.1.0-py3-none-any.whl.
File metadata
- Download URL: os_hey_you-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22c4a6964d6ca440f884897e8a53077599f8ba14518cb3fb2837ec7a0cc28adf
|
|
| MD5 |
262ea6e667a3247a2178af34be2a769a
|
|
| BLAKE2b-256 |
8049f7756bbf9fb1303694c07fb4b5e8021e1a80b281f5e83c5ca78dccc1d535
|