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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions