Use case
I colour-code my tabs by session activity (working / needs input / done) using wsh setbg + wsh setmeta tab:flagcolor driven by an external watcher. I'd like the watcher to also sort tabs so the ones needing attention are first — like browsers move audible tabs, or how pinned tabs group.
What exists today
Drag-reorder in the UI is backed by the updateworkspacetabids RPC (args: [workspaceId, [tabId, ...]]), and workspacelist returns each workspace's current ordered tabids. Both work when called directly over wave.sock with the JWT handshake (tested on v0.14.5), but there's no CLI wrapper, so scripts must speak the socket protocol themselves.
Proposal
wsh tab list # tab ids + names in current workspace, in order
wsh tab move <tabid> --index 0 # or: wsh tab order <id1> <id2> ...
A guard that rejects lists which drop/add tab ids would keep it safe.
Related: #3196 (wsh tab rename), #3285 (wsh tab create) — together these would make tabs fully scriptable.
🤖 Generated with Claude Code
Use case
I colour-code my tabs by session activity (working / needs input / done) using
wsh setbg+wsh setmeta tab:flagcolordriven by an external watcher. I'd like the watcher to also sort tabs so the ones needing attention are first — like browsers move audible tabs, or how pinned tabs group.What exists today
Drag-reorder in the UI is backed by the
updateworkspacetabidsRPC (args: [workspaceId, [tabId, ...]]), andworkspacelistreturns each workspace's current orderedtabids. Both work when called directly overwave.sockwith the JWT handshake (tested on v0.14.5), but there's no CLI wrapper, so scripts must speak the socket protocol themselves.Proposal
A guard that rejects lists which drop/add tab ids would keep it safe.
Related: #3196 (wsh tab rename), #3285 (wsh tab create) — together these would make tabs fully scriptable.
🤖 Generated with Claude Code