[BUG] Terminal CLI: SendUserFile reports "delivered to user" but nothing is shown; deliverables left in session scratchpad and described as "attached"
Status Open
Reported on v2.1.240
Maintainer reply None cached
Activity 1 comment · opened Aug 22, 2026
Summary
In a plain terminal CLI session, the SendUserFile tool returns a success result ("N files delivered to user") even though the terminal renders nothing the user can act on. Combined with the system-prompt instruction to put working files in the session scratchpad (/private/tmp/claude-501/<project>/<session-id>/scratchpad), this leads the model to (a) write the actual deliverable into a session-scoped temp directory the user will never look in, and (b) tell the user the files are "attached"/"sent". The user sees no file and has to ask "where are the files?".
Environment
- Claude Code 2.1.240, macOS (Darwin 25.6.0), zsh, plain terminal (not desktop app, VS Code, Remote Control, or Cowork)
- Model: claude-fable-5
Steps to reproduce
- Start
claudein a terminal in some working directory. - Ask for something that produces an output file, e.g. "get transcript for <youtube url>".
- The model writes the result into the session scratchpad, then calls
SendUserFilewith the scratchpad paths. - The tool result says
2 files delivered to user.with file UUIDs. - The model reports the files as "attached" and ends the turn.
Observed
- Nothing actionable appears in the terminal for the "delivered" files.
- The only copy of the deliverable is under
/private/tmp/claude-501/.../scratchpad/, a path the user was never shown and that is session-specific. - User had to ask where the files were; the model then had to copy them into the cwd.
Expected
One or more of:
SendUserFileshould not be offered (or should return a result that says the client cannot render file cards) in a terminal session, so the model falls back to writing into the cwd and printing the path.- The tool result should not claim "delivered to user" when the frontend cannot display it.
- In the terminal client, a
SendUserFilecall could simply print the absolute path(s) so the user can find the file. - The scratchpad guidance in the system prompt could say that final deliverables must be written to the working directory (or a user-specified location), with the scratchpad reserved for intermediate files.
Related (other clients, same "reports success, delivers nothing" shape)
- #76739 (VS Code extension)
- #87572 (Remote Control app)
- #67631 (remote-control server mode)
Filed from a Claude Code session at the user's request.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗