Use case
I run a small external dashboard that watches my terminal blocks (via wsh blocks list + wsh termscrollback) and I'd like to also send keystrokes to a block — e.g. answer an interactive prompt in a long-running session from another machine/phone.
What exists today
The controllerinput RPC (CommandBlockInputData: blockid, inputdata64, signame, termsize) already does exactly this — the frontend uses it for all typing. It works great when called directly over wave.sock with the WAVETERM_JWT auth handshake (tested on v0.14.5, Windows). But there's no wsh subcommand for it, so scripts have to hand-roll the domain-socket RPC.
Proposal
wsh sendinput -b <blockid> "text to type" # raw bytes to the pty
wsh sendinput -b <blockid> --enter # append \r
wsh sendinput -b <blockid> --signal SIGINT # signame variant
Reading input from stdin (wsh sendinput -b <id> -) would also cover binary/control sequences.
Related: #3196 (wsh tab rename), #3285 (wsh tab create) — same theme of making existing RPCs scriptable.
🤖 Generated with Claude Code
Use case
I run a small external dashboard that watches my terminal blocks (via
wsh blocks list+wsh termscrollback) and I'd like to also send keystrokes to a block — e.g. answer an interactive prompt in a long-running session from another machine/phone.What exists today
The
controllerinputRPC (CommandBlockInputData:blockid,inputdata64,signame,termsize) already does exactly this — the frontend uses it for all typing. It works great when called directly overwave.sockwith the WAVETERM_JWT auth handshake (tested on v0.14.5, Windows). But there's no wsh subcommand for it, so scripts have to hand-roll the domain-socket RPC.Proposal
Reading input from stdin (
wsh sendinput -b <id> -) would also cover binary/control sequences.Related: #3196 (wsh tab rename), #3285 (wsh tab create) — same theme of making existing RPCs scriptable.
🤖 Generated with Claude Code