{"name":"CLAUDE_CODE_REMOTE_SEND_KEEPALIVES","slug":"claude-code-remote-send-keepalives","family":"env","title":"Environment variables","noun":"environment variable","description":"A new keepalive mechanism can keep remote hook connections open during slow hooks, off by default","description_source":"entry","described_by":{"version":"2.1.271","anchor":"hook-dispatch-keepalive-hold-gated-off-by-default"},"presence":{"first_seen":"2.1.138","removed_in":null,"in_current_build":true,"newest_mined":"2.1.308","builds":149,"mined_builds":149,"first_cited":{"version":"2.1.307","released_at":"2026-10-21 20:47:18","spans":1}},"aliases":[],"entries":[{"version":"2.1.307","anchor":"remote-session-client-keep-alive-events-and-heartbeat-skip","heading":"Remote sessions can send keep-alive signals while a turn is waiting on the model","line":"With `CLAUDE_CODE_REMOTE_SEND_KEEPALIVES` set, remote sessions send a keep-alive signal during long turns, and the WebSocket link now skips heartbeats too","released_at":"2026-10-21 20:47:18","reason":"named in this entry, found in this entry's text"},{"version":"2.1.271","anchor":"hook-dispatch-keepalive-hold-gated-off-by-default","heading":"Hook-dispatch keepalive hold, gated off by default","line":"A new keepalive mechanism can keep remote hook connections open during slow hooks, off by default","released_at":"2026-09-14 19:45:19","reason":"found in this entry's text, named in this entry"}],"entries_total":2,"docs":[],"docs_total":0,"gates":[],"related":[{"name":"CLAUDE_CODE_REMOTE","slug":"claude-code-remote","description":"Remote sessions started from review can skip writing some state to disk."},{"name":"CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE","slug":"claude-code-remote-environment-type","description":"The skill-proposal tool now requires a remote environment and a specific entrypoint or env var, and can be vetoed per session."},{"name":"CLAUDE_CODE_REMOTE_HERMETIC_MODE","slug":"claude-code-remote-hermetic-mode","description":"More environment variables get carried into remote sessions; none are set by default."},{"name":"CLAUDE_CODE_REMOTE_MCP_CONFIG","slug":"claude-code-remote-mcp-config","description":"Claude Code now recognises the CLAUDE_CODE_REMOTE_MCP_CONFIG environment variable and passes it on to processes it starts"},{"name":"CLAUDE_CODE_REMOTE_MEMORY_DIR","slug":"claude-code-remote-memory-dir","description":"Claude Code now refuses paths in its temp folders or in folders background sessions write to freely, including for cloud credential settings"},{"name":"CLAUDE_CODE_REMOTE_RAW_EVENTS_FILE","slug":"claude-code-remote-raw-events-file","description":null},{"name":"CLAUDE_CODE_REMOTE_SDK_URL","slug":"claude-code-remote-sdk-url","description":"When --sdk-url is not given in a remote session, Claude Code now reads the address from the CLAUDE_CODE_REMOTE_SDK_URL environment variable"},{"name":"CLAUDE_CODE_REMOTE_SESSION_ID","slug":"claude-code-remote-session-id","description":"Commands blocked in cloud sessions now tell you the exact local command to run instead."},{"name":"CLAUDE_CODE_REMOTE_SESSION_ORIGIN","slug":"claude-code-remote-session-origin","description":"Remote sessions started from review can skip writing some state to disk."},{"name":"CLAUDE_CODE_REMOTE_SESSION_UUID","slug":"claude-code-remote-session-uuid","description":"Runner hooks now get CLAUDE_RUNNER_SESSION_UUID and CLAUDE_CODE_REMOTE_SESSION_UUID so your scripts can key on the session."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/claude-code-remote-send-keepalives","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}