Two endpoints, picked by clipboard type:
Text / URL → POST /api/dictate-inject (same as your voice shortcut; add wait:true if you want a spoken reply back).
Image / file → POST /api/dictate-attach (multipart/form-data; saves the file and notifies Xen with its path).
https://tui.xlrd.org/api/dictate-inject · POST · Header Content-Type: application/jsonhttps://tui.xlrd.org/api/dictate-attach · POSTwait:true, grab reply and Speak it — same as the voice shortcut. For attachments the response is {ok:true,files:[…]}; you can Show Notification on success.# clipboard TEXT / URL curl -sS -X POST https://tui.xlrd.org/api/dictate-inject \ -H "Content-Type: application/json" \ -d '{"source":"clipboard","text":"<clipboard text>","wait":true}' # clipboard IMAGE / FILE (multipart) curl -sS -X POST https://tui.xlrd.org/api/dictate-attach \ -F "file=@/path/to/clip.png" # → {"ok":true,"files":[{"name":"clip.png","path":"…","size":12345}]}
Text is instant — lands in the session like a dictation. Files get saved server-side and Xen is notified with the path so it can open/read them.
Known follow-up: the attach endpoint's save directory needs a one-line path correction to the canonical tree (tracked) — text path is unaffected and fully working.