CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS

Updated by

CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS is a Claude Code environment variable: Controls whether Claude Code emits session state change events. This fits the growing SDK and Remote Control infrastructure — external consumers (IDE extensions, web UIs, monitoring tools) need to know when a session transitions between states like thinking, tool use, and idle. Added between v2.1.79 and v2.1.83 and still present in v2.1.294. It is listed in the official reference.

StatusPresent in v2.1.294
AddedAdded between v2.1.79 and v2.1.83
CategorySessions
Official docsListed

How to set it

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

export CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS=<value>
claude

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

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

Release notes that mention it

Related variables

Frequently asked questions

What does CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS do?

Controls whether Claude Code emits session state change events. This fits the growing SDK and Remote Control infrastructure — external consumers (IDE extensions, web UIs, monitoring tools) need to know when a session transitions between states like thinking, tool use, and idle.

Which Claude Code version has CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS?

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

How do I set CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS?

Export it before starting Claude Code (export CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS=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.