Summary
Let users paste/attach a screenshot or image into the agent from the phone — drop a mockup, an error screenshot, or a design into Claude Code (and other agents) directly from the mobile composer.
Why
This is the one mobile-UX feature — besides session persistence, now shipped in #70 — that shows up in the high-engagement "coding from the phone" discourse (e.g. @TermiusHQ, ~282 likes: paste mockups/error logs into Claude Code from iPhone/iPad). People want to hand the agent visual context without a laptop.
Current state
Not built. The composer explicitly defers it:
apps/mobile/src/Composer.tsx:5 — "Attachments are a fast-follow"
Why it's cheap — the plumbing already exists
This is a client-side feature, not new protocol work. The wire primitive is already there:
util.writeImageBytes exists on the protocol side (@ateam/protocol) — the desktop already uses it to stage an image onto the box for the agent.
- The mobile client stubs the native slice (
apps/mobile/src/connection.ts — stageImagePath/stageClipboardImage return false today) and routes file/image concerns over RPC.
So the work is: image picker (expo-image-picker) → read bytes → util.writeImageBytes to the box → reference the staged path in the prompt/keystrokes. No daemon or protocol changes expected.
Acceptance
- Composer has an "attach image" affordance (photo library + screenshot).
- Selected image is staged on the box via the existing RPC and made available to the running agent.
- Works for the
claude agent at minimum.
Priority
Highest-value next build for closing the Termius-workflow gap, given the plumbing already exists. Note: may require expo-image-picker (native dep → prebuild).
Summary
Let users paste/attach a screenshot or image into the agent from the phone — drop a mockup, an error screenshot, or a design into Claude Code (and other agents) directly from the mobile composer.
Why
This is the one mobile-UX feature — besides session persistence, now shipped in #70 — that shows up in the high-engagement "coding from the phone" discourse (e.g. @TermiusHQ, ~282 likes: paste mockups/error logs into Claude Code from iPhone/iPad). People want to hand the agent visual context without a laptop.
Current state
Not built. The composer explicitly defers it:
Why it's cheap — the plumbing already exists
This is a client-side feature, not new protocol work. The wire primitive is already there:
util.writeImageBytesexists on the protocol side (@ateam/protocol) — the desktop already uses it to stage an image onto the box for the agent.apps/mobile/src/connection.ts—stageImagePath/stageClipboardImagereturnfalsetoday) and routes file/image concerns over RPC.So the work is: image picker (expo-image-picker) → read bytes →
util.writeImageBytesto the box → reference the staged path in the prompt/keystrokes. No daemon or protocol changes expected.Acceptance
claudeagent at minimum.Priority
Highest-value next build for closing the Termius-workflow gap, given the plumbing already exists. Note: may require
expo-image-picker(native dep → prebuild).