spoolctl
A local job queue built for operators that die.
A job whose worker is SIGKILLed mid-run is reclaimed and retried by another worker — and never reclaimed while the process that owns it is still alive. Mutual exclusion is absolute; recovery is eventual.
Jobs are plain shell commands. There is no daemon and no broker: workers are symmetric peers that coordinate entirely through one SQLite file, so there is no coordinator whose death breaks the queue. Retries with backoff, a durable dead-letter state, per-job timeouts with process-group kill, and captured output you can read back later — from a different process than the one that submitted the job. Python standard library only; nothing to install into a sandbox but one file.
Built for the operators that can't watch a terminal: coding agents, unattended
pipelines, CI-adjacent automation. evalctl
delegates execution to spoolctl for crash-safe async runs; model routing there can
delegate to inferctl.
Queue work with spoolctl add -- python fetch.py, then start peers with
spoolctl work.
Pre-release. Source: github.com/Ozhiaki/spoolctl. Install instructions coming soon.