Appearance
Carriage return
CR (0x0D) moves the cursor to the beginning of the current line without advancing to the next line. Used in combination with LF for line endings, and on its own for overwriting the current line (e.g., progress bars).
Carriage return is a direct inheritance from mechanical printers: it returns the carriage to the start of the line without advancing paper. Terminals kept that behavior, which is why progress bars can redraw one row by emitting CR and replacement text. Newline handling differs by environment because LF and CR remain separate controls.
How this is testedautomated
Write "AB\rC", verify C overwrote A at col 0 while B remains at col 1.
Write "AB\rC", verify C overwrote A at col 0 while B remains at col 1.
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 Core 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 |