Solo supports common OSC (Operating System Command) sequences and Kitty protocol features used by modern terminal apps. If you're building or using TUI tools, these are the protocols Solo understands.
OSC title sequences
Solo accepts standard OSC title updates, which let a running process set a display title:
| Sequence | Purpose in Solo |
|---|---|
ESC]0;Title\a |
Process/sidebar display-title update |
ESC]1;Title\a |
Process/sidebar display-title update |
ESC]2;Title\a |
Process/sidebar display-title update |
Solo parses the three selectors but collapses them to one process/sidebar display title; it does not maintain independently visible icon-title and window-title values.
Solo can use the OSC title as a transient sidebar label override. A few things to know:
- A user-defined display name always takes priority over an OSC title.
- Titles are sanitized for display.
- OSC title updates can be disabled per process with the terminal context-menu automatic renaming action.
- OSC title overrides are cleared when the process stops, exits, or restarts.
OSC hyperlinks
Solo tracks OSC 8 hyperlinks and stores their URI on rendered cells. Click activation is limited to supported, validated links:
http://andhttps://mailto:file://- opens the local file in your system's default app. Only paths on this machine are accepted (an empty host orlocalhost); remote or UNC-style file URLs are rejected.- valid
solo:deep links
Plain URL detection also marks common URL output as links. With terminal mouse reporting off, an OSC 8 hyperlink opens with an ordinary click. A detected plain URL requires Cmd or Option on macOS, or Alt on Windows/Linux, even when mouse reporting is off. While TUI controls mouse, those modified clicks open links and an unmodified click goes to the terminal application. Text selection on restores the same link behavior used when mouse reporting is off.
OSC color queries
Some terminal apps query for the current theme colors. Solo responds to these:
| Sequence | Response |
|---|---|
ESC]4;N;?\a |
Current indexed palette color for index N from 0 through 15 |
ESC]10;?\a |
Foreground color |
ESC]11;?\a |
Background color |
Responses use the rgb:RRRR/GGGG/BBBB format.
OSC 52 clipboard writes
Solo supports OSC 52 clipboard writes for valid base64-encoded UTF-8 text. A terminal process can use this sequence to replace the host system clipboard.
Kitty keyboard protocol
Solo responds to Kitty keyboard support queries:
- Query:
ESC[?u - Response:
ESC[?0u
Solo tracks Kitty keyboard mode sequences during runtime, including push (ESC[>...u), set (ESC[=...u), and pop (ESC[<...u) forms. When Kitty flags are active, Solo encodes keyboard events with Kitty-style CSI-u sequences where applicable. Current support covers the common Kitty behaviors used by popular TUIs, but not every optional flag combination is implemented.
Other terminal modes and reports
Solo also tracks or responds to:
- Bracketed paste mode.
- Alternate screen and alternate-scroll mode.
- Mouse protocol modes and SGR/UTF-8/default mouse encodings.
- Focus reporting mode.
- Synchronized output mode.
- Primary and secondary device attribute queries.
- Cursor position reports and approximate window pixel-size queries; pixel-size replies use a fixed 8 × 16-pixel cell size.
- Selected private mode reports.
Solo advertises xterm-ghostty when its bundled terminfo entry is available and otherwise falls back to xterm-256color. For zsh login shells only, Terminal settings expose the combined SSH/sudo compatibility wrapper. The SSH wrapper removes TERMINFO and changes TERM to xterm-256color before starting SSH. The sudo wrapper instead preserves TERM, TERMINFO, and COLORTERM for the privileged command.
Compatibility notes
Most common OSC and Kitty workflows work as expected. Some edge cases may differ from other terminals. If a specific app behaves unexpectedly, check that app's Kitty/OSC configuration and fallback mode support.