Pre-release. ATX is not yet published: there is no crates.io crate, no GitHub release, and no prebuilt binaries yet. The install instructions and badges below activate when the first release ships.
ATX schedules commands for later without making you write a cron entry.
atx 30s -- say "coffee is ready" # macOS; use notify-send on Linux
atx 2m30s -- make check
atx 15:00 -- ./backup-home
atx 5h -- tmux send-keys -t coding-agent "continue" C-mIt runs commands directly by default, keeps a local history in SQLite, and has no server or account. An optional per-user service can restart the scheduler if it crashes.
Not published yet. Until the first release, build from source:
git clone https://github.com/jsugg/atx
cd atx
cargo install --path .Once released: cargo install atx (recommended; the binary is
self-contained), or grab a prebuilt archive from the
releases page — static musl binaries
for Linux (x86_64, aarch64) plus macOS builds, with SHA-256 checksums.
- Closing the submitting terminal does not cancel a session job.
- Direct mode never joins arguments into a shell command.
- Unknown outcomes are recorded and never retried on their own.
- Cancellation checks process identity before sending a signal.
- Logs, history, retries, and result sets have limits.
Session jobs are not guaranteed to survive logout or reboot. Durable mode uses
launchd on macOS or a systemd user service on Linux and must be installed
explicitly.
Shell completion scripts (atx completions --shell <bash, zsh, fish, power-shell>) and roff man pages are generated from the same CLI metadata as
--help.
- Command guide — commands, options, configuration, exit statuses, and man pages.
- JSON API — output for scripts.
- Reliability — execution, recovery, and limits.
- Platform support — session and durable-mode boundaries.
- Security model — local trust boundaries and file protections.
- Architecture — processes, state, storage, and IPC.
- Troubleshooting — diagnostic commands and recovery pointers.
- Releasing — making and reviewing a release.
- Dependencies — direct dependencies and why they are here.
- Readiness — the latest check results.
- Architecture decisions — short records of durable design choices.
The release target is macOS 13+ and Linux glibc/musl builds for x86-64 and AArch64; static musl builds are smoke-tested inside BusyBox in CI. Durability guarantees per platform live in platform support.
- Cargo installs:
cargo install --force atx(or--path .from a checkout) replaces the binary;cargo uninstall atxremoves it. - Archive installs: replace the old binary on your
PATHwith the new one, then restart the service so the running supervisor is the new build:atx service uninstall && atx service install(seeatx service --help). Moving or upgrading the binary without restarting leaves the old image running until logout or reboot. - Man pages from an archive: copy
man-pages/*.1to a directory searched by your system (for example/usr/local/share/man/man1/), then refresh its index if your platform needs that (mandbon many Linux systems). - Uninstalling does not delete your state directory (history, config, logs).
Delete
$XDG_STATE_HOME/atx(Linux) or~/Library/Application Support/atx(macOS) yourself if you want history gone.
The pinned Rust toolchain is installed automatically by rustup.
./scripts/check.sh quick
./scripts/check.sh fullRead CONTRIBUTING.md before changing behavior.
MIT. See LICENSE-MIT.