spoolctl

A local job queue built for operators that die.

Work survives when nobody can watch.

spoolctl runs shell jobs through one SQLite file. Workers are equal peers: there is no daemon, broker, or coordinator whose failure can stop the queue.

Read the docs View source

One durable queue

Jobs, attempts, state transitions, and output live in one SQLite database that every worker can safely share.

Recovery after a crash

If a worker dies during a job, another worker reclaims the work after the safety threshold and retries it.

No daemon or broker

Start as many symmetric workers as you need. Nothing central must remain alive for the queue to work.

Safe for automation

Use stable JSON envelopes, explicit exit codes, retries, backoff, and a durable dead-letter state in scripts and agents.

Composes with the toolchain

evalctl can send long evaluation runs to spoolctl for durable execution. Use inferctl to inspect local model routing before a model-backed job starts. spoolctl keeps the command, output, and recovery state safe while work runs.

Start with spoolctl add