Appearance
Cursor next line (CNL)
Category: cursor · Baseline: modern · Tags: ECMA-48 Standard · Specification ↗
ESC [ N ECNL moves the cursor to the beginning of the line N rows down. The sequence is
ESC [ N E (default N=1). Unlike CUD, which preserves the column, CNL always sets the column to 1.
CNL combines vertical movement with carriage-return behavior: it moves down and returns to column 1. That makes it convenient for generated output that wants to start fresh rows without emitting separate CUD and CR operations. It is less common than CUP or plain newline, so it is a useful parser-completeness check.How this is testedautomated
Write "ABC" then send
Write "ABC" then send
\x1b[2E (CNL 2), verify cursor is at row 2, column 0.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
Supported by all 12 tested terminals — universal adoption. Part of the Modern TUI baseline.
Supported by 13 of 14 backends (93%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✓ yes | |
| VS Code | ✓ yes | ||
| Warp | ✓ yes | ||
| Kitty | 0.46.2 | ✓ yes | |
| Cursor | ✓ yes | ||
| Terminal.app | ✓ yes |