Guides
CLI
go install github.com/bete7512/pulse/cli/pulse@latestConnect once
pulse save creds --url localhost:50051 --username ops --password s3cret
pulse config view # password redactedCredentials land in ~/.config/pulse/config.json (mode 0600). Precedence:
--addr > PULSE_ADDR / PULSE_USER / PULSE_PASSWORD > saved config > localhost:50051.
Jobs
$ pulse submit send-email '{"to":"a@b.com"}' --priority 5
019f2ec0-afad-7082-b27f-f7083ccb543d
$ pulse jobs list --status pending
ID TOPIC STATUS PRIO ATTEMPTS SUBMITTED ERROR
019f2ec0-afad-7082-b27f-f7083ccb543d send-email PENDING 5 0 2026-07-04 23:10:07
$ pulse jobs get 019f2ec0-afad-7082-b27f-f7083ccb543d
ID: 019f2ec0-afad-7082-b27f-f7083ccb543d
Topic: send-email
Status: PENDING
Priority: 5
Attempts: 0/3
Submitted: 2026-07-04 23:10:07
Started: -
Completed: -
Payload: {"to":"a@b.com"}
$ pulse jobs cancel 019f2ec0-afad-7082-b27f-f7083ccb543dpulse jobs list --status dead_lettered is the dead-letter inbox — every exhausted job
with its last error. --topic filters, --limit / --offset paginate.
pulse jobs requeue <id> puts a dead-lettered or canceled job back in line as a fresh
run: attempts reset to a full retry budget, dispatchable immediately.
Queue stats
$ pulse stats
TOPIC PENDING RUNNING RETRYING COMPLETED DEAD CANCELED
flaky-report 2 1 3 1204 6 0
send-email 14 8 0 18342 2 5
slow-job 0 4 0 311 0 1
TOTAL 16 13 3 19857 8 6
oldest waiting job: 2026-07-05 17:41:02 (12s)One row per topic; the oldest-waiting marker is the queue's worst-case wait — the first number to check when throughput lags.
Dispatch control
$ pulse dispatch pause -m "db maintenance"
dispatch paused
$ pulse dispatch status
dispatch: paused since 2026-07-04 23:12:41
reason: db maintenance
$ pulse dispatch resume
dispatch resumedPausing stops new assignments server-wide; submits keep landing and running jobs finish.
Schedules and auth
pulse schedules list # definitions, next/last run, paused state
pulse passwd 's3cret' # bcrypt hash for the server's PULSE_AUTH_USERS