Skip to content

VS Code Shell Integration (OSC 633) โ€‹

Category: extensions ยท Tags: Operating System Commands (OSC) ยท Specification โ†—

ESC ] 633 ; A BEL

OSC 633 is VS Code's shell integration protocol, extending OSC 133 with additional markers for command detection, output boundaries, and shell state. It enables features like command decorations (green/red markers showing success/failure), run-recent-command, and sticky scroll for terminal output.

The protocol uses escape sequences to mark four boundaries: prompt start (A), command start (B), command executed (C), and command finished (D, with exit code). VS Code's built-in shell integration scripts for bash, zsh, fish, and PowerShell emit these markers automatically. The terminal then knows exactly where each prompt, command, and output block begins and ends.

OSC 633 adds VS Code-specific extensions beyond OSC 133: property reporting (P;key=value) for shell state like current directory and shell type, command line reporting (E) for the exact command text, and continuation prompt marking for multi-line commands. Other terminals (Kitty, WezTerm) support the base OSC 133 protocol but not the VS Code-specific extensions.

How this is tested: Send OSC 633 ; A BEL (VS Code prompt start marker) and verify the terminal accepts the sequence. OSC 633 is a superset of OSC 133.
Analysis2026-03-26

Supported by 7 of 8 terminals (88%). Not supported by: Cursor. Part of the Rich TUI baseline.

Supported by 11 of 13 backends (85%)

Terminal Applications โ€‹

TerminalVersionSupportNotes
iTerm23.6.9โœ“ yes
Ghostty1.3.1โœ“ yes
VS Code1.112.0โœ“ yes
Warp0.2026.03.18.08.24.03โœ“ yes
Cursor2.6.21โœ“ yes
tmux3.6aโœ“ yes
Kitty0.46.2โœ“ yesVS Code shell integration (OSC 633) not supported
Terminal.app2.15โœ“ yes
GNU Screen5.0.1โœ“ yes

Headless Backends โ€‹

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

BackendVersionSupportNotes
vterm0.2.0โœ“ yes
WezTerm0.1.0-fork.5โœ“ yes
Alacritty0.26.0โœ— noVS Code shell integration (OSC 633) not supported
vt1000.2.1โœ— noVS Code shell integration (OSC 633) not supported

Powered by Termless
Playwright for Terminals