CLAUDE_CODE_MESSAGING_SOCKET
A Claude Code environment variable, read out of the shipped bundle. It has been in the build since v2.1.224, including the newest one read.
Set by Claude Code, not by you: in sessions that bind an inbox socket, Claude Code exports that socket's path to hooks and Bash commands when it binds the socket. In a session that starts with messaging on, Claude Code binds the socket before any hook runs. Other sessions on the machine deliver messages to this path. Each session exports its own socket rather than one inherited from a parent, and messages arriving on it go through the session's inbound controls. Settings env blocks can't set it. Requires Claude Code v2.1.224 or later
Anthropic's own wording. Read off Environment variables, captured 2026-09-28.
In the changelogs
5Releases whose published page names CLAUDE_CODE_MESSAGING_SOCKET.
-
v2.1.248
Peer address row in the info panel
The info panel can show a Peer address row, unavailable unless CLAUDE_CODE_MESSAGING_SOCKET is set.
named in this entry, found in this entry's text
-
v2.1.224
Peer address shown in the session info panel
The session info panel now shows your peer socket address when cross-session messaging is on.
named in this entry, found in this entry's text
-
v2.1.224
New environment variable
CLAUDE_CODE_MESSAGING_SOCKETPoint CLAUDE_CODE_MESSAGING_SOCKET at a socket path to enable session-to-session messaging and stream-json message replay.
named in this entry, found in this entry's text
-
v2.1.224
Local messaging socket: where it lives, who can read it, and refusing to steal a live one
The messaging socket lives under XDG_RUNTIME_DIR with locked-down permissions and refuses to hijack a live one.
named in this entry, found in this entry's text
-
v2.1.224
Cross-session messaging inbox now actually starts at startup
Startup can now actually open the local socket that lets other sessions message you.
named in this entry, found in this entry's text
First cited
1The earliest release whose published evidence quoted CLAUDE_CODE_MESSAGING_SOCKET was v2.1.224, 7 Aug 2026. That is the oldest release this project wrote about it, so it is a floor on the name's age and not the release that introduced it. It is not a presence reading: which builds carried the name is the table below.
Presence across releases
1Build by build
74One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the environment variable does. All environment variables.