Skip to content

OSC 9;4 progress bar โ€‹

Category: extensions ยท Tags: Conemu ยท Specification โ†—

OSC 9;4 is a ConEmu-originated protocol for reporting task progress to the terminal. The sequence ESC ] 9 ; 4 ; st ; pr BEL sets progress state (st: 0=remove, 1=normal, 2=error, 3=indeterminate, 4=paused) and percentage (pr: 0-100). Terminals render this as a native progress indicator โ€” typically in the tab bar, title bar, or taskbar. Originally a ConEmu extension, it has been widely adopted: Ghostty (1.2+), iTerm2 (3.6.6+), Windows Terminal, Konsole, mintty, and WezTerm all support it. This makes it one of the most cross-terminal ways to display progress. CLI tools like curl, wget, and build systems can emit these sequences to provide native progress feedback.
How this is tested: Send OSC 9;4;1;50 BEL (set 50% progress), verify the sequence is consumed (cursor doesn't advance). Clear with OSC 9;4;0 BEL.
Analysis2026-03-26

Supported by all 1 tested terminals โ€” universal adoption. Part of the Rich TUI baseline.

Supported by 1 of 18 backends (6%)

Terminal Applications โ€‹

TerminalVersionSupportNotes
cmuxโœ“ yes
iTerm23.6.9? unknown
Ghostty1.3.1? unknown
VS Code1.112.0? unknown
Cursor2.6.21? unknown
Warp0.2026.03.18.08.24.03? unknown
Terminal.app2.15? unknown
Kitty0.46.2? unknown

Headless Backends โ€‹

Parser correctness only โ€” a โœ“ means the parser accepts the sequence.

BackendVersionSupportNotes
Alacritty0.26.0? unknown
vt100.js0.2.1? unknown
vterm0.2.0? unknown
WezTerm0.1.0-fork.5? unknown
xterm.js5.5.0? unknown
xterm.js6.0.0? unknown
xterm.js5.4.0? unknown
xterm.js6.1.0-beta.195? unknown

Powered by Termless
Playwright for Terminals