Schedule jobs. See every run.
Sextant is an open-source CLI and HTTP API for background jobs: cron and delayed schedules, retries you can reason about, and a record of every attempt. These are its docs.
curl -fsSL https://get.sextant.example | sh Start here
Three short paths. Each ends with a job you can watch run.
Install
Binary, Docker image or package manager. Pick the store that fits: SQLite for one machine, Postgres for a fleet.
sextant version 02Run your first job
Start a server, register a handler, enqueue a job and follow it from queued to succeeded in five minutes.
sextant run send-receipt 03Learn the model
Jobs, queues, schedules, workers and leases: the six ideas the rest of the documentation builds on.
queue / job / run Popular guides
What people read after the quickstart.
One job, four ways to create it
The SDKs are thin wrappers over the REST API, so what you learn in one carries to the others. Your language choice is remembered across every example in these docs.
- Typed clients for Node, Python and Go, generated from the same API description.
- Idempotency keys on every create, so a retried request never makes a second job.
- Every code sample in the API reference is generated from
src/data/api.json.
import { Sextant } from '@sextant/node';
const sextant = new Sextant({ token: process.env.SEXTANT_TOKEN });
await sextant.jobs.create({
queue: 'emails',
handler: 'send-receipt',
payload: { orderId: 'ord_4412' },
runAt: '2026-10-20T09:15:00Z',
});import os
from sextant import Sextant
client = Sextant(token=os.environ["SEXTANT_TOKEN"])
client.jobs.create(
queue="emails",
handler="send-receipt",
payload={"order_id": "ord_4412"},
run_at="2026-10-20T09:15:00Z",
)client := sextant.NewClient(os.Getenv("SEXTANT_TOKEN"))
_, err := client.Jobs.Create(ctx, &sextant.JobCreateParams{
Queue: "emails",
Handler: "send-receipt",
Payload: map[string]any{"order_id": "ord_4412"},
RunAt: "2026-10-20T09:15:00Z",
})curl -X POST https://api.sextant.example/v2/jobs \
-H "Authorization: Bearer $SEXTANT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queue":"emails","handler":"send-receipt","payload":{"order_id":"ord_4412"}}'What is new
Latest releases. Full changelog