Skip to content

The stall nudger

Sometimes a Claude Code session stops mid-run because the API returned an error, and sits there waiting for a keystroke that never comes. The stall nudger is the one thing in Nightdesk that will type that keystroke for you.

It is off until you arm it. It is the bolt in the bar, to the left of the keep-awake cup.

Armed, when the harness reports that one of its sessions is blocked on an API error, Nightdesk re-delivers one word to that session:

Resume.

That is the whole of it. Four things bind it, and they are worth stating plainly:

  • One fixed word. Resume. — never a template, never a string you can configure, never anything else.
  • Only a session the harness itself reports as stalled. Nightdesk does not decide that a session looks stuck.
  • Only when you have armed it. Off by default, and nothing happens until you turn it on.
  • It answers nothing. Never a question a session asked you, never a permission prompt, never a session that is not stalled.

The reasoning the whole feature rests on: re-sending a keystroke that the connection dropped is re-sending, not answering. Anything that cannot be described that way is outside what the nudger is allowed to do.

  • It sends nothing to a Codex CLI session. The nudger is Claude Code only, because the condition it acts on is a report the Claude harness makes and Codex has no measured equivalent.
  • It does not hold your Mac awake. If your Mac sleeps in the middle of a response, the nudger will not save you — that is a real gap, left open deliberately rather than papered over by quietly coupling two features.
  • It never answers on your behalf. See above; it is the point.

A nudge is delivered straight to the stalled session, whether or not you have its pane open, and Nightdesk waits to be told the write was accepted. Only an accepted delivery counts. Any other answer leaves the nudge still owed and turns the bolt orange, with a tooltip naming the session it could not reach. A toggle that has quietly stopped working would be worse than not having one.

A session that is still stalled gets nudged again: three in all, the first the moment the harness reports the stall, the second two minutes after that, the third ten minutes later. Ten minutes after the third, a session still stalled is one the nudger gives up on rather than hammering — the bolt turns orange, the tooltip names the session and tells you to type Resume. into it yourself, and the feed records that it gave up. If that session comes back and stalls again later, it starts over with a fresh three.

Every nudge lands in the activity feed as its own row. That is the trail to read the next morning, when you want to know whether anything was nudged and what happened after.

Arming the nudger adds Nightdesk to your login items, so an overnight watch survives a restart of your Mac; Nightdesk comes back already armed. Disarming removes it again. Nothing is registered until you arm it.

Nightdesk never decides on its own to put text into one of your sessions. It shows you terminals and it launches things; anything else that reaches a session’s keyboard is text you wrote and sent yourself, like handing a task to an agent from the Tasks tab. The nudger is the one thing Nightdesk sends on its own, which is why it is off by default, why it sends one fixed word, and why it is written out in this much detail.