# What changed in @xterm/xterm

> 24 changes in @xterm/xterm 6 from its official release notes, upgrade guides and advisories: 6 breaking, 1 security, 9 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/@xterm/xterm/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @xterm/xterm 6

### Breaking changes

- Removes the alt-to-ctrl+arrow hack; embedders must add keybindings in their code to retain that mapping. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Removes the canvas renderer addon; the notes recommend using the DOM renderer or WebGL instead. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Removes the deprecated fastScrollModifier terminal option. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Adds top and bottom border options and moves overviewRulerWidth to the overviewRuler property. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- The viewport and scroll bar work very differently after the integration of the VS Code base and platform. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Removes the deprecated windowsMode terminal option. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)

### Security

- Escapes unsafe HTML characters in serialized output. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)

### New APIs and options

- Adds synchronized output support using DEC mode 2026. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Adds support for detailed ligatures and variants. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Adds support for ESM via esbuild. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Adds a range option to IHTMLSerializeOptions for controlling the serialized range. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Exposes onWriteParsed on the API. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Adds support for ANSI OSC52. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Adds putty-style ED2 sequence handling as a terminal option. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Adds the reflowCursorLine option. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Adds a progress addon. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)

### Performance

- Adds SearchLineCache to improve search performance. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)

### Behavior and default changes

- The textarea is made readonly when disableStdin is set. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- The WebGL renderer now supports shadow DOM. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)

### Fixes and other changes

- Fixes teleporting when exiting the alt buffer. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Prevents the entire page from scrolling when scrolling in the alt buffer with mouse events off. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Supports semicolons in OSC 8 hyperlink URIs. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- ProgressAddon.onChange is no longer undefined. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
- Fixes finding terms across wrapped lines and when text is wrapped. (6.0.0) — [release notes](https://github.com/xtermjs/xterm.js/releases/tag/6.0.0)
