# Pane status bar and action buttons (OSC 5577) **Status: experimental.** The protocol is versioned, but this is a fork-local extension — no other terminal implements it, and the shape may still change. A program running in a pane can put one row of its own text, plus clickable buttons, into that pane's bottom frame row. Clicks are reported back to the program on its stdin. ``` ╭──────────────────────── build.sh ────────────────────────╮ │ ...program output... │ │ │ ╰ building 3/7 · 12s ─────────────────[Approve]─[Cancel]───╯ ^ your text ^ your buttons ``` Nothing appears until a program asks for it, so the feature costs nothing when unused. --- ## Quick start ```bash # set the text printf '\033]5577;1;status;building 3/7\033\\' # declare two buttons printf '\033]5577;1;buttons;approve:Approve;cancel:Cancel\033\\' # remove both printf '\033]5577;1;clear\033\\' ``` When the user clicks a button, the program receives on **stdin**: ``` \033]5577;1;click;approve\033\\ ``` --- ## Protocol All messages are OSC sequences with number `5577`: ``` OSC 5577 ; ; ; ST ``` - `OSC` is `\033]` (ESC `]`). - `ST` is `\033\\` (ESC `\`). A BEL (`\a`) terminator also works — both are accepted, as with OSC 0/2 titles. - `` is currently `1`. **Anything else is ignored entirely**, so you can adopt a future version without older builds half-interpreting it. - An unknown `` is likewise ignored. ### Verbs your program sends | verb | payload | meaning | |---|---|---| | `status` | `` | set the status text | | `buttons` | `: