^[control-codes live in libghostty-vt

Operating system commands

OSC 7 Report Working Directory

Tell the terminal which directory the shell is in.

OSC 7 ; Pt ST
ECMA-48
§8.3.89 OSC – Operating System Command, p. 51

A shell sends OSC 7 ; Pt ST from its prompt, with its working directory as a file: URL, file://host/path, with the host name so that the terminal can tell a directory on another machine from its own. A terminal uses it to open a new tab or window in the same directory, and to show it in a title.

Apple’s Terminal, VTE and many others use it, but it is not xterm’s, and a default xterm ignores it (the OSC numbers it knows). The cases follow xterm.

libghostty-vt keeps the last one it was sent, as it was sent, and tells its host through the PWD_CHANGED callback. It takes two other ways of saying the same thing as well: iTerm2’s OSC 1337 ; CurrentDir=path ST and ConEmu’s OSC 9 ; 9 ; path ST (see ConEmu’s extensions). The pwd line in a case checks what it kept, and the case that checks for nothing is a known difference.

Validation

OSC7-1: Nothing changes on screen

A
\e]7;file://host/home/user\a
B
|AB____|
cursor 1,3
reply none

OSC7-2: A default xterm keeps nothing

\e]7;file://host/home/user\a
|______|
pwd ""

OSC7-3: An empty one clears it

\e]7;file://host/home/user\a
\e]7;\a
|______|
pwd ""
Every example on these pages runs in your browser, in libghostty-vt compiled to WebAssembly.