Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.305 ·

'!' shell commands sent from elsewhere are now checked and can be refused

'!' shell commands arriving from another client now pass a series of checks, and each refusal says why with a 'Not run:' message

You'll notice Improvements
JSON All of v2.1.305
You'll noticeTier: how much it should matter to you
3Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
SessionsArea: what it touches
ImprovementsKind: in v2.1.305,
ImprovementsSection of the release

Unclear Which ways of sending a '!' command to a session go through these checks is not clear.

What

In Claude Code, a message that starts with ! runs as a shell command on the computer directly, without going through Claude. When such a command arrives from another client, it now goes through a series of checks before it runs. It is refused when:

  • the session is a Remote Control session
  • the session is a background session
  • the session started before a restart
  • the command arrived more than 90 seconds after it was sent
  • the command contains control characters (hidden, non-printing characters)
  • the command is too long
  • another command is already running
  • the server did not confirm it received the command

Claude Code waits for the server to confirm receipt before running anything. Each refusal comes back as a message starting with "Not run:" that explains the reason, for example that ! commands are not available in Remote Control sessions and should be run directly on the computer the session is running on.

Why

Shell commands sent from elsewhere are now much stricter, and when one does not run you are told why and usually whether to send it again.

How sure we are
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubtWhich ways of sending a '!' command to a session go through these checks is not clear.

See this entry in the whole of v2.1.305 →

Feedback