Unclear What CLAUDE_CODE_HOOK_HEARTBEAT_INTERVAL_MS changes when set is not stated.
What
Hooks are your own commands that Claude Code runs at set moments, such as before a tool runs. Environment variables are named values set outside Claude Code that change how it works.
- While a hook runs for
UserPromptSubmit,PreToolUse,PostToolUse,PostToolUseFailure,Stop,PreCompactorPostCompact, Claude Code now sends a regular progress signal (atool_progressheartbeat) so a slow hook does not let a remote session time out. - The new
CLAUDE_CODE_HOOK_HEARTBEAT_INTERVAL_MSsets how often that signal is sent. It is on the list of variables passed through to hosted or remote sessions, next to the other hook variables. - The signals are skipped when
CLAUDE_CODE_REMOTE_SEND_KEEPALIVESis set. - The feature is controlled by a server-side switch,
tengu_mellow_pulse, that falls back to on when the server sends no value. Nothing has been read about this switch yet. DISABLE_ERROR_REPORTINGwas added to two more lists of variables passed through to those sessions, one of which also holdsCLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIESandCLAUDE_CODE_DISABLE_MCP_TASKS.
Internal markers added in the same release also point to a fix in how stopping is handled when Claude Code runs without its interactive screen.
Why
If you use hooks that take a while, a remote or hosted session should no longer drop while it waits for them. Opting out of error reporting now carries through to those sessions.
What `CLAUDE_CODE_HOOK_HEARTBEAT_INTERVAL_MS` changes when set is not stated.
Added CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES (available since 2.1.318): set it to 1 to turn off subagent progress summaries and the…