Skip to content

HPA horizontal position absolute (CSI `)

Category: cursor · Tags: ECMA-48 Standard · Specification ↗

CSI Ps `
HPA (Horizontal Position Absolute) moves the cursor to an absolute column on the current row. The sequence is CSI Ps ` where Ps is the 1-based column number (default 1). HPA is functionally equivalent to CHA (CSI G) but uses a different final character. Both are defined in ECMA-48 — some older terminals only implement one of the two.
How this is tested: Write "ABCDEFGH" then send \x1b[5` (HPA col 5), verify cursor column is 4 (0-based).
Analysis2026-04-06

Supported by 6 of 8 terminals (75%). Not supported by: vterm.js, vt100.js. Part of the Core TUI baseline. Notes: vterm.js: HPA (horizontal position absolute) not implemented in vterm.js; vt100.js: HPA (horizontal position absolute) not implemented in vt100.js baseline emulator.

Supported by 8 of 14 backends (57%)

Terminal Applications

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

Headless Backends

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

BackendVersionSupportNotes
Alacritty0.26.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes
vt100.js0.2.1✗ noHPA (horizontal position absolute) not implemented in vt100.js baseline emulator
vterm0.2.0✗ noHPA (horizontal position absolute) not implemented in vterm.js