Skip to content

OSC 133;D command finished (FTCS_COMMAND_FINISHED)

Category: extensions · Baseline: rich · Tags: Operating System Commands (OSC) · Specification ↗

ESC ] 133 ; D ; exitcode BEL

OSC 133;D (also known as FTCS_COMMAND_FINISHED) marks the end of command output, with an optional exit code as a parameter. Shells emit this immediately after the command exits and before the next prompt is drawn. The format is OSC 133 ; D ; exitcode BEL, where exitcode is the shell's $? value.

With this marker plus the exit code, terminals can show success/failure decorations (green check, red X) next to each command, compute command duration (time between 133;C and 133;D), and let users jump to the previous failed command. This is the marker that enables most of the visible "command decoration" features in modern terminals like Ghostty, iTerm2, and VS Code.

How this is testedpartial
Send OSC 133 ; D ; 0 BEL and verify the terminal consumes the sequence (cursor doesn't advance, terminal remains responsive).

The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.

Analysis2026-04-06

Supported by all 9 tested terminals — universal adoption. Part of the Rich TUI baseline.

Supported by 11 of 14 backends (79%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yes
Ghostty1.3.1✓ yes
Terminal.app2.15✓ yes
Kitty0.46.2✓ yes
VS Code1.113.0? unknown
Warp0.2026.03.18.08.24.03? unknown
Cursor2.6.21? unknown

Headless Backends

Parser correctness only — a means the parser accepts the sequence.

BackendVersionSupportNotes
Alacritty0.26.0✓ yes
vt100.js0.2.1✓ yes
vterm0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes