# Control and Escape Sequences

This is the list of control and escape sequences known in the ecosystem
of terminal emulators and their implementation status in ghostty. Note that
some control sequences may never be implemented in ghostty. In these scenarios,
it is noted why.

Status meanings:

  * ✅ - Implementation is complete and considered 100% accurate.
  * ⚠️  - Implementation works, but may be missing some functionality. The
    details of how well it works or doesn't are in the linked page. In many
    cases, the missing functionality is very specific or esoteric. Regardless,
    we don't consider a sequence a green checkmark until all known feature
    interactions are complete.
  * ❌ - Implementation is effectively non-functional, but ghostty continues
    in the face of it (probably in some broken state).
  * 💥 - Ghostty crashes if this control sequence is sent.

| ID | ASCII | Name | Status |
|:---:|:-----:|:-----|:------:|
| `ENQ` | `0x05` | [Enquiry](sequences/enq.md) | ✅ |
| `BEL` | `0x07` | [Bell](sequences/bel.md) | ❌ |
| `BS` | `0x08` | [Backspace](sequences/bs.md) | ⚠️ |
| `TAB` | `0x09` | [Tab](sequences/tab.md) | ⚠️ |
| `LF` | `0x0A` | [Linefeed](sequences/lf.md) | ⚠️ |
| `VT` | `0x0B` | [Vertical Tab](sequences/vt.md) | ✅ |
| `FF` | `0x0C` | [Form Feed](sequences/ff.md) | ✅ |
| `CR` | `0x0D` | [Carriage Return](sequences/cr.md) | ⚠️ |
| `SO` | `0x0E` | [Shift Out](#) | ❌ |
| `SI` | `0x0F` | [Shift In](#) | ❌ |
| `CAN` | `0x18` | [Cancel Parsing](sequences/can.md) | ✅ |
| `SUB` | `0x1A` | [Cancel Parsing (Alias)](sequences/can.md) | ✅ |
| `IND` | `ESC D` | [Index](sequences/ind.md) | ✅ |
| `NEL` | `ESC E` | [Next Line](sequences/nel.md) | ✅ |
| `HTS` | `ESC H` | [Horizontal Tab Set](sequences/hts.md) | ✅ |
| `RI` | `ESC M` | [Reverse Index](sequences/ri.md) | ⚠️ |
| `SS2` | `ESC N` | [Single Shift 2](#) | ❌ |
| `SS3` | `ESC O` | [Single Shift 3](#) | ❌ |
| `SPA` | `ESC V` | [Start Protected Area](#) | ❌ |
| `EPA` | `ESC W` | [End Protected Area](#) | ❌ |
