Semantic Prompts (OSC 133)

ankitg121 pts0 comments

Semantic prompts (OSC 133) — Terminal Support | Terminfo.dev

Skip to content<br>Appearance

MenuReturn to top

Semantic prompts (OSC 133) ​<br>Category: extensions · Baseline: rich · Tags: Operating System Commands (OSC) · Specification ↗<br>ESC ] 133 ; A BEL<br>Semantic prompts use OSC 133 markers to tell the terminal where each shell prompt, command input, and command output begins and ends. The markers are: A (prompt start), B (command input start — after prompt, before the user types), C (command output start — after Enter), and D (command finished, with exit code).

With these markers, terminals can implement features that were previously impossible: click-to-navigate between prompts, select entire command output, scroll by command boundaries, mark failed commands with a red indicator, and provide command completion times. Shell integration scripts (for bash, zsh, fish) emit these markers automatically.

Also known as shell integration or command decoration. Supported by iTerm2 (which originated the protocol), Ghostty, WezTerm, Kitty, and VS Code's integrated terminal.<br>How this is tested automated<br>Send OSC 133 ; A BEL (prompt start marker) and verify the terminal accepts it without error.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-05-17<br>Supported by 9 of 12 terminals (75%). Not supported by: vt100.js, Alacritty, xterm.js. Part of the Rich TUI baseline. Notes: vt100.js: Not implemented — pure TypeScript emulator; Alacritty: Not implemented in alacritty; xterm.js: Not implemented in xterm.js.

Supported by 11 of 14 backends (79%)<br>Terminal Applications ​<br>TerminalVersionSupportNotesiTerm23.6.9✓ yes Ghostty1.3.1✓ yes VS Code✓ yes Kitty0.46.2✓ yesOSC 133 not exposed via Python batch bridge Warp✓ yes Cursor✓ yes Terminal.app✓ yes Headless Backends ​<br>Parser correctness only — a ✓ means the parser accepts the sequence.<br>BackendVersionSupportNotesvterm.js0.2.0✓ yes WezTerm0.1.0-fork.5✓ yes Alacritty0.26.0✗ noNot implemented in alacritty vt100.js0.2.1✗ noNot implemented — pure TypeScript emulator xterm.js5.5.0✗ noNot implemented in xterm.js<br>← Back to matrix · extensions features

command terminal implemented prompts xterm semantic

Related Articles