SendUserFile not available in remote-control server-mode sessions
Hi! I think I found a small inconsistency with the SendUserFile tool.
It looks like SendUserFile only shows up when the session is interactive AND has Remote Control on at the same time. If I start a normal interactive claude and run /remote-control, the tool is there and works — I asked the agent to call it on a temp file, it ran fine and the file showed up as a card in claude.ai/code.
But if I run claude remote-control in server mode and connect to the spawned session from the same claude.ai/code or the mobile app, the tool is gone. It's the same client, the one that rendered a delivered file a minute earlier, but there is no SendUserFile.
I also checked a few other cases. A plain claude -p (stream-json) session has no SendUserFile tool abailable. And a plain interactive claude without remote control doesn't have it either — when I ask it to call the tool it just says it doesn't have it. So it really needs both things together: interactive + remote control. Server-mode sessions do have remote control, but still don't get the tool.
To reproduce:
claude, then/remote-control, then ask it to call SendUserFile on some file — works, the file appears in claude.ai/code.claude remote-control(server mode), connect from the web or phone — the session has no SendUserFile, even though it's the same client.
I'd expect server-mode / bridge remote-control sessions to also have SendUserFile, since they use the same client that can show the file. This matters because server mode is the usual way to run agents headless (in tmux etc.) — such an agent can produce a file or an image but has no way to hand it to me, only a path or an external upload.
My version is claude 2.1.170–2.1.173 (tested on both).
Probably related issues: #66194, #61995.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗