pulse
Guides

CLI

go install github.com/bete7512/pulse/cli/pulse@latest

Connect once

pulse save creds --url localhost:50051 --username ops --password s3cret
pulse config view    # password redacted

Credentials 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-f7083ccb543d

pulse 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 resumed

Pausing 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

On this page