{"version":"2.1.323","anchor":"new-env-var-claude-code-hook-heartbeat-interval-ms-and-disab","canonical_anchor":"new-env-var-claude-code-hook-heartbeat-interval-ms-and-disab","heading":"Long-running hooks keep remote sessions alive, with CLAUDE_CODE_HOOK_HEARTBEAT_INTERVAL_MS","tier":"use","area":"Hooks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323\/e\/new-env-var-claude-code-hook-heartbeat-interval-ms-and-disab","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323","markdown":"### Long-running hooks keep remote sessions alive, with CLAUDE_CODE_HOOK_HEARTBEAT_INTERVAL_MS\n\nRemote sessions now send regular progress signals while hooks run, timed by `CLAUDE_CODE_HOOK_HEARTBEAT_INTERVAL_MS`; `DISABLE_ERROR_REPORTING` is forwarded\n\n**Unclear.** What `CLAUDE_CODE_HOOK_HEARTBEAT_INTERVAL_MS` changes when set is not stated.\n\n**What**\n\nHooks 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.\n\n- While a hook runs for `UserPromptSubmit`, `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `Stop`, `PreCompact` or `PostCompact`, Claude Code now sends a regular progress signal (a `tool_progress` heartbeat) so a slow hook does not let a remote session time out.\n\n- The new `CLAUDE_CODE_HOOK_HEARTBEAT_INTERVAL_MS` sets 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.\n\n- The signals are skipped when `CLAUDE_CODE_REMOTE_SEND_KEEPALIVES` is set.\n\n- 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.\n\n- `DISABLE_ERROR_REPORTING` was added to two more lists of variables passed through to those sessions, one of which also holds `CLAUDE_CODE_DISABLE_AGENT_PROGRESS_SUMMARIES` and `CLAUDE_CODE_DISABLE_MCP_TASKS`.\n\nInternal markers added in the same release also point to a fix in how stopping is handled when Claude Code runs without its interactive screen.\n\n**Why**\n\nIf 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.\n\n- Area: Hooks\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}