Remote callers can start background shell tasks with start_shell_task
A new start_shell_task remote request runs a background Bash command in a session through the normal permission checks; cloud-hosted sessions reject it
Group of 5You'll noticeNo documentation foundNew Features
You'll noticeTier: how much it should matter to you
4Useful: my rating, 1 to 5
4Signal: worth watching, 1 to 5
Remote ControlArea: what it touches
New FeaturesKind: in v2.1.312,
What probably matters to youSection of the release
Unclear Which remote clients can send this request, and whether anything switches it on or off, is not known.
What
A program controlling a Claude Code session from elsewhere (a remote caller) can now ask it to run a shell command in the background. The request is called start_shell_task. A background command keeps running while the session carries on with other work.
start_shell_task is a new control-request type. It is handled in the same place as turn_handoff and rewind_conversation.
The request carries a command, args, cwd (the folder to run in), env (environment variables) and a description. Each is checked and shell-quoted, which means wrapped so the shell reads it literally.
The command runs as a Bash tool call with run_in_background set. It goes through the same permission checks as any other Bash command.
Requests sent before the worker started are refused with "start_shell_task: the request was sent before this worker started; send it again". Requests that are too old are refused too.
A new capability string, start_shell_task_v1, is listed alongside sdk_mcp_manifests and interrupt_requeue_taken_v1. A capability string lets a client tell whether a session supports a feature.
Cloud-hosted sessions reject start_shell_task. They already reject poll_event the same way.
Nearby changes add a copy option to an executor schema, and the working-dir parser now reads copy_of. Separately, a list of plugin-hook names that held only command.describe and env.get now also holds agent.offer, attribution.text and prompt.section. Nothing shows that this list is related to start_shell_task.
Why
A remote host can now start long-running shell commands in a session without typing them in. Those commands still need the same permission as a Bash command Claude runs itself. Integrators who target cloud-hosted sessions should expect the request to be refused there.
Read from
Names in the bundlestart_shell_task
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 remote clients can send this request, and whether anything switches it on or off, is not known.