Never blocking

The fastest way to lose an unattended night is a single Press y to continue nobody is there to press. cursorloop removes every place a run can silently park on input:

  • Managed hooks (CURSORLOOP_MANAGED_HOOKS, on by default) install a session preamble that pre-answers interactive prompts.
  • The preamble tells the agent it is unattended: no questions, no stdin.
  • Force paths prefer non-interactive variants of tool invocations.
  • Watchdogs back all of it: a turn that hangs anyway hits --turn-timeout, and silent output hits --stall-timeout — the run fails loudly instead of waiting politely forever.

Verify the hook state any time with cursorloop hooks. Disable management (for a session you are actually watching) with --no-managed-hooks.