Pause and resume posting

Stop every scheduled claim on one machine, every machine, or one row, then resume.

Pause and resume posting

Stop Blowhorn from claiming scheduled work without stopping the service. Reach for this when a platform challenges a sign-in, when a session expires, or on any day you want nothing to go out.

Pause this machine

blowhorn schedule pause --reason "LinkedIn challenge on kate"
blowhorn schedule status
blowhorn schedule resume

The flagless pause writes a local file beside your config, so it works even when everything else is broken, and it survives a crash, a restart and a reboot. Ticks keep running every ten minutes but claim nothing and exit 0. Due times carry forward: a recurring row that fell due during the pause runs once on resume, not once per missed interval.

A job already running finishes first. Killing a browser flow mid-post can leave a half-done action on the platform, so the pause stops the next claim, never the running job.

In the app, choose "pause this machine" in the popover or on the console. While paused, the app also skips its session probe, so a paused Blowhorn opens no browser at all.

Pause every machine, or one row

blowhorn schedule pause --all --reason "X is rate limiting us"
blowhorn schedule pause --row 7 --reason "waiting on the page owner"
blowhorn schedule resume --all
blowhorn schedule resume --row 7

A row is claimed only when none of the three scopes says paused: this machine, all machines, or that row. --all and --row live in the store, so every machine sharing it honours them on its next claim; the flagless pause never touches the store. In the app the same three scopes are "pause this machine", "pause all machines" and "pause this row", each with a reason.

Lifting one scope leaves the other two as they were. A held row still reads due: yes beside paused: yes in blowhorn schedule list: due keeps meaning its time has passed. A pause is not Enabled: no: disabling a row is editorial, with no reason and no intent to resume.

trigger-now on a held row exits 1 and names the scope. --ignore-pause on tick or trigger-now overrides every scope, and a dry run previews through the pause: held rows read held rather than would-run.

Last modified October 9, 2026: docs: sync from master (5f4e718)