Skip to content

External Protocols ​

Extensions to the VT vocabulary adopted from other terminals. These ride on the underlying byte stream but define their own structured payloads.

OSC-based ​

Most external protocols are layered on OSC because OSC supports arbitrary string payloads with a clean string-terminator.

ProtocolOSCOriginOttyDoc
HyperlinksOSC 8xterm / VTE✓OSC 8
Shell IntegrationOSC 133FinalTerm / iTerm2✓Shell Integration
Working DirectoryOSC 7VTE✓Files and Links
NotificationsOSC 9iTerm2✓Notifications
Notifications (rich)OSC 777urxvt✓Notifications
ClipboardOSC 52xterm✓ (opt-in)Copy and Paste
Inline Image (iTerm)OSC 1337iTerm2✓Images

DCS / APC-based ​

ProtocolIntroducerOriginOttyDoc
Kitty graphicsAPC (ESC _)Kitty✓ (mostly)Images
Sixel graphicsDCS (ESC P)DEC☐ planned—
tmux passthroughDCStmux◐—

CSI-based ​

ProtocolSequenceOriginOtty
Kitty keyboard protocolCSI > 1 u / CSI < uKitty✓
Bracketed pasteCSI ?2004 h/lxterm✓
Focus reportingCSI ?1004 h/l → CSI I / CSI Oxterm✓
Synchronized outputCSI ?2026 h/liTerm2✓ (buffered, with a safety timeout)
SGR mouse reportingCSI ?1006 h/lxterm✓
Scroll-then-erase EDCSI 22 JKitty✓

Conformance notes ​

  • OSC 133 follows the FinalTerm "FTCS" spec as adopted by iTerm2.
  • Where iTerm2 and xterm differ on the same OSC number, Otty implements iTerm2's semantics (the more common modern target).

Identification ​

SequenceOriginOtty
CSI c — Primary DADEC✓ (responds ?62;22c)
CSI > c — Secondary DADEC✓
CSI > q — XTVERSIONxterm✓ (replies DCS > | otty(<version>) ST)

See also ​

Otty