CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS

Updated by

CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS is a Claude Code environment variable: Set the timeout in milliseconds for hooks that run when a Claude Code session ends. Session-end hooks (like SessionEnd in the hooks config) run cleanup scripts on exit — this variable controls how long Claude Code waits for those hooks to complete before force-exiting. Added between v2.1.77 and v2.1.79 and still present in v2.1.294. It is listed in the official reference.

StatusPresent in v2.1.294
AddedAdded between v2.1.77 and v2.1.79
CategoryNetwork and proxy
Official docsListed

How to set it

For one session, export it in the shell that starts Claude Code:

export CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=<value>
claude

To apply it to every session, add it to the env object of a settings file:

// ~/.claude/settings.json
{
  "env": {
    "CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS": "<value>"
  }
}

Release notes that mention it

Related variables

Frequently asked questions

What does CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS do?

Set the timeout in milliseconds for hooks that run when a Claude Code session ends. Session-end hooks (like SessionEnd in the hooks config) run cleanup scripts on exit — this variable controls how long Claude Code waits for those hooks to complete before force-exiting.

Which Claude Code version has CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS?

Added between v2.1.77 and v2.1.79 and still present in v2.1.294.

How do I set CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS?

Export it before starting Claude Code (export CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=value), or add it to the "env" object in ~/.claude/settings.json to apply it to every session.

All variables, searchable: Claude Code environment variables.