github xtermjs/xterm.js 6.0.0

6 hours ago

Features

  • #5453 Add synchronized output support (DEC mode 2026)
  • #5436 add range to IHTMLSerializeOptions
  • #5334 Support shadow dom in webgl renderer
  • #5285 Support detailed ligatures and variants
  • #5251 progress-addon
  • #5234 Add reflowCursorLine option
  • #5224 putty-style ED2 sequence handling as terminal option
  • #5107 Add top/bottom border overview ruler options
    • ⚠️ This is a breaking change, ITerminalOptions.overviewRulerWidth is now a property of ITerminalOptions.overviewRuler
  • #5096 Integrate base/ platform from VS Code and adopt scroll bar
    • ⚠️ This is a potential breaking change, the viewport/scroll bar works very differently now
  • #5092 Add support for ESM via esbuild
  • #5034 Expose onWriteParsed on API
  • #4220 Add support to ANSI OSC52

Fixes

  • #5445 Prefer performance.now() over Date.now()
  • #5437 Prevent entire page from scrolling when scrolling in alt buffer with mouse event off
  • #5423 Clear selection on vertical resize
  • #5411 Fix teleport when exiting out of alt buffer. v2
  • #5391 Bring back partial wheel tracking
  • #5390 Fix scrollbar teleport after exiting alt buffer
  • #5386 fix: ensure that currentRow can not go out of the range
  • #5385 Fix terminal find when wrapped
  • #5355 Add note about reverse tabnapping
  • #5346 Remove alt -> ctrl+arrow hack in favor of embedder-specific solutions
    • ⚠️ This is a breaking change, you will need to add keybindings in your code if you want alt to map to ctrl still
  • #5337 Fix finding terms across wrapped lines
  • #5335 webgl: Ignore alpha channel when allowTransparency is false
  • #5328 Refresh viewport after clear or ED
  • #5305 Fix issue where listeners remain after WebglRenderer throws
  • #5291 Make ProgressAddon.onChange non undefined
  • #5282 Fixed CapsLock triggering input twice in MacOS.
  • #5279 Fixes: #5270 regex case-sensitive should behave like monaco
  • #5278 Handle glyph widths up to the maximum device texture size
  • #5277 Disable ligatures when cursor is in range
  • #5276 Fix selection rendering on ligatures in both renderers
  • #5265 Revert to cursor options after DECSCUSR 0
  • #5263 Make textarea readonly when disableStdin is set
  • #5262 Blend cursorAccent with background too
  • #5260 Blend cursor with background to support alpha in webgl
  • #5253 bug: properly render the terminal when open() is called again
  • #5249 Fix click event bug caused by DomRenderer replaceChildren behavior
  • #5209 Ensure last ligature cell is updated
  • #5208 Set liga font feature when ligatures is enabled
  • #5182 fix #5181
  • #5171 Fix links sometimes not activating
  • #5139 Fix image addon not being able to render some jpeg images in IIP
  • #5127 Fix scroll dimensions when switching buffers
  • #5122 Use main document to create viewport element
  • #5102 Ensure decorations are refreshed when origin of scroll event is buffe…
  • #5099 Remove overflow to allow decorations outside terminal
  • #5088 Sync DOM decoration styles when line height/width changes
  • #5067 Correct addon-clipboard ctor types
  • #5027 Finish OSC hyperlinks when the second param is only whitespace
  • #5024 Fix duplicate input for some IMEs
  • #5020 Escape Unsafe HTML Characters in addon-serialize
  • #5003 Support semi-colons in OSC 8 hyperlink URIs
  • #4984 Clear timer when dispose

Performance

  • #5403 Add SearchLineCache for improved search performance
  • #5066 Speed up clearing all markers, mass event listener dispose
  • #5038 Speed up insertion and deletion of values in SortedList by batching and deferring to idle task
  • #5037 Prevent smooth scroll from running more than once per frame
  • #4936 fix: memory leak in CoreBrowserService
  • #4933 Check after updating the SelectionRenderModel
  • #4879 Align character position in a11y tree with the actual rendering

Internal/minor changes

  • #5462 Remove deprecated windowsMode and fastScrollModifier
    • ⚠️ This is a breaking change, these deprecated properties of ITerminalOptions have been removed
  • #5461 Remove need for glob module
  • #5460 Git ignore test-results/
  • #5452 Fix tsc build - upgrade glob version
  • #5450 Fix wrong export path for ESM target in [addon-unicode-graphemes]
  • #5449 Configure "exports" field in package.json [headless]
  • #5446 Migrate from yarn to npm, node 18 -> 22, use npm workspaces
  • #5442 Fix headless module path
  • #5425 Only show char codes for parsing data on trace
  • #5422 Explain filtering unit tests by file
  • #5421 Use Windows PowerShell instead of pwsh 7 in demo
  • #5420 Only log character codes for trace log
  • #5413 Adding EmuDevz to the "Real-world uses" list
  • #5407 Improve Copilot instructions and add test guidelines
  • #5406 Refactor search addon into multiple files, add unit tests
  • #5405 Refactor search addon interfaces
  • #5404 Replace timeout handling with disposableTimeout
  • #5402 Update GitHub Copilot instructions with test details
  • #5401 Refactor search addon types and internal handling
  • #5399 Refactor search constants and improve documentation
  • #5398 Add proper typing for search results change event
  • #5379 Bump form-data from 4.0.0 to 4.0.4 in /addons/addon-ligatures
  • #5362 Move copilot steps to correct folder
  • #5359 Add copilot setup steps
  • #5358 Revert conpty-specific reflow handling
  • #5349 Add comprehensive tests for alt+shift+letter keyboard combinations
  • #5345 Add instructions to help Copilot coding agent
  • #5329 Update and pin esbuild
  • #5322 Bump axios from 1.7.4 to 1.8.2 in /addons/addon-ligatures
  • #5321 Reflow on resize using similar logic to conpty
  • #5317 docs: added usage tip for registerMarker()
  • #5313 Revert "Merge pull request #5253 from akphi/patch-1"
  • #5308 Update AccessibilityManager.ts to use textContent rather than innerText
  • #5290 Progress polish
  • #5286 Move WebGL addon-specific code into addon
  • #5281 Pin Ubuntu 22 to fix playwright GH Actions issue for now
  • #5280 Remove courier fonts from defaults
  • #5275 Demo test button for common ligatures
  • #5252 Fix ReferenceError in publish.js
  • #5247 Update README.md - add ecmaOS as Use Case
  • #5219 Add new site to Real-world uses
  • #5218 Bump cross-spawn from 7.0.3 to 7.0.6
  • #5212 chore(addons/fit): fix typo
  • #5203 Don't hide build folders
  • #5202 Only resolve ligatures externals in commonjs environment
  • #5199 Store the DI decorator's id in specific property (#5131).
  • #5196 Add pyTermTk HTML5 Exporter project to "Real-world uses"
  • #5180 Forward integration test exit code to running proc
  • #5166 Bump express from 4.19.2 to 4.20.0
  • #5165 Bump axios from 1.6.0 to 1.7.4 in /addons/addon-ligatures
  • #5157 Bump path-to-regexp from 1.7.0 to 1.9.0 in /addons/addon-ligatures
  • #5151 Fix 'npm run package' in addon-unicode-graphemes
  • #5148 Bump micromatch from 4.0.5 to 4.0.8
  • #5143 Publish commit and set peerDependencies to @xterm/xterm beta when publishing
  • #5141 Bump webpack from 5.88.2 to 5.94.0
  • #5140 Add Filet Cloud to Real-world uses
  • #5136 Fix description for WebglAddon class in @xterm/addon-webgl
  • #5130 Remove xterm- prefix from addon mjs output
  • #5124 Update node-pty, use conpty.dll
  • #5106 Move to vs/base disposables
  • #5105 Remove the canvas renderer
    • ⚠️ This is a breaking change, this addon no longer exists and we recommend using either the DOM renderer or WebGL
  • #5104 Remove EventEmitter in favor of vs/base/common/event's Emitter
  • #5103 remove _workCell in InputHandler.
  • #5095 Remove procfile
  • #5094 Add build flow images and move logo into new images folder
  • #5093 Align npm and test script names
  • #5091 Ignore EPIPE exception on Windows when reloading demo client
  • #5090 Suppress unrecognized option warning in demo
  • #5089 Remove src dts files and correct exports
  • #5086 Bump ws from 7.5.9 to 8.17.1
  • #5085 Run other integration tests in CI
  • #5083 typescript@5.5
  • #5082 Fix .eslintrc.json warnings, move deprecated to stylistic/ts
  • #5081 Simplify GH action names and remove test/api project
  • #5080 Migrate remaining API tests to playwright and remove API test infrastructure
  • #5079 Migrate more API tests to playwright
  • #5078 Get tests working on node that requires shell arg
  • #5071 Bump ws from 8.13.0 to 8.17.1
  • #5070 Bump braces from 3.0.2 to 3.0.3
  • #5059 Add balena to real world uses
  • #5056 Add app OpenSFTP to README.md
  • #5054 Add powerline git, LN, lock symbols
  • #5052 Update README.md
  • #5049 Add eva pro to README.md
  • #5018 Bump express from 4.18.2 to 4.19.2
  • #5010 Bump follow-redirects from 1.15.3 to 1.15.6 in /addons/addon-ligatures
  • #4989 adding Wave Terminal to the README
  • #4963 Polish convertEol api jsdoc
  • #4940 Update global object fix
  • #4865 Update devcontainer

Don't miss a new xterm.js release

NewReleases is sending notifications on new releases.