Appearance
VS Code Extensions
Shell integration extensions defined by VS Code's integrated terminal and adopted by Windows Terminal. OSC 633 extends FinalTerm's OSC 133 with additional markers for command line capture, property reporting (current directory, git status), and nonce-based command verification. These sequences enable VS Code's inline command decorations, command history, and terminal link detection. While OSC 133 is widely adopted, OSC 633's extensions are specific to VS Code and Windows Terminal.
VS Code's shell integration builds on the FinalTerm OSC 133 protocol but adds VS Code-specific markers under OSC 633. The key sub-codes: A (prompt start), B (prompt end), C (pre-execution), D;exitcode (command finished), E;commandline;nonce (set command line with verification nonce), and P;key=value (set properties like Cwd for current directory).
The nonce in E prevents replay attacks — VS Code generates a random nonce per session and only trusts command lines that include the matching nonce. The P property mechanism is extensible, currently used for working directory (Cwd), git status, and terminal shell type.
VS Code ships shell integration scripts for bash, zsh, fish, and PowerShell that emit both OSC 133 (for compatibility) and OSC 633 (for VS Code features). Windows Terminal also recognizes OSC 633 for its own shell integration features.