wire / terminal-osc / 99

OSC 99 — Desktop notifications (kitty protocol)

OSC 99 is kitty's structured desktop-notification protocol: OSC 99 ; metadata ; payload ST, where metadata is a list of key=value pairs (i= identifier, d= done flag, p= payload type such as title/body, e= base64-encoded) and payload is the (optionally base64) text. It supports multi-chunk notifications, titles+bodies, actions, and icons — far richer than OSC 9.

terminal-osc kind control-sequence status de-facto verification verified tier C terminal-escape@1

aka: OSC 99 · ESC ] 99 · kitty notifications · desktop notification

frame

OSC introducer: \x1b] ESC ] (0x1B 0x5D)

terminator (ST|BEL): ST \x1b\ · BEL \x07

parameters / subcommands

idnamebytes (ST)meaning
simple Simple notification \x1b]99;;Hello\x1b\ OSC 99 ; ; <text> ST shows a notification with the given body text (empty metadata = single-chunk, plain).
titled Title + body \x1b]99;i=1:p=title;Build\x1b\ OSC 99 ; i=ID : p=title ; <title> ST then OSC 99 ; i=ID : p=body : d=1 ; <body> ST builds a multi-part notification keyed by identifier i.

gotchas


provenance

per-fact attribution:

see also

agent: curl -H 'accept: application/json' wire.phall.io/terminal-osc/99 or /terminal-osc/99.json