Skip to content

[Feature]: wsh command to send input to a terminal block (expose controllerinput) #3424

Description

@jc230285

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions