Claude Code v2.1.224 · 7 Aug 2026
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.
Use it now Notable
No documentation found New Features
Copy link
Copy markdown
JSON
All of v2.1.224
Use it now Tier: how much it should matter to you
3 Useful: my rating, 1 to 5
4 Signal: worth watching, 1 to 5
Cross-Session Messaging Area: what it touches
New Features Kind: in v2.1.224, 07 Aug 26
What probably matters to you Section of the release
What
The local socket used for session-to-session messaging binds under $XDG_RUNTIME_DIR/cc-socks/<pid>.sock, with the directory created 0700 and the socket 0600, and its path exported as CLAUDE_CODE_MESSAGING_SOCKET . If you pass --messaging-socket-path pointing at a socket something is already listening on, startup refuses rather than hijacking it.
Details
Falls back to a /tmp path, or $PREFIX/tmp under Termux, when the primary path would exceed the 103 byte limit on socket paths. Non-local paths are refused outright. Input is line-delimited JSON; any line over 1 MiB is dropped. Evidence
--messaging-socket-path points to a live socket:
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
How sure we are
One source agrees One thing we can check says the same as this entry.
The name it cites is new in this build New in this build: CLAUDE_CODE_MESSAGING_SOCKET
See this entry in the whole of v2.1.224 →
7 Aug 2026 · 352 entries, this one is #31.
Use it now44 You'll notice168 Nothing to try yet41 Under the hood99
Open the release →
Names in this entry
env XDG_RUNTIME_DIR The messaging socket lives under XDG_RUNTIME_DIR with locked-down permissions and refuses to hijack a live one.
env CLAUDE_CODE_MESSAGING_SOCKET 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
cli --messaging-socket-path The messaging socket lives under XDG_RUNTIME_DIR with locked-down permissions and refuses to hijack a live one.
Is this right?
0
0
Feedback
What's wrong with this entry?
Hard to understand Too vague Looks wrong Not relevant to me Too long Missing the detail I wanted Duplicate of another card
Clear Learned something new I can act on this Good catch
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
← Previous · 30 of 352
Git identity, commit signing and proxied clones for runner sessions
Use it now Self-Hosted Runner
In v2.1.224 What probably matters to you release-page order
Next → · 32 of 352
Remote sessions can run on self-hosted runner pools
Use it now Self-Hosted Runner